다음 버킷 정책을 사용하고 있습니다.
{ "버전": "2012-10-17", "Id": "Policy1566337631537", "Statement": [ { "Sid": "Stmt156", "Effect": "거부", "Principal": "", "Action": "s3:PutObject", "리소스": "arn:aws:s3:::jmalacho-test-bucket23/*", "조건": { "StringNotEquals": { "s3:x-amz-server-side-encryption-aws-kms -key-id": "arn:aws:kms:us-east-2:123456789012:alias/ExampleAlias" } } } ] }
그런 다음 CLI를 사용하여 파일을 업로드하려고 하면 액세스 거부 오류가 발생합니다.
aws s3 cp Notes.txt s3://jmalacho-test-bucket23/notes.txt --sse aws:kms --sse-kms-key-id alias/ExampleAlias
key-id arn을 사용하면 정책이 작동합니다. 버킷 정책에서 키 별칭을 사용할 수 없나요?
감사해요
답변1
문서에서는 그렇게 할 수 없다고 제안합니다.
Amazon S3는
s3:x-amz-server-side-encryption-aws-kms-key-id
객체 암호화를 위해 특정 KMS 키를 요구하는 데 사용할 수 있는 조건 키도 지원합니다. 정책에 지정하는 KMS 키는 다음arn:aws:kms:region:acct-id:key/key-id
형식을 사용해야 합니다.https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html
별칭은 위에서 언급한 "특정 KMS 키"가 필요하다는 개념과 일치하지 않습니다. 별칭이 키를 가리키는 일시적인 경우를 제외하면 별칭은 특정 키를 참조하지 않기 때문입니다.
또한:
다음 작업에서만 별칭을 KeyId 매개변수의 값으로 사용할 수 있습니다.
DescribeKey
Encrypt
GenerateDataKey
GenerateDataKeyWithoutPlaintext
ReEncrypt
https://docs.aws.amazon.com/kms/latest/developerguide/programming-aliases.html