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