KMS による S3 の暗号化・復号の内容

 

 

S3のKMSによる暗号化がいまいち文章だけでは頭に入ってこなかったので、図に起こしました

 

docs.aws.amazon.com

 

 

KMSは2つのKMSキーとデータキーの2つのキーを利用して、暗号化を行う

KMSキーは、データキーを暗号化するために使われるマスターキー

データキーは、実際にデータを暗号化・復号化するために使用されるキー

 

鍵が2つ登場するのが少しややこしい

 

 

KMSの暗号化

 

 

S3の暗号化・復号化も、全く同じ仕組みで動く

 

暗号化

 

1. GenerateDataKey で、KMS へ鍵の生成を依頼

※ S3 では、Symmetric Key のみがサポート

When you use an AWS KMS key for server-side encryption in Amazon S3, you must choose a symmetric encryption KMS key. Amazon S3 supports only symmetric encryption KMS keys.

 

docs.aws.amazon.com

GenerateDataKey リクエス

 

 

2. KMS にてキーを生成(「平文のキー」と「暗号化キー」)

 

鍵の生成

3. 生成された鍵をレスポンスとして返却

 

レスポンス

 

4. 「平文のキー」を用いて、データを暗号化 
「暗号化キー」は、復号用に保存する

 

平文キーの使用と暗号化キーの保存

 

5. 平文の鍵はセキュリティリスクとなるので、使用次第速やかに削除

 

平文のキーの削除

 

復号化

 

1. Decrypt リクエス

保存している「暗号化キー」を送信する

 

docs.aws.amazon.com

 

Decrypt リクエス

 

2. 送信されてきた「暗号化キー」を平文化

 

鍵の復号化

 

 

3. 「平文のキー」をレスポンスとして返却

 

平文の鍵の返却

 

4. 「平文のキー」を利用して、データを復号

 

復号処理

5. 同様に「平文のキー」を削除する

 

鍵の削除