3.4K Views
October 01, 22
スライド概要
KMSの仕組みがややこしくて、難解でしたので、なるべく図を使い用語をひも解き、解説してみました!!
暗号化の仕組みを分かりや すく解説する KMS ⽇ 作成 技術 タグ 最終 更新 参考 @2022/09/29 AWS KMS @October 1, 2022 6:54 PM https://docs.aws.amazon.com/ja_jp/kms/latest/developerguide/overview.h Property Twitter https://twitter.com/pero_nw 1.概要 の内容について、⽤語の解説や複数のKMSキ ータイプについてそれぞれどのような違いがあるのか、暗号化・復号化の流れにつ いて本稿でひも解いていき、わかりにくいKMSの概念や仕組みを解説していきま す。 AWS key Management Service (KMS) 2.⽤語解説 は、データの保護に使⽤される暗号化キーの作成と制御を容易にするマネ ージドサービスです。 KMSを利⽤する利点の⼀つに、AWS Cloudtrailとも統合されている点が挙げら れます。これにより監査、規制、コンプライアンスのニーズに応じて KMSキー の使⽤をログに記録します。 KMS KMS 暗号化の仕組みを分かりやすく解説する 1
を利⽤することで、KMS側のキーポリシーによる暗号化対象データの保護 KMS や いつ、だれが、どのリソースに対してアクセスしたかの証跡を取る事ができま す。 KMSには⼤きく分けて、以下の3つのKMSキータイプがあります。 1. カスタマーマネージドキー 2. AWSマネージドキー 3. AWS所有のキー まずは、こちらについて解説します。 1. カスタマーマネージドキー KMS管理コンソールにアクセスし、作成する KMS キーはこのカスタマーマネ ージドキーです。 カスタマーマネージドキーはユーザーが作成、所有、および管理できます(カス タマーがマネージドできる)。下図の⻩⾊⽂字の部分 これらの KMS キーは、キーポリシー、keyの有効化/無効化、暗号化マテリアル のローテーション エイリアスの作成、キー削除のスケジューリングなどを設定できます。 まとめると以下の事が管理可能です。 KMS 暗号化の仕組みを分かりやすく解説する 2
キーメタデータを表⽰可能 KMSキーを管理可能 ⾃動ローテーション(オプション 約365⽇) 2. AWSマネージドキー AWSと統合されているAWS KMSがユーザに代わってキーを作成し、管理・使 ⽤してサービスのリソースを保護します。 例えば、EBSでKMS暗号化を有効化すると以下のようなエイリアス名を持つ KMSキーが⾃動で作成されます。 KMS aws/ebs このキーは、ユーザがキーポリシーや暗号化マテリアルのローテーションなど キーの管理はできません。 まとめると以下となります。 KMSキーメタデータを表⽰可能 KMSキー管理が不可能 ⾃動ローテーション(必須 約365⽇※1: SCSの資格試験では、3年となる 可能性あり) 所有のキー KMSコンソール内では確認できません。AWS のサービスに関連付けられた AWS 所有のキー を使⽤してアカウント内のリソースを保護できます。 3. AWS KMS 暗号化の仕組みを分かりやすく解説する 3
たとえば、AWS RDSはデフォルトでデータを保護しています。この時使⽤され る暗号キータイプがこのAWS所有のキーとなります。 AWS所有のキーは、ユーザから確認不可となり、設定変更や管理もできませ ん。 まとめると以下となります。 KMSキーメタデータの表⽰は不可能 KMSキー管理が不可能 ⾃動ローテーション(可変) CMKとCDK KMSを語る上で、必ず登場する⽤語がCMKとCDKになります。 CMKは、Customer Master Keyの略で、主にデータキー(CDK)を暗号化する キーとして使⽤されます。 KMSで管理されているキー(上記で紹介したKMSキー)がCMKとなります。 は、Customer Data Keyの略で、実際のデータを暗号化するためのキーで CDK す。 の内部で異なるキーが⾃動的に発⾏されます。 KMSが、データキーを使⽤してデータを暗号化することはありません。 OpenSSLかAWS Encryption SDKのような暗号化ライブラリを使⽤すること で、データキーを使いデータを暗号化します。 暗号化の流れ KMS 1. CMK KMS を作成する。 暗号化の仕組みを分かりやすく解説する 4
2. GenerateDataKey オペレーションを呼び出し、KMSがデータキーを⽣成し ます。 ユーザが指定する対称暗号化CMKキーのデータキーのコピーを暗号化し、 EC2に返します。 3. EC2はEBSをPlainDataKeyを使い、EBSを暗号化します。 4. PlainDataKeyを破棄します。 復号化の流れ オペレーションに暗号化されたデータキーをKMSに渡します。 2. KMSはCMKを使⽤し暗号化されたCDKを復号します。 3. 復号したPlainDataKeyをEC2に渡します。 4. EC2は暗号化されたEBSをPlainDataKeyを使い復号します。 暗号化⽅式 AWSでは、暗号化する場所(サーバ/クライアント)と暗号化のキーをどこで管 理するかでいくつか種類があります。具体的には、 暗号化する場所: サーバーサイド暗号化(Server Side Encryption) クライアントサイド暗号化(Client Side Encryption) キーを管理する場所: KMS、S3、クライアント端末(Client) 1. Decrypt たとえば、サーバサイドで暗号化し、キーの管理がKMSであるなら、暗号化⽅ 式の名称は頭⽂字をとり、SSE-KMS となります。 KMS 暗号化の仕組みを分かりやすく解説する 5
他も挙げると、SSE-S3, SSE-C, CSE-KMS, CSE-Cがあります。 キーマテリアル CMKを作成する際に使⽤されるキーの元となるデータです。 キーマテリアルの作成元をキーマテリアルのオリジンといい、主に3つ存在し ます。 1. AWS_KMS:デフォルトの作成元。AWS KMSがキーマテリアルを作成 し管理します。 2. EXTERNAL:キーマテリアルをユーザが作成します。キーマテリアルは 外部で作成され、インポートされたキーマテリアルを使⽤し、CMKキー を作成します。 ※CMK作成するとき、CMKキーにはキーマテリアルはありません。 3. AWS_CLOUDHSM:CloudHSMクラスターでCMKキーのキーマテリア ルを作成します。 以上、KMSでよく使われる⽤語や概念についてお伝えしました。 次回は、外部キーマテリアルの作成からインポートまで解説していきます! ⽇々、Twitterにて検証を通してAWSなどネットワーク全般の情報を発信してますの で、フォロー頂けたら幸いです! JavaScript is not available. https://twitter.com/pero_nw KMS 暗号化の仕組みを分かりやすく解説する 6