跳至内容

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

1 分钟阅读
0

当我在 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:SourceIpaws:SourceVpc 来限制 Amazon S3 权限的 Deny 语句。

例如,以下策略允许 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-bucketarn:aws:s3:::query-results-custom-bucket/*

相关信息

控制从 Athena 对 Amazon S3 的访问

Amazon S3 存储桶策略的示例

使用存储桶策略控制从虚拟私有云 (VPC) 端点的访问

Amazon S3 的策略操作

AWS 官方已更新 1 年前