SQL Workbench/J, AWS Lambda 또는 AWS SDK를 사용하여 Amazon Athena 쿼리를 실행하면 "Unable to verify/create output bucket" 오류가 표시됩니다.
간략한 설명
이 오류의 몇 가지 일반적인 원인은 다음과 같습니다.
- 쿼리 결과 위치에 대해 지정한 Amazon Simple Storage Service(Amazon S3) 버킷이 존재하지 않습니다.
- 쿼리를 실행하는 사용자 또는 역할에 대한 AWS Identity and Access Management(IAM) 정책에 s3: GetBucketLocation과 같은 필요한 Amazon S3 권한이 없습니다.
해결 방법
쿼리 결과 위치를 수동으로 설정하는 경우 S3 버킷이 존재하는지 확인해야 합니다. 그런 다음 쿼리를 실행하는 사용자 또는 역할에 대한 IAM 정책을 확인합니다.
- 다음 예제 정책의 사용 권한(예: s3:GetBucketLocation)이 허용되는지 확인합니다.
- IAM 정책에 aws:SourceIp 또는 aws:SourceVpc를 사용하여 S3 권한을 제한하는 Deny 문이 포함되지 않았는지 확인합니다.
참고: 버킷이 이미 있는 경우 s3:CreateBucket 권한이 필요하지 않습니다. 쿼리 결과 위치를 수동으로 설정한 경우 해당 정책에 arn:aws:s3:::aws-athena-query-results-*를 포함시키지 마세요. 쿼리 결과 위치를 수동으로 설정한 경우 해당 정책은 arn:aws:s3:::query-results-custom-bucket 및 arn:aws:s3:::query-results-custom-bucket/*을 포함해야 합니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetBucketLocation",
"s3:GetObject",
"s3:ListBucket",
"s3:ListBucketMultipartUploads",
"s3:ListMultipartUploadParts",
"s3:AbortMultipartUpload",
"s3:CreateBucket",
"s3:PutObject"
],
"Resource": [
"arn:aws:s3:::aws-athena-query-results-*",
"arn:aws:s3:::query-results-custom-bucket",
"arn:aws:s3:::query-results-custom-bucket/*"
]
}
]
}
관련 정보
Amazon S3에 액세스
버킷 정책 예제
버킷 정책을 사용하여 VPC 엔드포인트에서 액세스 제어
예제 - 객체 작업