AWS KMS 키를 사용한 이중 계층 서버 측 암호화(DSSE-KMS)
AWS KMS 키를 사용한 이중 계층 서버 측 암호화(DSSE-KMS) (Using dual-layer server-side encryption with AWS KMS keys (DSSE-KMS))
AWS Key Management Service(AWS KMS) 키를 사용한 이중 계층 서버 측 암호화(DSSE-KMS)는 Amazon S3에 업로드될 때 객체에 두 계층의 암호화를 적용해요.
출처: 문서
본문
AWS Key Management Service(AWS KMS) 키를 사용한 이중 계층 서버 측 암호화(DSSE-KMS)는 Amazon S3에 업로드될 때 객체에 두 계층의 암호화를 적용해요. DSSE-KMS는 데이터에 다중 계층 암호화를 적용하고 암호화 키를 완전히 제어하도록 요구하는 규정 준수 표준을 더 쉽게 충족하는 데 도움을 줘요.
DSSE-KMS의 "이중(dual)"은 데이터에 적용되는 두 개의 독립적인 AES-256 암호화 계층을 말해요.
- 첫 번째 계층: 데이터가 AWS KMS가 생성한 고유한 데이터 암호화 키(DEK)로 암호화돼요.
- 두 번째 계층: 이미 암호화된 데이터가 Amazon S3가 관리하는 별도의 AES-256 암호화 키로 다시 암호화돼요.
이는 단일 암호화 계층만 적용하는 표준 SSE-KMS와 달라요. 이중 계층 방식은 한 암호화 계층이 손상되어도 데이터가 두 번째 계층으로 보호되도록 하여 향상된 보안을 제공해요. 이 추가 보안에는 처리 오버헤드와 AWS KMS API 호출이 증가하여 표준 SSE-KMS보다 비용이 높아져요. DSSE-KMS 요금에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서의 AWS KMS 키 개념과 AWS KMS 요금을 참고하세요.
Amazon S3 버킷과 함께 DSSE-KMS를 사용할 때 AWS KMS 키는 버킷과 같은 리전에 있어야 해요. 또한 객체에 DSSE-KMS가 요청되면 객체 메타데이터의 일부인 S3 체크섬이 암호화된 형태로 저장돼요. 체크섬에 대한 자세한 내용은 Amazon S3 객체 무결성 확인하기를 참고하세요.
참고 S3 Bucket Keys는 DSSE-KMS에서 지원되지 않아요.
DSSE-KMS와 표준 SSE-KMS의 주요 차이점은 다음과 같아요.
- 암호화 계층: DSSE-KMS는 두 개의 독립적인 AES-256 암호화 계층을 적용하는 반면 표준 SSE-KMS는 한 계층을 적용해요.
- 보안: DSSE-KMS는 잠재적인 암호화 취약점에 대한 향상된 보호를 제공해요.
- 규정 준수: DSSE-KMS는 다중 계층 암호화를 요구하는 규제 요구 사항을 충족하는 데 도움이 돼요.
- 성능: DSSE-KMS는 추가 암호화 처리로 인해 약간 더 높은 대기 시간이 있어요.
- 비용: DSSE-KMS는 증가된 계산 오버헤드와 추가 AWS KMS 작업으로 인해 더 높은 요금이 발생해요.
AWS KMS 키를 사용한 이중 계층 서버 측 암호화(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"
}
}
}
]
}