Amazon S3 버킷에서 객체를 다운로드하거나 복사할 때 “사이퍼텍스트가 존재하지 않거나 이 리전에 존재하지 않거나 액세스가 허용되지 않은 고객 마스터 키를 나타냅니다.” 오류가 발생하는 이유는 무엇인가요?

3분 분량
0

Amazon Simple Storage Service(Amazon S3) 버킷에서 객체를 다운로드하거나 복사하려고 할 때 다음 오류가 발생합니다. 사이퍼텍스트는 존재하지 않거나 이 리전에 존재하지 않거나 액세스가 허용되지 않은 고객 마스터 키를 나타냅니다.

해결 방법


다음 두 조건에 모두 해당하는 경우 이 오류가 발생합니다.

  • 요청을 보내는 버킷에 저장된 객체는 AWS Key Management Service(AWS KMS) 키로 암호화됩니다.
  • 요청을 보내는 AWS Identity and Access Management(IAM) 역할 또는 사용자에게는 객체 암호화에 사용되는 AWS KMS 키에 액세스할 수 있는 충분한 권한이 없습니다.

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

AWS CLI 명령 head-object를 사용하여 객체의 암호화를 확인할 수 있습니다.

aws s3api head-object --bucket my-bucket --key my-object

위 명령에서 다음을 수행해야 합니다.

  • my-bucket을 버킷 이름으로 바꿉니다.
  • my-object를 객체 이름으로 바꿉니다.

이 명령의 출력은 다음과 같습니다.

{
  "AcceptRanges": "bytes",
  "ContentType": "text/html",
  "LastModified": "Thu, 16 Apr 2015 18:19:14 GMT",
  "ContentLength": 77,
  "VersionId": "null",
  "ETag": "\"30a6ec7e1a9ad79c203d05a589c8b400\"",
  "ServerSideEncryption": "aws:kms",
  "Metadata": {},
  "SSEKMSKeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
  "BucketKeyEnabled": true
}

출력의 SSEKMSKeyId 필드는 객체를 암호화하는 데 사용된 AWS KMS 키를 지정합니다.

이 오류를 해결하려면 다음 중 하나를 수행하세요.

  • IAM 사용자 또는 역할에 연결된 정책에 필요한 권한이 있는지 확인하세요. 예시:
{
  "Version": "2012-10-17",
  "Statement": {
    "Effect": "Allow",
    "Action": [
      "kms:DescribeKey",
      "kms:GenerateDataKey",
      "kms:Decrypt"
    ],
    "Resource": [
      "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
    ]
  }
}
  • AWS KMS 정책에 필요한 권한이 있는지 확인하세요. 예시:
{
  "Version": "2012-10-17",
  "Statement": {
    "Effect": "Allow",
    "Principal": {
      "AWS": "arn:aws:iam::AWS-account-ID:user/user-name-1"
    },
    "Action": [
      "kms:DescribeKey",
      "kms:GenerateDataKey",
      "kms:Decrypt"
    ],
    "Resource": "*"
  }
}

IAM 사용자 또는 역할과 AWS KMS 키가 다른 AWS 계정에서 온 경우 다음 사항을 확인하세요.

  • IAM 엔티티에 첨부된 정책에는 필요한 AWS KMS 권한이 있습니다.
  • AWS KMS 키 정책은 IAM 엔티티에 필요한 권한을 부여합니다.

중요: AWS 관리형 키 정책은 수정할 수 없으므로 교차 계정 사용 사례에서는 AWS 관리형 키를 사용할 수 없습니다.

AWS KMS 키에 대한 자세한 정보를 보려면 describe-key 명령을 실행하세요.

aws kms describe-key --key-id arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab

AWS KMS 콘솔을 사용하여 AWS KMS 키에 대한 세부 정보를 확인할 수도 있습니다.

참고: 객체를 암호화하는 데 사용되는 AWS KMS 키가 활성화되어 있는지 확인하세요.

관련 정보

Amazon S3 버킷에 사용자 지정 AWS KMS 키를 사용하는 기본 암호화가 있습니다. 사용자가 버킷에서 다운로드하고 버킷에 업로드하도록 허용하려면 어떻게 해야 하나요?

Amazon S3에서 KMS로 암호화된 객체를 다운로드할 때 AWS KMS 키를 지정해야 하나요?

AWS 공식
AWS 공식업데이트됨 일 년 전
댓글 없음

관련 콘텐츠