Gunakan kebijakan kontrol IAM akses berbasis tag - Amazon Athena

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Gunakan kebijakan kontrol IAM akses berbasis tag

Memiliki tag memungkinkan Anda menulis IAM kebijakan yang menyertakan Condition blok untuk mengontrol akses ke sumber daya berdasarkan tagnya. Bagian ini mencakup contoh kebijakan tag untuk sumber daya workgroup dan katalog data.

Contoh kebijakan tag untuk kelompok kerja

IAMKebijakan berikut memungkinkan Anda menjalankan kueri dan berinteraksi dengan tag untuk grup kerja bernama: workgroupA

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "athena:ListWorkGroups", "athena:ListEngineVersions", "athena:ListDataCatalogs", "athena:ListDatabases", "athena:GetDatabase", "athena:ListTableMetadata", "athena:GetTableMetadata" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "athena:GetWorkGroup", "athena:TagResource", "athena:UntagResource", "athena:ListTagsForResource", "athena:StartQueryExecution", "athena:GetQueryExecution", "athena:BatchGetQueryExecution", "athena:ListQueryExecutions", "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" } ] }

Tag yang terkait dengan sumber daya seperti workgroup disebut sebagai tag sumber daya. Tag sumber daya memungkinkan Anda menulis blok kebijakan seperti berikut ini yang menolak tindakan yang tercantum pada grup kerja mana pun yang ditandai dengan pasangan nilai kunci seperti,. stack production

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "athena:GetWorkGroup", "athena:UpdateWorkGroup", "athena:DeleteWorkGroup", "athena:TagResource", "athena:UntagResource", "athena:ListTagsForResource", "athena:StartQueryExecution", "athena:GetQueryExecution", "athena:BatchGetQueryExecution", "athena:ListQueryExecutions", "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/*", "Condition": { "StringEquals": { "aws:ResourceTag/stack": "production" } } } ] }

Tag yang diteruskan sebagai parameter ke operasi yang mengubah tag (misalnya,TagResource,UntagResource, atau CreateWorkGroup dengan tag) disebut sebagai tag permintaan. Contoh blok kebijakan berikut memungkinkan CreateWorkGroup operasi hanya jika salah satu tag yang diteruskan memiliki kunci costcenter dan nilai1,2, atau3.

catatan

Jika Anda ingin mengizinkan IAM peran untuk meneruskan tag sebagai bagian dari CreateWorkGroup operasi, pastikan Anda memberikan izin peran ke TagResource dan CreateWorkGroup tindakan.

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

Contoh kebijakan tag untuk katalog data

IAMKebijakan berikut memungkinkan Anda berinteraksi dengan tag untuk katalog data bernamadatacatalogA:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "athena:ListWorkGroups", "athena:ListEngineVersions", "athena:ListDataCatalogs", "athena:ListDatabases", "athena:GetDatabase", "athena:ListTableMetadata", "athena:GetTableMetadata" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "athena:GetWorkGroup", "athena:TagResource", "athena:UntagResource", "athena:ListTagsForResource", "athena:StartQueryExecution", "athena:GetQueryExecution", "athena:BatchGetQueryExecution", "athena:ListQueryExecutions", "athena:StopQueryExecution", "athena:GetQueryResults", "athena:GetQueryResultsStream", "athena:CreateNamedQuery", "athena:GetNamedQuery", "athena:BatchGetNamedQuery", "athena:ListNamedQueries", "athena:DeleteNamedQuery" ], "Resource": [ "arn:aws:athena:us-east-1:123456789012:workgroup/*" ] }, { "Effect": "Allow", "Action": [ "athena:CreateDataCatalog", "athena:GetDataCatalog", "athena:UpdateDataCatalog", "athena:DeleteDataCatalog", "athena:ListDatabases", "athena:GetDatabase", "athena:ListTableMetadata", "athena:GetTableMetadata", "athena:TagResource", "athena:UntagResource", "athena:ListTagsForResource" ], "Resource": "arn:aws:athena:us-east-1:123456789012:datacatalog/datacatalogA" } ] }

Anda dapat menggunakan tag sumber daya untuk menulis blok kebijakan yang menolak tindakan tertentu pada katalog data yang ditandai dengan pasangan nilai kunci tag tertentu. Contoh kebijakan berikut menyangkal tindakan pada katalog data yang memiliki pasangan nilai kunci tag,. stack production

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

Tag yang diteruskan sebagai parameter ke operasi yang mengubah tag (misalnya,TagResource,UntagResource, atau CreateDataCatalog dengan tag) disebut sebagai tag permintaan. Contoh blok kebijakan berikut memungkinkan CreateDataCatalog operasi hanya jika salah satu tag yang diteruskan memiliki kunci costcenter dan nilai1,2, atau3.

catatan

Jika Anda ingin mengizinkan IAM peran untuk meneruskan tag sebagai bagian dari CreateDataCatalog operasi, pastikan Anda memberikan izin peran ke TagResource dan CreateDataCatalog tindakan.

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