Amazon S3의 객체를 암호화하기 위해 AWS KMS 관리형 키와 고객 관리형 KMS 키 중 무엇을 사용해야 합니까?

최종 업데이트 날짜: 2022년 10월 17일

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

해결 방법

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

기본 aws/s3 KMS 키 사용

참고: Amazon S3 콘솔의 KMS 키 이름은 aws/s3입니다. 하지만 AWS Command Line Interface(AWS CLI)를 사용하는 경우 해당 이름이나 ID를 지정하지 마세요.

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

  • AWS 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

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