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

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

数据目录示例策略

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

数据目录是由 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 policy 的更多信息,请参阅《IAM 用户指南》中的 使用可视化编辑器创建策略。有关为工作组创建 IAM policy 的更多信息,请参阅 用于访问数据目录的 IAM policy

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

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

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "athena:*" ], "Resource":[ "*" ] } ] }
对指定数据目录具有完全访问权限的策略示例

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

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "athena:ListDataCatalogs", "athena:ListWorkGroups", "athena:GetDatabase", "athena:ListDatabases", "athena:ListTableMetadata", "athena:GetTableMetadata" ], "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

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "athena:CreateDataCatalog", "athena:GetDataCatalog", "athena:DeleteDataCatalog", "athena:UpdateDataCatalog" ], "Resource": [ "arn:aws:athena:us-east-1:123456789012:datacatalog/datacatalogA" ] } ] }
列出数据目录的策略示例

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

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "athena:ListDataCatalogs" ], "Resource": "*" } ] }
对数据目录执行元数据操作的策略示例

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

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