S3 버킷의 기본 암호화 정책 점검

S3의 기본 암호화가 조직의 알고리즘과 키 관리 요구를 충족하는지 확인하세요.

설명

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

참조