

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.

# Stratégies de balisage et de contrôle d’accès
<a name="tagging-and-policies"></a>

Vous pouvez également utiliser des stratégies d’autorisations (stratégies de compartiment et stratégies utilisateur) pour gérer les autorisations associées au balisage des objets. Pour les actions des stratégies, consultez les rubriques suivantes : 
+  [Opérations d’objet](security_iam_service-with-iam.md#using-with-s3-actions-related-to-objects) 
+  [Opérations de compartiment](security_iam_service-with-iam.md#using-with-s3-actions-related-to-buckets)

Les balises d’objets permettent un contrôle d’accès précis pour la gestion des autorisations. Vous pouvez accorder des autorisations conditionnelles basées sur les balises d’objets. Amazon S3 prend en charge les clés de condition suivantes que vous pouvez utiliser pour accorder des autorisations conditionnelles basées sur les balises d’objets.
+ `s3:ExistingObjectTag/{{<tag-key>}}` – Utilisez cette clé de condition pour vérifier qu’une balise d’objet existante possède la clé de balise et la valeur spécifiques. 
**Note**  
Lors de l’octroi des autorisations pour les opérations `PUT Object` et `DELETE Object`, cette clé de condition n’est pas prise en charge. Autrement dit, vous ne pouvez pas créer une stratégie pour accorder ou refuser à un utilisateur les autorisations de supprimer ou de remplacer un objet en fonction de ses balises existantes. 
+ `s3:RequestObjectTagKeys` – Utilisez cette clé de condition pour limiter les clés de balise que vous voulez autoriser sur les objets. Cela est utile lorsque vous ajoutez des balises à des objets à l'aide PutObjectTagging des PutObject requêtes d'objets and et POST.
+ `s3:RequestObjectTag/{{<tag-key>}}` – Utilisez cette clé de condition pour limiter les clés de balise et valeurs que vous voulez autoriser sur les objets. Cela est utile lorsque vous ajoutez des balises à des objets à l'aide PutObjectTagging des PutObject requêtes and et POST Bucket.

Pour obtenir la liste complète des clés de condition spécifiques au service Amazon S3, consultez [Exemples de politiques de compartiment utilisant des clés de condition](amazon-s3-policy-keys.md). Les stratégies d’autorisations suivantes illustrent la façon dont le balisage des objets permet une gestion précise des autorisations d’accès.

**Example 1 : autoriser un utilisateur à lire uniquement les objets qui ont une valeur de clé et une étiquette spécifiques**  
La politique d’autorisations suivante limite un utilisateur à la seule lecture des objets qui comportent la clé et la valeur d’étiquette `environment: production`. Cette politique utilise la clé de condition `s3:ExistingObjectTag` pour spécifier la clé et la valeur d’étiquette.    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
  {
    "Principal": {
      "AWS": [
        "arn:aws:iam::{{111122223333}}:role/{{JohnDoe}}"
      ]
    },
    "Effect": "Allow",
    "Action": ["s3:GetObject", "s3:GetObjectVersion"],
    "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
    "Condition": {
      "StringEquals": 
        {"s3:ExistingObjectTag/environment": "production"}
    }
  }
  ]
}
```

**Example 2 : restreindre les clés d’étiquette d’objet que les utilisateurs peuvent ajouter**  
La stratégie d’autorisations suivante accorde à un utilisateur les autorisations d’effectuer l’action `s3:PutObjectTagging`, ce qui lui permet d’ajouter des balises à un objet existant. La condition utilise la clé de condition `s3:RequestObjectTagKeys` pour spécifier les clés d’étiquette autorisées, telles que `Owner` ou `CreationDate`. Pour plus d’informations, consultez [Création d’une condition avec plusieurs clés ou valeurs](https://docs.aws.amazon.com//IAM/latest/UserGuide/reference_policies_multi-value-conditions.html) dans le *Guide de l’utilisateur IAM*.  
Cette politique garantit que chaque clé d’étiquette spécifiée dans la demande est une clé d’étiquette autorisée. Le qualificateur `ForAnyValue` dans la condition garantit qu’au moins une des clés spécifiées doit être présente dans la demande.    
****  

```
{
   "Version":"2012-10-17",		 	 	 
  "Statement": [
    {"Principal":{"AWS":[
            "arn:aws:iam::{{111122223333}}:role/{{JohnDoe}}"
         ]
       },
 "Effect": "Allow",
      "Action": [
        "s3:PutObjectTagging"
      ],
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket/*"
      ],
      "Condition": {"ForAnyValue:StringEquals": {"s3:RequestObjectTagKeys": [
            "Owner",
            "CreationDate"
          ]
        }
      }
    }
  ]
}
```

**Example 3 : exiger une clé et une valeur d’étiquette spécifiques pour permettre aux utilisateurs d’ajouter des étiquettes d’objet**  
L’exemple de politique suivant accorde à un utilisateur l’autorisation d’exécuter l’action `s3:PutObjectTagging`, qui permet à un utilisateur d’ajouter des étiquettes à un objet existant. La condition exige que l’utilisateur inclue une clé d’étiquette spécifique (telle que `{{Project}}`) avec la valeur définie sur `{{X}}`.    
****  

```
{
   "Version":"2012-10-17",		 	 	 
  "Statement": [
    {"Principal":{"AWS":[
       "arn:aws:iam::{{111122223333}}:user/{{JohnDoe}}"
         ]
       },
      "Effect": "Allow",
      "Action": [
        "s3:PutObjectTagging"
      ],
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket/*"
      ],
      "Condition": {"StringEquals": {"s3:RequestObjectTag/{{Project}}": "{{X}}"
        }
      }
    }
  ]
}
```

