Amazon Simple Storage Service (Amazon S3) に保存されているオブジェクトに対して、AWS Key Management Service (SSE-KMS) を使用したサーバー側の暗号化を使用したいと考えています。カスタマーマネージド AWS KMS キーを使用すべきですか? それとも aws/s3 と呼ばれる AWS KMS マネージドキーを使用すべきですか? これら 2 つのキーの違いは何ですか?
解決方法
AWS Key Management Service (AWS KMS) はデフォルトの aws/s3 AWS KMS キーを管理しますが、カスタムマーマネージドキーはユーザーが完全に制御できます。
デフォルトの aws/s3 KMS キーの使用
注意: KMS キーの名前は Amazon S3 コンソールでは aws/s3 です。ただし、AWS コマンドラインインターフェイス (AWS CLI) を使用する場合は、その名前や ID を指定しないでください。
以下の場合は、デフォルトの aws/s3 KMS キーの使用を検討してください。
- AWS KMS キーと同じ AWS アカウントにある AWS Identity and Access Management (IAM) プリンシパルを使用して、S3 オブジェクトをアップロードしたり、それらにアクセスしたりしている。
- KMS キーのポリシーを管理したくない。
デフォルトの aws/s3 KMS キーを使用してオブジェクトを暗号化するには、アップロード中に暗号化方法を SSE-KMS として定義しますが、キーは指定しないでください。
aws s3 cp ./mytextfile.txt s3://DOC-EXAMPLE-BUCKET/ --sse aws:kms
注意: AWS CLI コマンドの実行時にエラーが発生した場合は、AWS CLI の最新バージョンを使用していることを確認してください。
カスタマーマネージドキーを使用する
次の場合は、カスタマーマネージドキーの使用を検討してください。
- キーの作成、ローテーション、無効化、または CMK のアクセスコントロールの定義を実行したい。
- S3 オブジェクトにクロスアカウントアクセス権を付与したい。カスタマーマネージドキーのポリシーを設定して、別のアカウントからのアクセスを許可することができます。
独自に作成したカスタマーマネージドキーを使ってオブジェクトを暗号化するには、アップロード中に暗号化方法を SSE-KMS として定義します。その後、カスタマーマネージドキーをキーとして指定します (--sse-kms-key-id)。
aws s3 cp ./mytextfile.txt s3://DOC-EXAMPLE-BUCKET/ --sse aws:kms --sse-kms-key-id testkey
カスタマーマネージドキーへのアクセスを制御するには、キーポリシーを変更します。キーポリシーの作成方法の詳細については、キーポリシーの作成を参照してください。
関連情報
サーバー側の暗号化を使用したデータの保護
Amazon Simple Storage Service (Amazon S3) が AWS KMS を使用する方法