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

최종 업데이트 날짜: 2021년 11월 1일

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

해결 방법

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

기본 aws/s3 KMS 키 사용

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

다음 경우에는 기본 aws/s3 KMS 키의 사용을 고려합니다.

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

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

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

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

고객 관리형 키 사용

다음과 같은 경우 고객 관리형 키를 사용하는 것이 좋습니다.

  • 키에 대한 액세스 제어를 생성, 교체, 비활성화 또는 정의하고자 합니다.
  • S3 객체에 교차 계정 액세스 권한을 부여하려고 합니다. 다른 계정으로부터의 액세스를 허용하도록 고객 관리형 키의 정책을 구성할 수 있습니다.

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

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

고객 관리형 키에 대한 액세스를 제어하려면 키 정책을 수정합니다. 키 정책을 생성하는 방법에 대한 자세한 내용은 키 정책 예시를 참조하세요.