Utilisation de balises avec des compartiments de répertoires S3
Une balise AWS est une paire clé-valeur qui contient des métadonnées sur des ressources, en l’occurrence des compartiments de répertoires Amazon S3. Vous pouvez baliser les compartiments de répertoires S3 lorsque vous les créez ou gérer les balises de compartiments de répertoires existants. Pour plus d’informations sur les balises, consultez Balisage pour la répartition des coûts ou le contrôle d’accès par attributs (ABAC).
Note
L’utilisation de balises sur des compartiments de répertoires n’occasionne aucun coût supplémentaire, en dehors des tarifs standard des demandes d’API S3. Pour plus d’informations, consultez Tarification Amazon S3
Méthodes courantes d’utilisation de balises avec des compartiments de répertoires
Utilisez des balises sur vos compartiments de répertoires S3 aux fins suivantes :
-
Répartition des coûts : suivez vos coûts de stockage par balise de compartiment dans AWS Billing and Cost Management. Pour plus d’informations, consultez Utilisation de balises pour la répartition des coûts.
-
Contrôle d’accès par attributs (ABAC) : vous pouvez mettre à l’échelle les autorisations d’accès et accorder l’accès aux compartiments de répertoires S3 en fonction de leurs balises. Pour plus d’informations, consultez Utilisation de balises pour l’ABAC.
Note
Vous pouvez utiliser les mêmes balises pour la répartition des coûts et le contrôle d’accès.
ABAC pour les compartiments de répertoires S3
Les compartiment de répertoires Amazon S3 prennent en charge le contrôle d’accès par attributs (ABAC) à l’aide de balises. Utilisez des clés de condition basées sur des balises dans vos organisations AWS, politiques IAM et stratégies de compartiment de répertoires S3. Pour les entreprises, l’ABAC d’Amazon S3 prend en charge les autorisations sur plusieurs comptes AWS.
Dans vos politiques IAM, vous pouvez contrôler l’accès aux compartiments de répertoires S3 en fonction des balises des compartiments à l’aide des clés de condition globale suivantes :
-
aws:ResourceTag/key-name-
Utilisez cette clé pour comparer la paire valeur-clé de balise que vous spécifiez dans la politique avec la paire valeur clé attachée à la ressource. Par exemple, vous pouvez exiger que l’accès à une ressource soit autorisé uniquement si la clé de balise
Deptest attachée à la ressource avec la valeurMarketing. Pour plus d’informations, veuillez consulter Contrôle de l’accès aux ressources AWS.
-
-
aws:RequestTag/key-name-
Utilisez cette clé pour comparer la paire clé-valeur de balise qui a été transmise dans la demande avec la paire de balises spécifiée dans la politique. Par exemple, vous pouvez vérifier que la demande comprend la clé de balise
Deptet qu’elle a la valeurAccounting. Pour plus d’informations, consultez Contrôle de l’accès au cours des demandes AWS. Vous pouvez utiliser cette clé de condition pour restreindre les paires clé-valeur de balise pouvant être transmises pendant les opérations d’APITagResourceetCreateBucket.
-
-
aws:TagKeys-
Utilisez cette clé pour comparer les clés de balise d’une demande avec celles spécifiées dans la politique. Nous vous recommandons, lorsque vous utilisez des politiques pour contrôler l’accès à l’aide de balises, d’utiliser la clé de condition
aws:TagKeyspour définir quelles clés de balises sont autorisées. Pour des exemples de stratégies et plus d’informations, consultez Contrôle de l’accès en fonction des clés de balise. Vous pouvez créer un compartiment de répertoires S3 avec des balises. Pour autoriser le balisage pendant l’opération d’APICreateBucket, vous devez créer une stratégie qui inclut les actionss3express:TagResourceets3express:CreateBucket. Vous pouvez ensuite utiliser la clé de conditionaws:TagKeyspour imposer l’utilisation de clés de balise spécifiques dans la demandeCreateBucket.
-
-
s3express:BucketTag/tag-key-
Utilisez cette clé de condition pour accorder des autorisations à des données spécifiques dans des compartiments de répertoire à l’aide de balises. Lorsque vous accédez à un compartiment de répertoires à l’aide d’un point d’accès, cette clé de condition se réfère aux balises du compartiment de répertoires à la fois lors de l’autorisation accordée au point d’accès et au compartiments de répertoires, tandis que
aws:ResourceTag/tag-keyne se réfère qu’aux balises de la ressource pour laquelle l’autorisation est demandée.
-
Exemples de stratégies ABAC pour les compartiments de répertoires
Consultez les exemples de stratégies ABAC suivants pour les compartiments de répertoires Amazon S3.
1.1 - Politique IAM permettant de créer ou de modifier des compartiments avec des balises spécifiques
Dans cette politique IAM, les utilisateurs ou les rôles dotés de cette politique ne peuvent créer des compartiments de répertoires S3 que s’ils les balisent avec la clé de balise project et la valeur de balise Trinity dans la demande de création du compartiment. Ils peuvent également ajouter ou modifier des balises sur des compartiments de répertoires S3 existants, à condition que la demande TagResource inclue la paire clé-valeur de balise project:Trinity. Cette politique n’accorde aucune autorisation de lecture, d’écriture ou de suppression sur les compartiments ou leurs objets.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "CreateBucketWithTags", "Effect": "Allow", "Action": [ "s3express:CreateBucket", "s3express:TagResource" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/project": [ "Trinity" ] } } } ] }
1.2 - Stratégie de compartiment permettant de restreindre les opérations sur le compartiment à l’aide de balises
Dans cette stratégie de compartiment, les principaux IAM (utilisateurs et rôles) peuvent effectuer des opérations à l’aide de l’action CreateSession sur le compartiment uniquement si la valeur de la balise project du compartiment correspond à la valeur de la balise project du principal.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowObjectOperations", "Effect": "Allow", "Principal": { "AWS": "111122223333" }, "Action": "s3express:CreateSession", "Resource": "arn:aws::s3express:us-west-2:111122223333:bucket/", "Condition": { "StringEquals": { "aws:ResourceTag/project": "${aws:PrincipalTag/project}" } } } ] }amzn-s3-demo-bucket--usw2-az1--x-s3
1.3 - Politique IAM permettant de modifier des balises de ressources existantes tout en maintenant la gouvernance des balises
Dans cette politique IAM, les principaux IAM (utilisateurs ou rôles) peuvent modifier les balises d’un compartiment uniquement si la valeur de la balise project du compartiment correspond à la valeur de la balise project du principal. Seules les quatre balises project, environment, owner et cost-center spécifiées dans les clés de condition aws:TagKeys sont autorisées pour ces compartiments de répertoires. Cela permet de renforcer la gouvernance des balises, d’empêcher les modifications non autorisées des balises et de garantir la cohérence du schéma de balisage sur l’ensemble de vos compartiments.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceTaggingRulesOnModification", "Effect": "Allow", "Action": [ "s3express:TagResource" ], "Resource": "arn:aws::s3express:us-west-2:111122223333:bucket/*", "Condition": { "StringEquals": { "aws:ResourceTag/project": "${aws:PrincipalTag/project}" }, "ForAllValues:StringEquals": { "aws:TagKeys": [ "project", "environment", "owner", "cost-center" ] } } } ] }
1.4 - Utilisation de la clé de condition s3express:BucketTag
Dans cette politique IAM, l’instruction de la condition autorise l’accès aux données du compartiment uniquement si celui-ci possède la clé Environment et la valeur de balise Production.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAccessToSpecificAccessPoint", "Effect": "Allow", "Action": "*", "Resource": "arn:aws::s3express:us-west-2:111122223333:accesspoint/*", "Condition": { "StringEquals": { "s3express:BucketTag/Environment": "Production" } } } ] }
Gestion des balises des compartiments de répertoires
Vous pouvez ajouter ou gérer des balises des compartiments de répertoires S3 à l’aide de la console Amazon S3, de l’interface de ligne de commande AWS (CLI), des kits AWS SDK ou des API S3 TagResource, UntagResource et ListTagsForResource. Pour plus d’informations, consultez :