如何解决 Amazon Athena 中的“Unable to verify/create output bucket”错误?

1 分钟阅读
0

当我在 SQL Workbench/J 和 AWS Lambda 中或使用 AWS 开发工具包运行 Amazon Athena 查询时,收到错误消息:“Unable to verify/create output bucket”。

简短描述

以下是导致此错误的部分常见原因:

  • 您为查询结果的位置指定的 Amazon Simple Storage Service (Amazon S3) 存储桶不存在。
  • 运行查询的用户或角色的 AWS Identity and Access Management (IAM) 策略不具备所需的 Amazon S3 权限,例如 s3:GetBucketLocation

解决方法

如果您手动设置查询结果的位置,则必须确认 S3 存储桶是否存在。然后,检查运行查询的用户或角色的 IAM 策略:

  • 确认允许以下示例策略中的权限,例如 s3:GetBucketLocation
  • 确保 IAM 策略不包含使用 aws:SourceIpaws:SourceVpc 限制 S3 权限的 Deny 语句。

**注意:**如果存储桶已存在,则不需要 s3:CreateBucket 权限。如果手动设置查询结果位置,则请勿在策略中包含 arn:aws:s3:::aws-athena-query-results-*。仅当手动设置查询结果的位置时,该策略才必须包含 arn:aws:s3:::query-results-custom-bucketarn: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 终端节点的访问

示例 – 对象操作

相关视频

AWS 官方
AWS 官方已更新 3 年前