Athena错误:S3路径权限被拒绝。

0

【以下的问题经过翻译处理】 我正在试图从Lambda函数执行Athena查询,但是遇到了以下错误: Athena Query Failed to run with Error Message: Permission denied on S3 path: s3://bkt_logs/apis/2020/12/16/14

bkt_logs是由AWS Glue Crawlers用于爬取所有子文件夹并在其中填充Athena表的存储桶,我正在查询的就是这个表。 此外,bkt_logs是加密存储桶。

以下是我已分配给Lambda的策略。

[
  {
    "Action": [
      "s3:Get*",
      "s3:List*",
      "s3:PutObject",
      "s3:DeleteObject"
    ],
    "Resource": "arn:aws:s3:::athena-query-results/*",
    "Effect": "Allow",
    "Sid": "AllowS3AccessToSaveAndReadQueryResults"
  },
  {
    "Action": [
      "s3:*"
    ],
    "Resource": "arn:aws:s3:::bkt_logs/*",
    "Effect": "Allow",
    "Sid": "AllowS3AccessForGlueToReadLogs"
  },
  {
    "Action": [
      "athena:GetQueryExecution",
      "athena:StartQueryExecution",
      "athena:StopQueryExecution",
      "athena:GetWorkGroup",
      "athena:GetDatabase",
      "athena:BatchGetQueryExecution",
      "athena:GetQueryResults",
      "athena:GetQueryResultsStream",
      "athena:GetTableMetadata"
    ],
    "Resource": [
      "*"
    ],
    "Effect": "Allow",
    "Sid": "AllowAthenaAccess"
  },
  {
    "Action": [
      "glue:GetTable",
      "glue:GetDatabase",
      "glue:GetPartitions"
    ],
    "Resource": [
      "*"
    ],
    "Effect": "Allow",
    "Sid": "AllowGlueAccess"
  },
  {
    "Action": [
      "kms:CreateGrant",
      "kms:DescribeKey",
      "kms:Decrypt"
    ],
    "Resource": [
      "*"
    ],
    "Effect": "Allow",
    "Sid": "AllowKMSAccess"
  }
]
profile picture
专家
已提问 5 个月前34 查看次数
1 回答
0

【以下的回答经过翻译处理】 我不确定在您的情况下是否需要,但是一些S3 API操作适用于存储桶级别,我注意到您没有允许任何"资源",包括: "Resource": "arn:aws:s3:::athena-query-results" 或者 "Resource": "arn:aws:s3:::bkt_logs"。

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则