Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Utiliser des politiques de contrôle d'accès IAM basées sur des balises
Le fait de disposer d'étiquettes vous permet d'écrire une politique IAM qui inclut le bloc Condition
permettant de contrôler l'accès à une ressource en fonction de ses étiquettes. Cette section inclut des exemples de politique de balises pour les ressources des groupes de travail et des catalogues de données.
Exemples de politique d'identification pour les groupes de travail
La politique IAM suivante vous permet d'exécuter des requêtes et d'interagir avec des étiquettes pour le groupe de travail nommé 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
" } ] }
Les identifications associées à un groupe de travail existant sont appelées identifications de ressource. les identifications de ressources vous permettent d'écrire des blocs de politique comme les suivants qui refusent les actions répertoriées sur un groupe de travail marqué avec une paire clé-valeur comme 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
" } } } ] }
Les identifications qui sont transmises en tant que paramètres aux opérations qui modifient les identifications (par exemple TagResource
, UntagResource
ou CreateWorkGroup
avec des identifications) sont appelées identifications de requête. L'exemple de bloc de politique suivant n'autorise l'opération CreateWorkGroup
que si l'une des identifications passées a la clé costcenter
et la valeur 1
, 2
ou 3
.
Note
Si vous voulez permettre à un rôle IAM de transmettre des identifications dans le cadre d'une opération CreateWorkGroup
, assurez-vous d'accorder au rôle des autorisations pour les actions TagResource
et CreateWorkGroup
.
{ "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
" ] } } } ] }
Exemples de politique d'identification pour les catalogues de données
La politique IAM suivante vous permet d'interagir avec les étiquettes pour le catalogue de données nommé datacatalogA
:
{ "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
" } ] }
Vous pouvez utiliser des identifications de ressource pour écrire des blocs de politique qui refusent des actions spécifiques sur les catalogues de données qui sont balisés avec des paires clé-valeur d'identification spécifiques. L'exemple de politique suivant refuse les actions sur les catalogues de données qui ont la paire clé-valeur d'identification 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
" } } } ] }
Les identifications qui sont transmises en tant que paramètres aux opérations qui modifient les identifications (par exemple TagResource
, UntagResource
ou CreateDataCatalog
avec des identifications) sont appelées identifications de requête. L'exemple de bloc de politique suivant n'autorise l'opération CreateDataCatalog
que si l'une des identifications passées a la clé costcenter
et la valeur 1
, 2
ou 3
.
Note
Si vous voulez permettre à un rôle IAM de transmettre des identifications dans le cadre d'une opération CreateDataCatalog
, assurez-vous d'accorder au rôle des autorisations pour les actions TagResource
et CreateDataCatalog
.
{ "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
" ] } } } ] }