SQL Workbench/J または AWS Lambda で Amazon Athena クエリを実行する際、あるいは AWS SDK を使用する際に、次のエラーが発生します: "Unable to verify/create output bucket."
解決策
クエリ結果の場所を手動で設定した場合は、対応する Amazon Simple Storage Service (Amazon S3) バケットが存在することを確認してください。
S3 バケットが存在する場合は、クエリを実行するユーザーまたはロールの AWS Identity and Access Management (IAM) ポリシーにおいて、次のプロパティを確認します。
- ポリシーは、必要な権限 (例: s3:GetBucketLocation) を許可しているかどうかを確認します。
- IAM ポリシーには、aws:SourceIp または aws:SourceVpc に対する Deny ステートメントを含めることはできません。この場合、Amazon S3 へのアクセス許可は制限されます。
たとえば、次のポリシーでは、IAM ユーザーまたはロールはクエリを実行できます。
{
"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/*"
]
}
]
}
注: 既存の S3 バケットでは、s3:CreateBucket 権限を削除します。クエリ結果の場所を手動で設定する場合は、ポリシーに arn:aws:s3:::aws-athena-query-results-* を含めることはできません。クエリ結果の場所を手動で設定する場合のみ、ポリシーには arn:aws:s3:::query-results-custom-bucket および arn:aws:s3:::query-results-custom-bucket/* が必要です。
関連情報
Athena から Amazon S3 へのアクセスを制御する
Amazon S3 バケットポリシーの例
バケットポリシーを使用して仮想プライベートクラウド (VPC) エンドポイントからのアクセスを制御する
Amazon S3 のポリシーアクション