从 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": []
数组 属性。
我正在使用此处列出的代码通过 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": []
数组 属性。