Amazon S3의 객체를 암호화하기 위해 AWS KMS 관리형 키를 사용해야 합니까 아니면 사용자 지정 AWS KMS 키를 사용해야 하나요?

최종 업데이트 날짜: 2020년 10월 21일

Amazon Simple Storage Service(Amazon S3)에 저장된 객체에 AWS Key Management Service와 함께 서버측 암호화(SSE-KMS)를 사용하려고 합니다. 사용자 지정 AWS KMS 고객 마스터 키(CMK)를 사용해야 하나요? 아니면 aws/s3라는 AWS KMS 관리형 CMK를 사용해야 하나요? 두 방식의 차이점은 무엇인가요?

해결 방법

AWS KMS는 기본 aws/s3 CMK를 관리하지만 사용자는 사용자 지정 CMK를 완전히 제어할 수 있습니다.

기본 aws/s3 CMK 사용

참고: Amazon S3 콘솔에 표시되는 CMK의 이름은 aws/s3이지만 AWS 명령줄 인터페이스(AWS CLI)를 사용하는 경우에는 이 이름이나 ID를 지정하지 않습니다.

다음 경우에는 기본 aws/s3 CMK의 사용을 고려하십시오.

  • CMK와 같은 AWS 계정에 있는 AWS Identity and Access Management(IAM) 주체를 사용하여 S3 객체를 업로드 또는 액세스합니다.
  • CMK에 대한 정책의 관리를 원하지 않습니다.
  • CMK의 교체를 원하지 않습니다.

기본 aws/s3 CMK를 사용하여 객체를 암호화하려면 업로드할 때 암호화 방식을 SSE-KMS로 정의하되 키를 지정하지 않도록 합니다.

aws s3 cp ./mytextfile.txt s3://DOC-EXAMPLE-BUCKET/ --sse aws:kms

참고: AWS CLI 명령을 실행할 때 오류가 발생하는 경우, 최신 버전의 AWS CLI를 사용하고 있는지 확인하세요.

사용자 지정 CMK 사용

다음 경우에는 사용자 지정 CMK의 사용을 고려하십시오.

  • CMK에 대한 액세스 제어를 생성, 교체, 비활성화 또는 정의하고자 합니다.
  • S3 객체에 대해 계정 간의 액세스를 제공하고자 합니다. 다른 계정으로부터의 액세스를 허용하도록 사용자 지정 CMK의 정책을 구성할 수 있습니다.

생성한 사용자 지정 CMK를 사용하여 객체를 암호화하려면 업로드할 때 암호화 방식을 SSE-KMS로 정의합니다. 그런 다음 사용자 지정 CMK를 키(--sse-kms-key-id)로 지정합니다.

aws s3 cp ./mytextfile.txt s3://DOC-EXAMPLE-BUCKET/ --sse aws:kms --sse-kms-key-id testkey

사용자 지정 CMK에 대한 액세스를 제어하려면 키 정책을 수정합니다. AWS KMS 키 정책을 생성하는 방법에 대한 자세한 내용은 키 정책 예시를 참조하세요.