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

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

【AWS】Key Management Service(その④サーバサイドとクライアントサイドについて)

今回は、KMSにおけるサーバサイド暗号化とクライアントサイド暗号化についてです。

■サーバサイド暗号化

AWSサービスで暗号化を行う際に、各サービスがCMKを指定することで、自動的に暗号化を実施いたします。

例えば、EC2が利用するEBSを暗号化する場合は以下の流れになります。
※EC2にEBSがアタッチされていない(デタッチ)状態をスタートとします。

1.EBSがKMSキーストアに保存されている暗号化CDKを取得します。

2.上記1で取得したCDKは、EBSのメタ情報として保存されます。

3.EC2が対象のEBSボリュームをアタッチする際、EC2にて上記2で保存されたメタ情報内にあるCDK情報を取得します。

4.EC2にてCDKの復号リクエスト(API)を発行し、復号処理自体はEC2が乗っているホストにて行われる。

5.上記4で復号したCDKは、アタッチされたEBSのすべての入出力データの暗号化/復号に利用されます。

■クライアントサイド暗号化

ユーザアプリケーションでのデータ暗号化にKMSを利用するパターンです。
これは、AWS SDKを利用するのが一般的です。
代表的なSDKに「AWS Encryption SDK」というものがあります。

以上です。