タグベースの IAM アクセスコントロールポリシー - Amazon Athena

「翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。」

タグベースの IAM アクセスコントロールポリシー

タグが含まれるため、タグに基づいてリソースへのアクセスを制御するための Condition ブロックを含む IAM ポリシーを作成できます。

ワークグループのタグポリシーの例

例 1. 基本的なタグ付けポリシー

次の IAM ポリシーでは、クエリを実行し、workgroupA という名前のワークグループのタグを操作できます。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "athena:ListWorkGroups", "athena:GetExecutionEngine", "athena:GetExecutionEngines", "athena:GetNamespace", "athena:GetCatalogs", "athena:GetNamespaces", "athena:GetTables", "athena:GetTable" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "athena:StartQueryExecution", "athena:GetQueryResults", "athena:DeleteNamedQuery", "athena:GetNamedQuery", "athena:ListQueryExecutions", "athena:StopQueryExecution", "athena:GetQueryResultsStream", "athena:GetQueryExecutions", "athena:ListNamedQueries", "athena:CreateNamedQuery", "athena:GetQueryExecution", "athena:BatchGetNamedQuery", "athena:BatchGetQueryExecution", "athena:GetWorkGroup", "athena:TagResource", "athena:UntagResource", "athena:ListTagsForResource" ], "Resource": "arn:aws:athena:us-east-1:123456789012:workgroup/workgroupA" } ] }

例 2: タグキーとタグ値のペアに基づいてワークグループに対するアクションを拒否するポリシーブロック

ワークグループなどのリソースに関連付けられたタグは、リソースタグと呼ばれます。リソースタグを使用すると、stackproduction などのキー/値ペアでタグ付けされたワークグループに対してリストされているアクションを拒否する、次のようなポリシーブロックを作成できます。

{ "Effect": "Deny", "Action": [ "athena:StartQueryExecution", "athena:GetQueryResults", "athena:DeleteNamedQuery", "athena:UpdateWorkGroup", "athena:GetNamedQuery", "athena:ListQueryExecutions", "athena:GetWorkGroup", "athena:StopQueryExecution", "athena:GetQueryResultsStream", "athena:GetQueryExecutions", "athena:ListNamedQueries", "athena:CreateNamedQuery", "athena:GetQueryExecution", "athena:BatchGetNamedQuery", "athena:BatchGetQueryExecution", "athena:TagResource", "athena:UntagResource", "athena:ListTagsForResource" ], "Resource": "arn:aws:athena:us-east-1:123456789012:workgroup/*", "Condition": { "StringEquals": { "aws:ResourceTag/stack": "production" } } }

例 3. タグ変更アクションリクエストを指定のタグに制限するポリシーブロック

タグを変更するオペレーション (TagResourceUntagResource、タグを指定した CreateWorkGroup など) にパラメータとして渡されるタグは、リクエストタグと呼ばれます。次のポリシーブロックの例では、渡されたタグのいずれかがキー costcenter と値 12、または 3 を持つ場合にのみ、CreateWorkGroup オペレーションを許可します。

注記

IAM ユーザーが CreateWorkGroup オペレーションの一部としてタグを渡すことを許可する場合は、TagResource アクションと CreateWorkGroup アクションへのアクセス許可をユーザーに付与してください。

{ "Effect": "Allow", "Action": [ "athena:CreateWorkGroup", "athena:TagResource" ], "Resource": "arn:aws:athena:us-east-1:123456789012:workgroup/*", "Condition": { "StringEquals": { "aws:RequestTag/costcenter": [ "1", "2", "3" ] } } }

データカタログのタグポリシーの例

例 1. 基本的なタグ付けポリシー

次の IAM ポリシーでは、datacatalogA という名前のデータカタログのタグを操作できます。

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "athena:ListWorkGroups", "athena:ListDataCatalogs", "athena:GetExecutionEngine", "athena:GetExecutionEngines", "athena:GetNamespace", "athena:GetNamespaces", "athena:GetTables", "athena:GetTable" ], "Resource":"*" }, { "Effect":"Allow", "Action":[ "athena:StartQueryExecution", "athena:GetQueryResults", "athena:DeleteNamedQuery", "athena:GetNamedQuery", "athena:ListQueryExecutions", "athena:StopQueryExecution", "athena:GetQueryResultsStream", "athena:GetQueryExecutions", "athena:ListNamedQueries", "athena:CreateNamedQuery", "athena:GetQueryExecution", "athena:BatchGetNamedQuery", "athena:BatchGetQueryExecution", "athena:GetWorkGroup", "athena:TagResource", "athena:UntagResource", "athena:ListTagsForResource" ], "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", "athena:TagResource", "athena:UntagResource", "athena:ListTagsForResource" ], "Resource":"arn:aws:athena:us-east-1:123456789012:datacatalog/datacatalogA" } ] }

例 2: タグキーとタグ値のペアに基づいてデータカタログに対するアクションを拒否するポリシーブロック

リソースタグを使用すると、特定のタグのキー/値ペアでタグ付けされたデータカタログに対して特定のアクションを拒否するポリシーブロックを作成できます。次のポリシーの例では、タグのキー/値ペア stack, production を持つデータカタログに対するアクションを拒否します。

{ "Effect":"Deny", "Action":[ "athena:CreateDataCatalog", "athena:DeleteDataCatalog", "athena:GetDataCatalog", "athena:GetDatabase", "athena:GetTableMetadata", "athena:ListDatabases", "athena:ListTableMetadata", "athena:UpdateDataCatalog", "athena:StartQueryExecution", "athena:TagResource", "athena:UntagResource", "athena:ListTagsForResource" ], "Resource":"arn:aws:athena:us-east-1:123456789012:datacatalog/*", "Condition":{ "StringEquals":{ "aws:ResourceTag/stack":"production" } } }

例 3. タグ変更アクションリクエストを指定のタグに制限するポリシーブロック

タグを変更するオペレーション (TagResourceUntagResource、タグを指定した CreateDataCatalog など) にパラメータとして渡されるタグは、リクエストタグと呼ばれます。次のポリシーブロックの例では、渡されたタグのいずれかがキー costcenter と値 12、または 3 を持つ場合にのみ、CreateDataCatalog オペレーションを許可します。

注記

IAM ユーザーが CreateDataCatalog オペレーションの一部としてタグを渡すことを許可する場合は、TagResource アクションと CreateDataCatalog アクションへのアクセス許可をユーザーに付与してください。

{ "Effect":"Allow", "Action":[ "athena:CreateDataCatalog", "athena:TagResource" ], "Resource":"arn:aws:athena:us-east-1:123456789012:datacatalog/*", "Condition":{ "StringEquals":{ "aws:RequestTag/costcenter":[ "1", "2", "3" ] } } }