AWS KMS 키를 사용한 이중 계층 서버 측 암호화(DSSE-KMS) 사용 - Amazon Simple Storage Service

AWS KMS 키를 사용한 이중 계층 서버 측 암호화(DSSE-KMS) 사용

AWS Key Management Service(AWS KMS) 키를 사용한 이중 계층 서버 측 암호화(DSSE-KMS)를 사용하면 Amazon S3에 객체를 업로드할 때 객체에 두 계층의 암호화가 적용됩니다. DSSE-KMS를 사용하면 데이터에 다중 계층 암호화를 적용하고 암호화 키를 완전하게 제어할 것을 요구하는 규정 준수 표준을 보다 쉽게 충족할 수 있습니다.

DSSE-KMS의 '이중'은 데이터에 적용되는 AES-256 암호화의 독립 계층 2개를 나타냅니다.

  • 첫 번째 계층: AWS KMS에서 생성된 고유 데이터 암호화 키(DEK)를 사용하여 데이터가 암호화됩니다.

  • 두 번째 계층: 이미 암호화된 데이터는 Amazon S3에서 관리하는 별도의 AES-256 암호화 키를 사용하여 다시 암호화됩니다.

이는 단일 암호화 계층만 적용하는 표준 SSE-KMS와 다릅니다. 이중 계층 접근 방식은 한 암호화 계층이 손상되더라도 데이터가 두 번째 계층으로 보호되도록 하여 보안을 강화합니다. 이 추가 보안에는 처리 오버헤드 및 AWS KMS API 직접 호출이 증가하여 표준 SSE-KMS에 비해 비용이 더 많이 듭니다. 자세한 내용은 AWS Key Management Service 개발자 가이드의 AWS KMS key 개념AWS KMS 요금 섹션을 참조하세요.

Amazon S3 버킷에 DSSE-KMS를 사용할 때 AWS KMS 키는 버킷과 동일한 리전에 있어야 합니다. 또한, 객체에 DSSE-KMS를 요청하면 객체 메타데이터의 일부인 S3 체크섬이 암호화된 형식으로 저장됩니다. 체크섬에 대한 자세한 내용은 Amazon S3에서 객체 무결성 확인 섹션을 참조하십시오.

참고

S3 버킷 키는 DSSE-KMS에서 지원되지 않습니다.

DSSE-KMS와 표준 SSE-KMS의 주요 차이점은 다음과 같습니다.

  • 암호화 계층: DSSE-KMS는 AES-256 암호화의 독립 계층 2개를 적용하는 반면, 표준 SSE-KMS는 계층 1개를 적용합니다.

  • 보안: DSSE-KMS는 잠재적 암호화 취약성에 대한 향상된 보호를 제공합니다.

  • 규정 준수: DSSE-KMS는 계층 암호화를 요구하는 규제 요구 사항을 충족하는 데 도움이 됩니다.

  • 성능: 추가 암호화 처리로 인해 DSSE-KMS의 지연 시간이 약간 깁니다.

  • 비용: DSSE-KMS는 컴퓨팅 오버헤드 증가 및 추가 AWS KMS 작업으로 인해 더 많은 요금이 발생합니다.

AWS KMS keys를 사용한 이중 계층 서버 측 암호화(DSSE-KMS) 요구

특정 Amazon S3 버킷의 모든 객체에 대한 이중 계층 서버 측 암호화를 요구하려면 버킷 정책을 사용하면 됩니다. 예를 들어, 다음 버킷 정책은 요청에 DSSE-KMS를 사용한 서버 측 암호화를 요청하는 x-amz-server-side-encryption 헤더가 포함되지 않을 경우 모든 사용자에게 객체 업로드(s3:PutObject) 권한을 거부합니다.

JSON
{ "Version":"2012-10-17", "Id": "PutObjectPolicy", "Statement": [{ "Sid": "DenyUnEncryptedObjectUploads", "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Condition": { "StringNotEquals": { "s3:x-amz-server-side-encryption": "aws:kms:dsse" } } } ] }