はじめに
こんにちは、山田です。
今回は、現在関わっている案件でKMSを用いる機会があったのでKMSについてまとめていきます。
KMS概要
KMSはデータの暗号化に使用される暗号化キーの作成と管理を行うAWSのマネージド型サービスです。
KMSの操作履歴は全てCLoudTrailに保存されます。
暗号化・復号化
KMSでは、以下の2種類のキーを使用してデータの暗号化・復号化を実施します。
・Customer Master Key(CMK) → データキー(CDK)を暗号化するためのキー
・Customer DataKey(CDK) → データを暗号化するためのキー
暗号化の仕組み
① アプリケーションからCDKを生成します。
② 暗号化されているCMKが復号化される。
③ CMKを使用して、CDKを暗号化します。
④ CDKと暗号化されたCDKをアプリケーションに渡します。
⑤ CDKを使用してdataを暗号化します。
⑥ 暗号化されたdataと暗号化されたCDKをDBに保存します。
復号化の仕組み
① 暗号化されたCDKを取り出します。
② KMS内でCMKを復号化します。
③ 復号されたCMKを使用してCDKを復号化します。
④ 復号化されたCDKを使用し、dataを復号化します。
CKMの種類
CMKには主に以下の種類があります。
・カスタマー管理キー
AWS利用者が作成、所有、管理するCMK。ユーザーが開発したアプリでデータを暗号する際に使用するのがCMKとなる。
キーポリシーの設定、有効化・無効化、ローテーション、エイリアスの作成、削除のスケジューリング等の操作が実行できます。
1年ごとの自動ローテーションの有効化・無効化を設定できます。
・AWS管理CMK
AWSサービスが利用者に代わって作成、管理、使用するCMKです。
キーポリシーの変更はできない。
3年ごとにAWS側で自動ローテーションされます。