データカタログポリシーの例
このセクションには、データカタログに対するさまざまなアクションを有効にするために使用できるポリシーの例が含まれています。
データカタログは、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 Reference で API アクション名を参照してください。IAM ポリシーの詳細については、「IAM ユーザーガイド」で「ビジュアルエディタでのポリシーの作成」を参照してください。ワークグループ用の IAM ポリシーの作成に関する詳細については、「IAM ポリシーを使用してデータカタログへのアクセスを制御する」を参照してください。
例
すべてのデータカタログへの完全なアクセスのためのポリシー例以下のポリシーは、アカウントに存在している可能性があるすべてのデータカタログリソースへの完全なアクセスを許可します。アカウントの他のすべてのユーザーのデータカタログを管理する必要があるユーザーにこのポリシーを使用することをお勧めします。
- JSON
-
-
{
"Version": "2012-10-17",
"Statement":[
{
"Effect":"Allow",
"Action":[
"athena:*"
],
"Resource":[
"*"
]
}
]
}
例
指定されたデータカタログへの完全なアクセスのためのポリシー例次のポリシーでは、datacatalogA という名前の 1 つの特定のデータカタログリソースへのフルアクセスを許可します。特定のデータカタログを完全に制御しているユーザーにこのポリシーを使用できます。
- 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": "*"
}
]
}