Amazon S3 にあるオブジェクトの暗号化には、AWS KMS マネージドキー、またはカスタマーマネージド KMS キーのどちらを使用するべきですか?

最終更新日: 2022 年 10 月 17 日

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

カスタマーマネージドキーへのアクセスを制御するには、キーポリシーを変更します。キーポリシーの作成方法の詳細については、キーポリシーの作成を参照してください。