从 Athena 获取数据和胶水权限

Fetching data from Athena and glue permissions

我正在使用此处列出的代码通过 Athena 查询数据 https://gist.github.com/schledererj/b2e2a800998d61af2bbdd1cd50e08b76

这需要以下策略才能起作用 -

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "BroadAccess",
      "Action": [
        "glue:GetTable",
        "glue:GetPartitions"
      ],
      "Effect": "Allow",
      "Resource": "*"
    }
  ]
}

为什么 Glue 资源需要权限才能工作?

Athena 使用 Glue 目录存储所有关于数据库和表的信息。 Athena 本身只是执行引擎。当您在 Athena 中 运行 查询时,它首先解析 SQL,然后向 Glue 询问查询中包含的表、它们有哪些列以及它们的数据位于何处。它使用此信息来验证查询(例如,查询中提到的所有列是否都存在),然后使用数据位置来计划查询的执行。

您可以在 Integration with AWS Glue 文档中阅读有关 Athena 和 Glue 如何协同工作的所有信息。

我不建议您随意使用 BroadAccess 操作。查看此页面“Fine-Grained Access to Databases and Tables in the AWS Glue Data Catalog”并找到您的应用程序需要的权限。然后添加您配置的 "Action": [] 数组 属性。