Amazon Simple Storage Service (Amazon S3) バケットで AWS Key Management Service (AWS KMS) を使用してデフォルトの暗号化を有効にしました。新しいオブジェクトと以前にアップロードしたオブジェクトの暗号化がどうなるか把握したいです。
解決策
バケットでデフォルトの AWS KMS 暗号化を有効にすると、Amazon S3 は暗号化設定のない新しくアップロードされたオブジェクトのみをデフォルトで暗号化します。
デフォルトのバケット暗号化では、以前にアップロードしたオブジェクトの暗号化設定は変更されません。例えば、バケットの AWS Key Management Service (AWS KMS) キー (SSE-KMS) を使用してサーバー側の暗号化を有効にできます。これにより、すでにバケット内にある暗号化されていないオブジェクトはすべて暗号化されないままになります。また、SSE-KMS、Amazon S3 マネージドキーによるサーバー側の暗号化 (SSE-S3)、またはお客様提供のキーによるサーバー側の暗号化 (SSE-C) ですでに暗号化されたオブジェクトは、それぞれのキーで暗号化されたままになります。
デフォルトのバケット暗号化は、新しいオブジェクトをアップロードするときに指定した暗号化設定を上書きしません。例えば、デフォルトの SSE-KMS 暗号化を使用するバケットに対する PutObject リクエストで AES256 暗号化を指定した場合、オブジェクトは AES256 暗号化を保持します。
バケットにデフォルトの暗号化が設定されているのに、新たにアップロードされたオブジェクトが異なる暗号化設定になっている場合は、AWS CloudTrail データイベントログを確認してください。PUT、POST、InitiateMultipartUpload API リクエストのログには SSE 適用フィールドがあります。このフィールドの値が Default_SSE_S3 または Default_SSE_KMS の場合、オブジェクトにはデフォルトの暗号化が適用されます。
暗号化されたオブジェクトの暗号化タイプを SSE-S3 から SSE-KMS に更新するには、UpdateObjectEncryption API オペレーションを使用します。UpdateObjectEncryption API オペレーションは、エンベロープ暗号化を使用して、新しく指定したサーバー側の暗号化タイプでデータ暗号化キーを再暗号化します。
注: SSE-KMS でオブジェクトをアップロードするようユーザーに要求するには、バケットポリシー、アクセスポイントポリシー、または AWS Organizations サービスコントロールポリシーを使用してください。