

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.

# Utilisation des politiques de contrôle d’accès IAM basé sur des balises
<a name="tags-access-control"></a>

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 présente des exemples de stratégies de balisage pour les ressources des groupes de travail et des catalogues de données.

## Exemples de politique d'identification pour les groupes de travail
<a name="tag-policy-examples-workgroups"></a>

### Exemple : stratégie de balisage de base
<a name="tag-policy-examples-workgroups-basic"></a>

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` :

------
#### [ JSON ]

****  

```
{
    "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}}"
        }
    ]
}
```

------

### Exemple : bloc de stratégie refusant des actions sur un groupe de travail basé sur une paire clé de balise-valeur de balise
<a name="tag-policy-examples-workgroups-basic"></a>

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`.

------
#### [ JSON ]

****  

```
{
    "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}}"
                }
            }
        }
    ]
}
```

------

### Exemple : bloc de stratégie limitant les demandes d’action de changement de balise aux balises spécifiées
<a name="tag-policy-examples-workgroups-restricted-specific"></a>

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`.

------
#### [ JSON ]

****  

```
{
    "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
<a name="tag-policy-examples-data-catalogs"></a>

### Exemple : stratégie de balisage de base
<a name="tag-policy-examples-data-catalogs-basic"></a>

La politique IAM suivante vous permet d'interagir avec les étiquettes pour le catalogue de données nommé `datacatalogA` :

------
#### [ JSON ]

****  

```
{
    "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}}"
        }
    ]
}
```

------

### Exemple : bloc de stratégie refusant des actions sur un catalogue de données basé sur une paire clé de balise-valeur de balise
<a name="tag-policy-examples-data-catalogs-deny-actions"></a>

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`.

------
#### [ JSON ]

****  

```
{
    "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}}"
                }
            }
        }
    ]
}
```

------

### Exemple : bloc de stratégie limitant les demandes d’action de changement de balise aux balises spécifiées
<a name="tag-policy-examples-data-catalogs-action-specific-tags"></a>

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`.

------
#### [ JSON ]

****  

```
{
    "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}}"
                    ]
                }
            }
        }
    ]
}
```

------