AWS KMS 키를 사용한 이중 계층 서버 측 암호화(DSSE-KMS) 사용
AWS Key Management Service(AWS KMS) 키를 사용한 이중 계층 서버 측 암호화(DSSE-KMS)를 사용하면 Amazon S3에 객체를 업로드할 때 객체에 두 계층의 암호화가 적용됩니다. DSSE-KMS를 사용하면 데이터에 다중 계층 암호화를 적용하고 암호화 키를 완전하게 제어할 것을 요구하는 규정 준수 표준을 보다 쉽게 충족할 수 있습니다.
Amazon S3 버킷에 DSSE-KMS를 사용할 때 AWS KMS 키는 버킷과 동일한 리전에 있어야 합니다. 또한, 객체에 DSSE-KMS를 요청하면 객체 메타데이터의 일부인 S3 체크섬이 암호화된 형식으로 저장됩니다. 체크섬에 대한 자세한 내용은 객체 무결성 확인 섹션을 참조하십시오.
DSSE-KMS 및 AWS KMS keys 사용에는 추가 요금이 부과됩니다. 자세한 내용은 AWS Key Management Service 개발자 가이드의 AWS KMS key 개념 및 AWS KMS 요금
참고
S3 버킷 키는 DSSE-KMS에서 지원되지 않습니다.
AWS KMS keys를 사용한 이중 계층 서버 측 암호화(DSSE-KMS) 요구
특정 Amazon S3 버킷의 모든 객체에 대한 이중 계층 서버 측 암호화를 요구하려면 버킷 정책을 사용하면 됩니다. 예를 들어, 다음 버킷 정책은 요청에 DSSE-KMS를 사용한 서버 측 암호화를 요청하는 x-amz-server-side-encryption
헤더가 포함되지 않을 경우 모든 사용자에게 객체 업로드(s3:PutObject
) 권한을 거부합니다.
{ "Version":"2012-10-17", "Id":"PutObjectPolicy", "Statement":[{ "Sid":"DenyUnEncryptedObjectUploads", "Effect":"Deny", "Principal":"*", "Action":"s3:PutObject", "Resource":"arn:aws:s3:::
amzn-s3-demo-bucket
/*", "Condition":{ "StringNotEquals":{ "s3:x-amz-server-side-encryption":"aws:kms:dsse" } } } ] }