저는 AWS Key Management Service(AWS KMS)를 사용합니다. Amazon Simple Storage Service(Amazon S3)에 저장된 객체에 AWS KMS(SSE-KMS)를 사용하는 서버 측 암호화를 사용하려고 합니다. 고객 관리형 AWS KMS 키를 사용할지, aws/s3 AWS KMS 관리형 키를 사용할지 결정해야 합니다.
해결 방법
참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생하면 AWS CLI의 오류 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.
필요한 제어 정도에 따라 키를 선택합니다. AWS KMS는 사용자를 대신해 기본 aws/s3 AWS KMS 키를 관리하지만, 고객 관리형 키는 온전히 사용자가 제어합니다.
기본 aws/s3 KMS 키를 사용해야 할 때
다음 상황에서는 기본 aws/s3 KMS 키를 사용하십시오.
- 동일한 AWS 계정에 있는 S3 객체에 대하여 AWS Identity and Access Management(IAM) 보안 주체를 AWS KMS 키로 사용합니다.
- AWS KMS 키의 정책을 관리하고 싶지 않습니다.
객체를 암호화하는 데 aws/s3 AWS KMS 키를 사용하려면, 업로드 중에 암호화 방법을 SSE-KMS로 정의하되 키를 지정하지 마십시오. 다음 cp AWS CLI 명령을 실행합니다.
aws s3 cp ./mytextfile.txt s3://DOC-EXAMPLE-BUCKET/ --sse aws:kms
참고: DOC-EXAMPLE-BUCKET을 S3 버킷 이름으로 바꾸십시오.
고객 관리형 키를 사용해야 할 때
다음 상황에서는 고객 관리형 키를 사용하십시오.
- 키의 액세스 제어를 만들고, 회전, 비활성화 또는 정의하고자 합니다.
- S3 객체에 대한 교차 계정 액세스 권한을 부여하고자 합니다.
참고: 다른 계정에서의 액세스를 허용하도록 고객 관리형 키의 정책을 구성할 수 있습니다.
고객 관리형 키를 사용하여 객체를 암호화하려면, 업로드 중에 암호화 방법을 SSE-KMS로 정의하십시오. 또한, 고객 관리형 키를 키로 지정합니다(--sse-kms-key-id). 다음 cp 명령을 실행합니다.
aws s3 cp ./mytextfile.txt s3://DOC-EXAMPLE-BUCKET/ --sse aws:kms --sse-kms-key-id testkey
참고: mytextfile.txt를 파일의 이름으로, DOC-EXAMPLE-BUCKET을 Amazon S3 버킷 이름으로, testkey를 키 ID로 바꿉니다.
고객 관리형 키에 대한 액세스를 제어하려면 키 정책을 수정합니다. 자세한 내용은 키 정책 만들기를 참조하십시오.
SSE-S3 암호화를 사용해야 할 때
AWS KMS 암호화 대신 Amazon S3 관리형 키(SSE-S3) 암호화를 사용할 수 있습니다. AWS KMS 암호화는 강력한 보안 제어를 제공하지만, 다음 상황에서는 반드시 기본 SSE-S3 암호화를 사용해야 합니다.
관련 정보
서버 측 암호화를 사용하여 데이터 보호
AWS KMS 키 (SSE-KMS) 를 사용한 서버 측 암호화 사용