Amazon S3(Simple Storage Service) 버킷에 대형 파일을 업로드하려고 합니다. 내 업로드 요청에는 AWS Key Management Service(AWS KMS) 키를 사용한 암호화 정보가 포함됩니다. 그러나 이렇게 하면 액세스 거부 오류가 발생합니다. 한편, 더 작은 파일에 암호화 정보를 포함하여 업로드하면 업로드가 성공합니다. 이 문제를 어떻게 해결해야 합니까? 

객체 암호화에 사용되는 AWS KMS 키에 kms:Decrypt 작업을 수행할 수 있는 권한이 있는지 확인합니다.

참고: kms:Decrypt는 AWS KMS 키로 암호화된 Amazon S3 객체를 업로드 또는 다운로드할 때 권한이 필요한 작업 중 하나에 불과합니다. kms:Encrypt, kms:ReEncrypt*, kms:GenerateDataKey*kms:DescribeKey에 대한 권한도 있어야 합니다.

AWS CLI(aws s3 명령), AWS SDK 및 다양한 타사 프로그램은 파일이 큰 경우 멀티파트 업로드를 자동으로 수행합니다. AWS KMS 키를 사용한 암호화를 포함한 멀티파트 업로드를 수행하려면 요청자에게 키에 대한 kms:Decrypt 작업을 수행할 수 있는 권한이 있어야 합니다. 이 권한은 멀티파트 업로드가 완료되기 전에 Amazon S3에서 암호화된 파일 파트의 데이터를 해독하고 읽어야 하기 때문에 필요합니다. 

AWS Identity and Access Management(IAM) 사용자 또는 역할이 AWS KMS 키와 동일한 AWS 계정에 있는 경우에는 키 정책에 kms:Decrypt를 수행할 수 있는 권한이 있어야 합니다. IAM 사용자 또는 역할이 키와 다른 계정에 속해 있는 경우에는 키 정책과 IAM 권한 모두에 대해 kms:Decrypt를 수행할 수 있는 권한이 있어야 합니다.

키 정책

AWS Management Console 정책 뷰를 사용하여 AWS KMS 키 정책을 검토합니다.

키 정책에서 IAM 사용자 또는 역할의 ARN(Amazon 리소스 이름)이 AWS 보안 주체로 나열된 문을 검색합니다. ARN은 arn:aws:iam::111122223333:user/john과 같은 형식을 가지고 있습니다.

그런 다음 IAM 사용자 또는 역할과 연관된 문이 허용하는 작업 목록을 확인합니다. 멀티파트 업로드가 작동하려면 허용된 작업의 목록에 kms:Decrypt가 포함되어 있어야 합니다.

예를 들어, 키 정책에 있는 이 문은 John이라는 사용자가 kms:Decrypt를 포함한 여러 작업을 키에 수행할 수 있도록 허용합니다.

  {
            "Sid": "Allow use of the key",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:user/john"
            },
            "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:ReEncrypt*",
                "kms:GenerateDataKey*",
                "kms:DescribeKey"
            ],
            "Resource": "*"
        },

IAM 권한

IAM 권한을 검토하려면 IAM 콘솔을 연 다음 IAM 사용자 또는 역할을 엽니다.

IAM 사용자 또는 역할에 적용된 권한 정책의 목록을 검토합니다. 객체 암호화에 사용되는 키에 kms:Decrypt 작업을 수행하도록 허용하는 정책이 적용되어 있는지 확인하십시오.

참고: kms:Decrypt는 AWS KMS 키로 암호화된 Amazon S3 객체를 업로드 또는 다운로드할 때 권한이 필요한 작업 중 하나에 불과합니다. kms:Encrypt, kms:ReEncrypt*, kms:GenerateDataKey*kms:DescribeKey에 대한 권한도 있어야 합니다.

예를 들어 이 문은 IAM 사용자가 키(arn:aws:kms:example-region-1:123456789098:key/111aa2bb-333c-4d44-5555-a111bb2c33dd)에 대해 kms:Decrypt 작업을 수행할 수 있는 액세스 권한을 부여합니다.

{
  "Version": "2012-10-17",
  "Statement": {
    "Effect": "Allow",
    "Action": [
      "kms:Encrypt",
      "kms:Decrypt",
      "kms:ReEncrypt*",
      "kms:GenerateDataKey*",
      "kms:DescribeKey"
    ],
    "Resource": [
      "arn:aws:kms:example-region-1:123456789098:key/111aa2bb-333c-4d44-5555-a111bb2c33dd"
    ]
  }
}

IAM 정책을 업데이트하는 방법에 대한 지침은 IAM 사용자의 권한 변경을 참조하십시오. 


페이지 내용이 도움이 되었습니까? | 아니요

AWS 지원 지식 센터로 돌아가기

도움이 필요하십니까? AWS 지원 센터를 방문하십시오.

게시 날짜: 2019년 3월 12일