説明
Amazon S3 は新しいオブジェクトのアップロードに、少なくとも S3 マネージドキーによるサーバー側暗号化(SSE-S3)を適用します。テンプレートに BucketEncryption がなくても、新しいオブジェクトが暗号化されないわけではありません。KMS キーの使用など追加の要件がある場合は、それに合う既定の暗号化を明示してください。
想定される影響
既定の設定が組織の要件と異なると、必要なキーポリシーや監査上の管理要件を満たせない可能性があります。バケットの設定を変えるだけでは、既存オブジェクトの暗号化方式は自動で変わりません。
対処方法
必要なアルゴリズムと鍵を決め、BucketEncryption.ServerSideEncryptionConfiguration に設定してください。KMS を使う場合は、アップロードや読み取りを行う主体の鍵の権限も確認します。特定の暗号化方式を必須にする場合はバケットポリシーも設定し、既存オブジェクトは別途確認・変更してください。
例
変更前でも、新しいオブジェクトには SSE-S3 が適用されます。変更後はカスタマーマネージド KMS キーが必要な場合の例です。KmsKeyArn に、同じリージョンで利用できる対称暗号化 KMS キーの ARN を指定します。既定の暗号化設定だけでは、アップロードリクエストによる別の暗号化方式の指定は禁止されません。
変更前
yaml
Resources:
S3Bucket:
Type: AWS::S3::Bucket
Properties:
BucketName: !Sub 'bucket-${AWS::Region}-${AWS::AccountId}'
変更後
yaml
Parameters:
KmsKeyArn:
Type: String
Resources:
S3Bucket:
Type: AWS::S3::Bucket
Properties:
BucketName: !Sub 'bucket-${AWS::Region}-${AWS::AccountId}'
BucketEncryption:
ServerSideEncryptionConfiguration:
- ServerSideEncryptionByDefault:
SSEAlgorithm: aws:kms
KMSMasterKeyID: !Ref KmsKeyArn