数据目录示例策略 - Amazon Athena
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

如果我们为英文版本指南提供翻译,那么如果存在任何冲突,将以英文版本指南为准。在提供翻译时使用机器翻译。

数据目录示例策略

此部分包含可用于允许对数据目录执行各种操作的示例策略。

数据目录是由 Athena 管理的 IAM 资源。因此,如果您的数据目录策略使用将 datacatalog 用作输入的操作,则您必须指定数据目录的 ARN,如下所示:

"Resource": [arn:aws:athena:<region>:<user-account>:datacatalog/<datacatalog-name>]

<datacatalog-name> 是数据目录的名称。例如,对于名为 test_datacatalog 的数据目录,请将其指定为资源,如下所示:

"Resource": ["arn:aws:athena:us-east-1:123456789012:datacatalog/test_datacatalog"]

有关 Amazon Athena 操作的完整列表,请参阅 Amazon Athena API 参考中的 API 操作名称。有关 IAM 策略的更多信息,请参阅 IAM 用户指南 中的使用可视化编辑器创建策略。有关为工作组创建 IAM 策略的更多信息,请参阅 用于访问数据目录的 IAM 策略

对所有数据目录具有完全访问权限的策略示例

以下策略允许对账户中可能存在的所有数据目录资源进行完全访问。对于您账户中必须为其他所有用户监督和管理数据目录的那些用户,建议您使用此策略。

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "athena:*" ], "Resource":[ "*" ] } ] }

对指定数据目录具有完全访问权限的策略示例

以下策略允许对单个名为 datacatalogA 的特定数据目录资源进行完全访问。对于对特定数据目录具有完全控制权限的用户,您可以使用此策略。

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "athena:ListDataCatalogs", "athena:ListWorkGroups", "athena:GetExecutionEngine", "athena:GetExecutionEngines", "athena:GetNamespace", "athena:GetCatalogs", "athena:GetNamespaces", "athena:GetTables", "athena:GetTable" ], "Resource":"*" }, { "Effect":"Allow", "Action":[ "athena:StartQueryExecution", "athena:GetQueryResults", "athena:DeleteNamedQuery", "athena:GetNamedQuery", "athena:ListQueryExecutions", "athena:StopQueryExecution", "athena:GetQueryResultsStream", "athena:ListNamedQueries", "athena:CreateNamedQuery", "athena:GetQueryExecution", "athena:BatchGetNamedQuery", "athena:BatchGetQueryExecution", "athena:DeleteWorkGroup", "athena:UpdateWorkGroup", "athena:GetWorkGroup", "athena:CreateWorkGroup" ], "Resource":[ "arn:aws:athena:us-east-1:123456789012:workgroup/*" ] }, { "Effect":"Allow", "Action":[ "athena:CreateDataCatalog", "athena:DeleteDataCatalog", "athena:GetDataCatalog", "athena:GetDatabase", "athena:GetTableMetadata", "athena:ListDatabases", "athena:ListTableMetadata", "athena:UpdateDataCatalog" ], "Resource":"arn:aws:athena:us-east-1:123456789012:datacatalog/datacatalogA" } ] }

用于查询指定数据目录的策略示例

在以下策略中,允许用户对指定的 datacatalogA 运行查询。不允许用户对数据目录本身执行管理任务,例如,更新或删除它。

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "athena:StartQueryExecution" ], "Resource":[ "arn:aws:athena:us-east-1:123456789012:workgroup/*" ] }, { "Effect":"Allow", "Action":[ "athena:GetDataCatalog" ], "Resource":[ "arn:aws:athena:us-east-1:123456789012:datacatalog/datacatalogA" ] } ] }

管理指定数据目录操作的策略示例

在以下策略中,允许用户创建、删除、获取详细信息并更新数据目录 datacatalogA

{ "Effect":"Allow", "Action":[ "athena:CreateDataCatalog", "athena:GetDataCatalog", "athena:DeleteDataCatalog", "athena:UpdateDataCatalog" ], "Resource":[ "arn:aws:athena:us-east-1:123456789012:datacalog/datacatalogA" ] }

用于列出数据目录的策略示例

以下策略允许所有用户列出所有数据目录:

{ "Effect":"Allow", "Action":[ "athena:ListDataCatalogs" ], "Resource":"*" }

用于数据目录的元数据操作的策略示例

以下策略允许对数据目录执行元数据操作:

{ "Effect":"Allow", "Action":[ "athena:GetDatabase", "athena:GetTableMetadata", "athena:ListDatabases", "athena:ListTableMetadata" ], "Resource":"*" }