先日AWSは、AWS Key Management Service (DSSE-KMS)に保存されたキーを使用したAmazon S32層のサーバーサイド暗号化オプションを発表した。これは、Amazon Simple Storage Service (Amazon S3)バケットにオブジェクトがアップロードされた時、2層の暗号化を適用するAmazon S3の新しい暗号化オプションである。
同社はDSSE-KMSを、FIPS準拠のための国家安全保障局(National Security Agency)CNSSP15と、2層のCNSA暗号化のためのData-at-Rest Capability Package(DAR CP)バージョン5.0ガイダンスに適合するように設計された。これにより、顧客はDSSE-KMSを使用して、データに複数層の暗号化を適用する規制要件を満たすことが可能だ。
DSSE-KMSの登場により、Amazon S3はサーバーサイドの暗号化に4つのオプションを提供することになった。
- Amazon S3マネージド・キーによるサーバーサイド暗号化(SSE-S3)
- AWS KMSによるサーバー側暗号化(SSE-KMS)
- 顧客が提供する暗号化キーによるサーバー側暗号化(SSE-C)
- KMS(DSSE-KMS)に保存された鍵による2層サーバー側暗号化
DSSE-KMSを使うと、PUTやCOPYリクエストでオブジェクトをアップロード・コピーする際に、2層サーバー側暗号化(DSSE)を指示できる。さらに、DSSEがすべての新しいオブジェクトに自動的に適用されるようにS3バケットを設定することも可能だ。IAMとバケットポリシーを活用することで、ユーザーはDSSE-KMSを強制することもでき、各暗号化レイヤーは、独自のデータ暗号化キーを持つ個別の暗号化実装ライブラリを採用している。DSSE-KMS は、暗号実装の単一レイヤーにおける脆弱性の可能性が低いことから、機密データを保護するのに役立つ。
ユーザーは、AWS CLI、AWS Management Console、またはAmazon S3 REST APIを使用してDSSE-KMSを活用できる。
DSSE-KMSについて、Red Teamの戦術トレーナーであるRob Fuller氏は次のようにツイートした。
もしこれが表示されていないなら、クラウドチーム(あなた自身かもしれない)に今日(あるいは次のメンテナンスウィンドウで)このオプションを利用可能にしてもらいたい。
さらに、AWSのプリンシパル・ソリューション・アーキテクトであるIrshad A Buchh氏は、AWS Newsブログの投稿で次のように述べている。
Amazon S3は、顧客がオブジェクトレベルで2つのレイヤーの暗号化を適用し、両方のレイヤーで使用されるデータキーを制御できる唯一のクラウドオブジェクトストレージサービスです。DSSE-KMSは、米国国防総省(DoD)の顧客のように、高度に規制された厳格なセキュリティ基準を満たすことができます。
一方、マッキンゼー・デジタルのシニア・セキュリティ・マネージャーである Joshua Bregler氏によるDSSE-KMSに関するLinkedInの投稿内で、ギャランティアのチーフ・アーキテクトである Kieran Miller氏は次のように述べている。
2重暗号化は、キーが別々に保管され、異なるエンティティの管理下にある場合有効です。それぞれのキーがAWS KMSアカウントに保存され、すべての暗号化がサーバーサイドで行われるこのユースケースの脅威モデルは何でしょうか?一方のKMSキーは漏洩しても、もう一方のキーは漏洩しないものでしょうか?
KMSキーの一方がAWS KMS External Key Store経由で外部に保存されている場合や、別のエンティティが管理する他のアカウントに保存されている場合、私は価値を見出すことができると思います。これらのユースケースはサポートされているのでしょうか?
現在、AWS KMS(DSSE-KMS)に保存されたキーによるAmazon S3の2層サーバーサイド暗号化は、すべてのAWSリージョンで利用可能であり、その価格詳細はAmazon S3の価格ページ(Storageタブ)とAWS KMSの価格ページで確認できる。