Amazon Athena の "Unable to Verify/Create Output Bucket" エラーを解決する方法を教えてください。

最終更新日: 2020 年 2 月 10 日

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 のアクセス許可を制限する aws:SourceIp または aws:SourceVpc を使用する Deny ステートメントが、IAM ポリシーに含まれていないことを確認します。

注意: バケットが既に存在する場合、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/*"
            ]
        }
    ]
}