KMS暗号化の仕組みを分かりやすく解説する

3.6K Views

October 01, 22

スライド概要

KMSの仕組みがややこしくて、難解でしたので、なるべく図を使い用語をひも解き、解説してみました!!

profile-image

いつかフリーランスで自分がやりたい事をやりたいネットワークエンジニアです! 日々の学習や業務を通して得た知見をアウトプットして行こうと思います! アウトプットする事で色んな方と繋がれたら嬉しいです\( 'ω')/

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

暗号化の仕組みを分かりや すく解説する 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

2.

を利⽤することで、KMS側のキーポリシーによる暗号化対象データの保護 KMS や いつ、だれが、どのリソースに対してアクセスしたかの証跡を取る事ができま す。 KMSには⼤きく分けて、以下の3つのKMSキータイプがあります。 1. カスタマーマネージドキー 2. AWSマネージドキー 3. AWS所有のキー まずは、こちらについて解説します。 1. カスタマーマネージドキー KMS管理コンソールにアクセスし、作成する KMS キーはこのカスタマーマネ ージドキーです。 カスタマーマネージドキーはユーザーが作成、所有、および管理できます(カス タマーがマネージドできる)。下図の⻩⾊⽂字の部分 これらの KMS キーは、キーポリシー、keyの有効化/無効化、暗号化マテリアル のローテーション エイリアスの作成、キー削除のスケジューリングなどを設定できます。 まとめると以下の事が管理可能です。 KMS 暗号化の仕組みを分かりやすく解説する 2

3.

キーメタデータを表⽰可能 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

4.

たとえば、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

5.

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

6.

他も挙げると、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