AWS KMS 키 암호화를 사용하여 Amazon S3에 대용량 파일을 업로드할 수 없는 이유는 무엇입니까?

3분 분량
0

대용량 파일을 Amazon Simple Storage Service(Amazon S3) 버킷에 업로드하고 싶습니다. 업로드 요청에는AWS Key Management Service (AWS KMS) 키를 사용한 암호화 정보가 포함되어 있습니다. 하지만 액세스 거부 오류가 발생합니다.

간략한 설명

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

대용량 파일의 경우 AWS Command Line Interface (AWS CLI)을 사용하는 상위 수준 s3 명령, AWS SDK 및 많은 타사 프로그램이 멀티파트 업로드를 자동으로 수행합니다. AWS KMS 키를 사용하여 멀티파트 업로드를 암호화하려면 kms:GenerateDataKeykms:Decrypt 권한이 있어야 합니다. kms:GenerateDataKey 권한을 통해 업로드를 시작할 수 있습니다. KMS:Decrypt 권한을 사용하면 동일한 객체의 이전 부분에 사용한 키를 사용하여 새로 업로드한 부분을 암호화할 수 있습니다.

**참고:**모든 파트를 업로드한 후에는 업로드된 파트를 어셈블하여 멀티파트 업로드 작업을 완료해야 합니다. 업로드된 파트는 AWS KMS 키로 서버 측에서 암호화되므로 파트를 어셈블하려면 먼저 객체 파트를 복호화해야 합니다. 따라서 AWS KMS 키 (SSE-KMS) 를 사용한 서버 측 암호화를 사용하는 멀티파트 업로드 요청에는 kms:Decrypt 권한이 있어야 합니다.

해결 방법

AWS ID 및 액세스 관리(IAM) 역할과 키는 동일한 AWS 계정 또는 다른 계정에 존재할 수 있습니다. IAM 역할과 키가 동일한 계정에 있는 경우 IAM 정책 또는 AWS KMS 키 정책에서 kms:Decrypt 권한을 지정할 수 있습니다. IAM 역할과 키가 서로 다른 계정에 있는 경우 키와 IAM 정책 모두에 kms:Decrypt 권한을 지정해야 합니다.

키 정책

AWS 관리 콘솔 정책 보기에서 AWS KMS 키 정책을 검토합니다.

키 정책에서 IAM 사용자 또는 역할의 ARN이 AWS 보안 주체로 나열된 문을 검색합니다. ARN의 형식은 다음과 같습니다. arn:aws:iam::111122223333:user/john.

그런 다음 IAM 사용자 또는 역할 문이 허용하는 작업 목록을 확인합니다. 멀티파트 업로드의 경우 허용되는 작업 목록에는 SSE-KMS를 사용한 kms:Decrypt이 포함되어야 합니다.

예를 들어 키 정책의 다음 문을 사용하면 사용자 Johnkms:Decryptkms:GenerateDataKey 작업을 수행할 수 있습니다.

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

IAM 권한

IAM 권한을 검토하려면 IAM 콘솔을 열고 IAM 사용자 또는 역할을 선택합니다.

IAM 사용자 또는 역할에 적용되는 권한 정책 목록을 검토합니다. 객체를 암호화하는 데 사용하는 키에 대해 KMS:Decrypt 작업을 수행할 수 있게 하는 정책이 적용되었는지 확인합니다.

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

이 예제 문은 IAM 사용자에게 키 arn:Aws:kms:example-region-1:123456789098:key/111a2bb-333c-4d44-5555-a111bb2c33ddd에 대한 kms:Decryptkms:GenerateDataKey를 수행할 수 있는 액세스 권한을 부여합니다.

IAM 권한을 업데이트하는 방법에 대한 지침은 IAM 사용자의 권한 변경을 참조하세요.

관련 정보

AWS 정책 생성기

AWS 공식
AWS 공식업데이트됨 8달 전