自由気ままに書いちゃおう

好きなことをつらつらと・・・

【AWS】Key Management Service(その③暗号化と復号の流れ)

前回、前々回からの続きです。
今回はKMSによる暗号化と復号の流れについてです。

 

■暗号化の流れ

以下の流れで、データを暗号化します。
尚、1~4はKMSで実装されている処理です。(ユーザ側での実装不要です)
5、6はユーザ側で実装する必要があります。

1.ユーザがAPI(GenerateDataKey)を呼び出し、CDKを生成します。(この時点ではCDKは平文です)

2.キーストアで暗号化されているCMKがKMS内で復号されます。

3.復号されたCMKを利用し、上記1で生成したCDKを暗号化します。

4.平文のCDK(上記1)と暗号化されたCDK(上記3)の2つがユーザに返されます。

5.ユーザは平文のCDKを使って対象データを暗号化します。
  (この時点で、平文のCDKと平文のデータは破棄する必要があります。

6.暗号化されたデータ(上記5)と暗号化したCDK(上記3)をキーストアに格納します。

※上記5の通り、暗号化に利用するのはあくまで平文のCDKです。
 また、暗号化後に平文のCDKは削除(破棄)されてしまうため、キーの秘匿性が保たれます。

■復号の流れ

以下の流れで、データを復号します。

7.ユーザがAPI(Decrypt)を呼び出し、KMSからCMKを取り出します。

8.上記6で保存した暗号化したCDKを復号します。

9.復号したCDKを使用し、キーストアに保存されている暗号化データを復号します。

以上です。