ワークグループのポリシーの例
このセクションには、ワークグループに対するさまざまなアクションを有効にするために使用できるポリシーの例が含まれています。IAM ポリシーを使用するときは、常に IAM のベストプラクティスに従うようにしてください。詳細については、IAM ユーザーガイドの「IAM でのセキュリティベストプラクティス」を参照してください。
ワークグループは、Athena によって管理されている IAM リソースです。そのため、ワークグループポリシーが入力として workgroup
を実行するアクションを使用する場合、ワークグループの ARN を次のように指定する必要があります。
"Resource": [arn:aws:athena:<region>
:<user-account>
:workgroup/<workgroup-name>
]
<workgroup-name>
は、ワークグループの名前です。たとえば、test_workgroup
という名前のワークグループの場合は、次のようにリソースとして指定します。
"Resource": ["arn:aws:athena:us-east-1
:123456789012
:workgroup/test_workgroup
"]
mazon Athena アクションの完全なリストについては、Amazon Athena API リファレンスの API アクション名を参照してください。IAM ポリシーの詳細については、「IAM ユーザーガイド」で「ビジュアルエディタでのポリシーの作成」を参照してください。ワークグループ用の IAM ポリシーの作成に関する詳細については、「IAM ポリシーを使用してワークグループのアクセスを制御する」を参照してください。
例
すべてのワークグループへのフルアクセスのポリシーの例次のポリシーでは、アカウントに存在している可能性があるすべてのワークグループリソースへのフルアクセスを許可します。アカウントの他のすべてのユーザーのワークグループを管理する必要があるユーザーにこのポリシーを使用することをお勧めします。
- JSON
-
-
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"athena:*"
],
"Resource": [
"*"
]
}
]
}
例
指定したワークグループへのフルアクセスのポリシーの例次のポリシーでは、workgroupA
という名前の 1 つの特定のワークグループリソースへのフルアクセスを許可します。特定のワークグループを完全に制御しているユーザーにこのポリシーを使用できます。
- JSON
-
-
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"athena:ListEngineVersions",
"athena:ListWorkGroups",
"athena:ListDataCatalogs",
"athena:ListDatabases",
"athena:GetDatabase",
"athena:ListTableMetadata",
"athena:GetTableMetadata"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"athena:BatchGetQueryExecution",
"athena:GetQueryExecution",
"athena:ListQueryExecutions",
"athena:StartQueryExecution",
"athena:StopQueryExecution",
"athena:GetQueryResults",
"athena:GetQueryResultsStream",
"athena:CreateNamedQuery",
"athena:GetNamedQuery",
"athena:BatchGetNamedQuery",
"athena:ListNamedQueries",
"athena:DeleteNamedQuery",
"athena:CreatePreparedStatement",
"athena:GetPreparedStatement",
"athena:ListPreparedStatements",
"athena:UpdatePreparedStatement",
"athena:DeletePreparedStatement"
],
"Resource": [
"arn:aws:athena:us-east-1
:123456789012
:workgroup/workgroupA
"
]
},
{
"Effect": "Allow",
"Action": [
"athena:DeleteWorkGroup",
"athena:UpdateWorkGroup",
"athena:GetWorkGroup",
"athena:CreateWorkGroup"
],
"Resource": [
"arn:aws:athena:us-east-1
:123456789012
:workgroup/workgroupA
"
]
}
]
}
例
指定したワークグループでクエリを実行するためのポリシーの例次のポリシーでは、ユーザは指定された workgroupA
でクエリを実行し、それらを表示することを許可されています。ユーザーは、ワークグループの更新や削除など、ワークグループ自体の管理タスクを実行することはできません。このポリシーの例では、ユーザをこのワークグループのみに制限したり、他のワークグループへのアクセスを拒否したりしないことに注意してください。
- JSON
-
-
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"athena:ListEngineVersions",
"athena:ListWorkGroups",
"athena:ListDataCatalogs",
"athena:ListDatabases",
"athena:GetDatabase",
"athena:ListTableMetadata",
"athena:GetTableMetadata"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"athena:GetWorkGroup",
"athena:BatchGetQueryExecution",
"athena:GetQueryExecution",
"athena:ListQueryExecutions",
"athena:StartQueryExecution",
"athena:StopQueryExecution",
"athena:GetQueryResults",
"athena:GetQueryResultsStream",
"athena:CreateNamedQuery",
"athena:GetNamedQuery",
"athena:BatchGetNamedQuery",
"athena:ListNamedQueries",
"athena:DeleteNamedQuery",
"athena:CreatePreparedStatement",
"athena:GetPreparedStatement",
"athena:ListPreparedStatements",
"athena:UpdatePreparedStatement",
"athena:DeletePreparedStatement"
],
"Resource": [
"arn:aws:athena:us-east-1
:123456789012
:workgroup/workgroupA
"
]
}
]
}
例
プライマリワークグループでクエリを実行するためのポリシーの例上記の例を変更して、特定のユーザーがプライマリワークグループでクエリを実行できるようにすることができます。
指定したワークグループでクエリを実行するように設定されているすべてのユーザーに、このプライマリワークグループのリソースを追加することをお勧めします。このリソースをワークグループのユーザーポリシーに追加すると、指定したワークグループが削除されたり無効になったりした場合に役立ちます。この場合、プライマリワークグループでクエリを実行し続けることができます。
アカウントのユーザーがプライマリワークグループでクエリを実行できるようにするには、次の例のように、プライマリワークグループの ARN を含む行を Example policy for running queries in a specified workgroup のリソースセクションに追加します。
arn:aws:athena:us-east-1
:123456789012
:workgroup/primary"
例
指定したワークグループに対する管理オペレーションのポリシーの例次のポリシーでは、ユーザはワークグループ test_workgroup
の作成、削除、詳細の取得、および更新を許可されています。
- JSON
-
-
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"athena:ListEngineVersions"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"athena:CreateWorkGroup",
"athena:GetWorkGroup",
"athena:DeleteWorkGroup",
"athena:UpdateWorkGroup"
],
"Resource": [
"arn:aws:athena:us-east-1
:123456789012
:workgroup/test_workgroup
"
]
}
]
}
例
ワークグループを一覧表示するためのポリシーの例次のポリシーでは、すべてのワークグループをすべてのユーザーが一覧表示できるようにします。
- JSON
-
-
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"athena:ListWorkGroups"
],
"Resource": "*"
}
]
}
例
特定のワークグループでクエリを実行および停止するためのポリシーの例このポリシーでは、ユーザーは、ワークグループでクエリを実行できます。
- JSON
-
-
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"athena:StartQueryExecution",
"athena:StopQueryExecution"
],
"Resource": [
"arn:aws:athena:us-east-1
:123456789012
:workgroup/test_workgroup
"
]
}
]
}
例
特定のワークグループで名前付きクエリを使用するポリシーの例次のポリシーでは、ユーザーは指定されたワークグループの名前付きクエリに関する情報を作成、削除、および取得するアクセス権限を持っています。
- JSON
-
-
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"athena:CreateNamedQuery",
"athena:GetNamedQuery",
"athena:DeleteNamedQuery"
],
"Resource": [
"arn:aws:athena:us-east-1
:123456789012
:workgroup/test_workgroup
" ]
}
]
}
例 Athena で Spark ノートブックを操作するための
ポリシーの例Athena で Spark ノートブックを操作するには、次のようなポリシーを使用します。
- JSON
-
-
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowCreatingWorkGroupWithDefaults",
"Action": [
"athena:CreateWorkGroup",
"s3:CreateBucket",
"iam:CreateRole",
"iam:CreatePolicy",
"iam:AttachRolePolicy",
"s3:GetBucketLocation",
"athena:ImportNotebook"
],
"Effect": "Allow",
"Resource": [
"arn:aws:athena:us-east-1
:123456789012
:workgroup/Demo*
",
"arn:aws:s3:::123456789012
-us-east-1
-athena-results-bucket-*",
"arn:aws:iam::123456789012
:role/service-role/AWSAthenaSparkExecutionRole-*",
"arn:aws:iam::123456789012
:policy/service-role/AWSAthenaSparkRolePolicy-*"
]
},
{
"Sid": "AllowRunningCalculations",
"Action": [
"athena:ListWorkGroups",
"athena:GetWorkGroup",
"athena:StartSession",
"athena:CreateNotebook",
"athena:ListNotebookMetadata",
"athena:ListNotebookSessions",
"athena:GetSessionStatus",
"athena:GetSession",
"athena:GetNotebookMetadata",
"athena:CreatePresignedNotebookUrl"
],
"Effect": "Allow",
"Resource": "arn:aws:athena:us-east-1:123456789012
:workgroup/Demo*
"
},
{
"Sid": "AllowListWorkGroupAndEngineVersions",
"Action": [
"athena:ListWorkGroups",
"athena:ListEngineVersions"
],
"Effect": "Allow",
"Resource": "*"
}
]
}