Amazon S3(Amazon Simple Storage Service) 버킷은 AWS KMS(AWS Key Management Service) 기본 암호화를 사용합니다. 버킷에 파일을 업로드하려 할 때 Amazon S3가 "액세스 거부됨" 오류 메시지를 반환합니다. 해결하려면 어떻게 해야 하나요?
해결 방법
먼저 다음을 확인합니다.
그런 다음, 수신한 오류 메시지를 기반으로 IAM 사용자 또는 역할의 AWS KMS 권한을 업데이트합니다.
중요:
- AWS KMS 키와 IAM 역할이 서로 다른 AWS 계정에 속해 있는 경우 IAM 정책과 KMS 키 정책을 업데이트해야 합니다. IAM 정책과 KMS 키 정책 모두에 KMS 권한을 추가해야 합니다.
- IAM 정책을 사용하여 KMS 키에 대한 액세스를 제어하려면 KMS 키의 키 정책이 계정에 IAM 정책을 사용할 수 있는 권한을 부여해야 합니다.
"PutObject 작업을 호출할 때 오류(AccessDenied) 발생: 액세스 거부됨"
이 오류 메시지는 IAM 사용자 또는 역할에 kms:GenerateDataKey 작업에 대한 권한이 필요함을 나타냅니다.
kms:GenerateDataKey에 대해 권한을 추가하려면 다음 단계를 수행합니다.
1. IAM 콘솔을 엽니다.
2. Amazon S3 버킷에 파일을 업로드하는 데 사용할 IAM 사용자 또는 역할을 선택합니다.
3. 권한 탭에서 각 정책을 확장하여 해당 JSON 정책 문서를 봅니다.
4. JSON 정책 문서에서 AWS KMS 액세스와 관련된 정책을 찾습니다. **"Effect": "Allow"**가 있는 문을 검토하여 사용자 또는 역할에 버킷의 AWS KMS 키에 대한 kms:GenerateDataKey 작업에 대해 권한이 있는지 확인합니다.
5. 이 권한이 없는 경우 해당 정책에 권한을 추가합니다. 자세한 지침은 사용자에게 권한 추가(콘솔) 또는 역할 권한 정책 수정(콘솔)을 참조하세요.
6. JSON 정책 문서에서 **"Effect": "Deny"**가 있는 문을 찾습니다. 해당 문이 버킷의 s3:PutObject 작업을 거부하지 않는지 확인합니다. 해당 문은 버킷의 암호화에 사용되는 키의 kms:GenerateDataKey 작업에 대한 IAM 사용자 또는 역할 액세스를 거부하지 않아야 합니다. 또한 VPC 엔드포인트 정책, 서비스 제어 정책, 권한 경계 또는 세션 정책을 사용할 때 요구되는 KMS 및 S3 권한이 제한되지 않아야 합니다.
"CreateMultipartUpload 작업을 호출할 때 오류(AccessDenied) 발생: 액세스 거부됨"
이 오류 메시지는 IAM 사용자 또는 역할에 kms:GenerateDataKey 및 kms:Decrypt 작업에 대한 권한이 필요함을 나타냅니다.
kms:GenerateDataKey 및 kms:Decrypt에 대한 권한을 추가하려면 다음 단계를 수행합니다.
1. IAM 콘솔을 엽니다.
2. Amazon S3 버킷에 파일을 업로드하는 데 사용할 IAM 사용자 또는 역할을 선택합니다.
3. 권한 탭에서 각 정책을 확장하여 해당 JSON 정책 문서를 봅니다.
4. JSON 정책 문서에서 AWS KMS 액세스와 관련된 정책을 찾습니다. **"Effect": "Allow"**가 있는 문을 검토하여 역할에 버킷의 AWS KMS 키에 대한 kms:GenerateDataKey 및 kms:Decrypt 권한이 있는지 확인합니다.
5. 이러한 권한이 없는 경우 해당 정책에 권한을 추가합니다. 자세한 지침은 사용자에게 권한 추가(콘솔) 또는 역할 권한 정책 수정(콘솔)을 참조하세요.
6. JSON 정책 문서에서 **"Effect": "Deny"**가 있는 문을 찾습니다. 그런 다음 해당 문이 버킷의 s3:PutObject 작업을 거부하지 않는지 확인합니다. 해당 문은 버킷의 암호화에 사용되는 키의 kms:GenerateDataKey 및 kms:Decrypt 작업에 대한 IAM 사용자 또는 역할 액세스를 거부하지 않아야 합니다. 또한 VPC 엔드포인트 정책, 서비스 제어 정책, 권한 경계 또는 세션 정책을 사용할 때 요구되는 KMS 및 S3 권한이 제한되지 않아야 합니다.
관련 정보
Amazon S3 버킷에 대한 기본 서버 측 암호화 동작 설정