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 策略控制对数据目录的访问权限。
例
对所有数据目录具有完全访问权限的策略示例以下策略允许对账户中可能存在的所有数据目录资源进行完全访问。对于您账户中必须为其他所有用户监督和管理数据目录的那些用户,建议您使用此策略。
- JSON
-
-
{
"Version":"2012-10-17",
"Statement":[
{
"Effect":"Allow",
"Action":[
"athena:*"
],
"Resource":[
"*"
]
}
]
}
例
对指定数据目录具有完全访问权限的策略示例以下策略允许对单个名为 datacatalogA
的特定数据目录资源进行完全访问。对于对特定数据目录具有完全控制权限的用户,您可以使用此策略。
- JSON
-
-
{
"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
运行查询。不允许用户对数据目录本身执行管理任务,例如,更新或删除它。
- JSON
-
-
{
"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
。
- JSON
-
-
{
"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"
]
}
]
}
例
列出数据目录的策略示例以下策略允许所有用户列出所有数据目录:
- JSON
-
-
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"athena:ListDataCatalogs"
],
"Resource": "*"
}
]
}
例
对数据目录执行元数据操作的策略示例以下策略允许对数据目录执行元数据操作:
- JSON
-
-
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"athena:GetDatabase",
"athena:GetTableMetadata",
"athena:ListDatabases",
"athena:ListTableMetadata"
],
"Resource": "*"
}
]
}