Contrôle de l'accès aux AWS ressources à l'aide de balises - AWS Identity and Access Management

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.

Contrôle de l'accès aux AWS ressources à l'aide de balises

Vous pouvez utiliser des balises pour contrôler l'accès à vos AWS ressources qui prennent en charge le balisage, y compris les ressources IAM. Vous pouvez baliser des utilisateurs et des rôles IAM pour contrôler les éléments auxquels ils peuvent accéder. Pour savoir comment baliser des utilisateurs et des rôles IAM, consultez Tags pour les AWS Identity and Access Management ressources. En outre, vous pouvez contrôler l'accès aux ressources IAM suivantes : politiques gérées par le client, fournisseurs d'identité IAM, profils d'instance, certificats de serveur et dispositifs MFA virtuels. Pour accéder à un didacticiel sur la création et le test d'une politique permettant aux rôles IAM avec des balises principaux d'accéder aux ressources avec des balises correspondantes, veuillez consulter Didacticiel IAM : définir les autorisations d'accès aux ressources AWS en fonction des balises. Utilisez les informations de la section suivante pour contrôler l'accès à d'autres AWS ressources, y compris les ressources IAM, sans baliser les utilisateurs ou les rôles IAM.

Avant d'utiliser des balises pour contrôler l'accès à vos AWS ressources, vous devez comprendre comment AWS octroyer l'accès. AWS est composé de collections de ressources. Une EC2 instance Amazon est une ressource. Un compartiment Amazon S3 est une ressource. Vous pouvez utiliser l' AWS API AWS CLI, le ou le AWS Management Console pour effectuer une opération, telle que la création d'un compartiment dans Amazon S3. Dans ce cas, vous envoyez une demande pour cette opération. Votre demande spécifie une action, une ressource, une entité mandataire (utilisateur ou rôle), un compte principal et toutes les informations nécessaires relatives à la demande. Toutes ces informations fournissent le contexte.

AWS vérifie ensuite que vous (l'entité principale) êtes authentifié (connecté) et autorisé (autorisé) à effectuer l'action spécifiée sur la ressource spécifiée. Lors de l'autorisation, AWS vérifie toutes les politiques qui s'appliquent au contexte de votre demande. La plupart des politiques sont stockées AWS sous forme de documents JSON et spécifient les autorisations pour les entités principales. Pour plus d'informations sur les types de politiques et les utilisations, veuillez consulter Politiques et autorisations dans AWS Identity and Access Management.

AWS autorise la demande uniquement si chaque partie de votre demande est autorisée par les politiques. Pour afficher un schéma et en savoir plus sur l'infrastructure IAM, consultez Fonctionnement de IAM. Pour obtenir des détails sur la façon dont IAM détermine si une demande est autorisée, reportez-vous à Logique d'évaluation de politiques.

Les balises sont une autre considération concernant ce processus, car elles peuvent être attachées à la ressource ou transmises dans la demande aux services qui prennent en charge le balisage. Pour contrôler l'accès basé sur des balises, vous devez fournir les informations des balises dans l'élément de condition d'une politique. Pour savoir si un AWS service prend en charge le contrôle d'accès à l'aide de balises, consultez AWS services qui fonctionnent avec IAM et recherchez les services dont la valeur est « Oui » dans la colonne ABAC. Choisissez le nom du service pour afficher la documentation sur l'autorisation et le contrôle d'accès de ce service.

Vous pouvez ensuite créer une politique IAM qui autorise ou refuse l'accès à une ressource en fonction de la balise de cette ressource. Dans cette politique , vous pouvez utiliser des clés de condition de balise pour contrôler l'accès à l'un des éléments suivants :

  • Ressource : contrôlez l'accès aux ressources de AWS service en fonction des balises figurant sur ces ressources. Pour ce faire, utilisez la clé de key-name condition aws :ResourceTag/pour déterminer s'il convient d'autoriser l'accès à la ressource en fonction des balises associées à la ressource.

  • Request (Demande) : contrôle les balises qui peuvent être transmises dans une demande. Pour ce faire, utilisez la clé de key-name condition aws :RequestTag/pour spécifier les paires clé-valeur de balise qui peuvent être transmises dans une demande de balisage d'une AWS ressource.

  • N'importe quelle partie du processus d'autorisation : utilisez la clé de TagKeys condition aws : pour contrôler si des clés de balise spécifiques peuvent figurer dans une demande.

Vous pouvez créer une politique IAM visuellement, à l'aide de JSON, ou en important une politique gérée existante. Pour plus d’informations, consultez Définition d’autorisations IAM personnalisées avec des politiques gérées par le client.

Note

Certains services permettent aux utilisateurs d'attribuer des balises au moment de la création de la ressource (s'ils ont les autorisations d'utiliser l'action qui crée la ressource).

Contrôle de l'accès aux ressources AWS

Vous pouvez utiliser des conditions dans vos politiques IAM pour contrôler l'accès aux AWS ressources en fonction des balises associées à ces ressources. Pour ce faire, vous pouvez utiliser la clé de condition globale aws:ResourceTag/tag-key ou une clé spécifique au service. Certains services prennent en charge uniquement la version spécifique au service de cette clé et non la version globale.

Avertissement

N'essayez pas de contrôler les personnes susceptibles de faire passer un rôle en étiquetant ce rôle, puis en utilisant la clé de condition ResourceTag dans une politique avec l'action iam:PassRole. Cette approche ne produit pas des résultats fiables. Pour de plus amples informations sur les autorisations requises pour transmettre un rôle à un service, veuillez consulter Octroi d’autorisations à un utilisateur pour transférer un rôle à un service AWS.

Cet exemple montre comment créer une politique basée sur l'identité qui permet de démarrer ou d'arrêter des instances Amazon EC2 . Ces opérations sont autorisées uniquement si la balise d'instance Owner a la valeur du nom d'utilisateur. Cette politique définit des autorisations pour l'accès à la console et par programmation.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:StartInstances", "ec2:StopInstances" ], "Resource": "arn:aws:ec2:*:*:instance/*", "Condition": { "StringEquals": {"aws:ResourceTag/Owner": "${aws:username}"} } }, { "Effect": "Allow", "Action": "ec2:DescribeInstances", "Resource": "*" } ] }

Vous pouvez rattacher cette politique aux utilisateurs IAM de votre compte. Si un utilisateur nommé richard-roe tente de démarrer une EC2 instance Amazon, l'instance doit être étiquetée Owner=richard-roe ouowner=richard-roe. Dans le cas contraire, il se verra refuser l'accès. La clé de balise Owner correspond à la fois à Owner et owner, car les noms de clé de condition ne sont pas sensibles à la casse. Pour de plus amples informations, veuillez consulter Éléments de politique JSON IAM : Condition.

Cet exemple montre comment créer une politique basée sur l'identité qui utilise la balise de principal team dans l'ARN de la ressource. Cette politique autorise la suppression des files d'attente Amazon Simple Queue Service, mais uniquement si le nom de la file d'attente commence par le nom de l'équipe suivi de -queue. Par exemple, qa-queue si qa est le nom de l'équipe pour la balise de principal team.

{ "Version": "2012-10-17", "Statement": { "Sid": "AllQueueActions", "Effect": "Allow", "Action": "sqs:DeleteQueue", "Resource": "arn:aws:sqs:us-east-2::${aws:PrincipalTag/team}-queue" } }

Contrôle de l'accès au cours des demandes AWS

Vous pouvez utiliser des conditions dans vos politiques IAM pour contrôler les paires clé-valeur de balise qui peuvent être transmises dans une demande qui applique des balises à une ressource. AWS

Cet exemple montre comment créer une politique basée sur l'identité qui permet d'utiliser l' EC2 CreateTagsaction Amazon pour attacher des balises à une instance. Vous pouvez attacher des balises uniquement si la balise contient la clé environment et les valeurs production ou preprod. En tant que bonne pratique, utilisez le modificateur ForAllValues avec la clé de condition aws:TagKeys pour indiquer que seule la clé environment est autorisée dans la demande. Cela empêche les utilisateurs d'inclure d'autres clés, notamment en utilisant accidentellement Environment au lieu de environment.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "ec2:CreateTags", "Resource": "arn:aws:ec2:*:*:instance/*", "Condition": { "StringEquals": { "aws:RequestTag/environment": [ "preprod", "production" ] }, "ForAllValues:StringEquals": {"aws:TagKeys": "environment"} } } }

Contrôle de l'accès en fonction des clés de balise

Vous pouvez utiliser une condition dans vos politiques IAM pour contrôler si des clés de balise spécifiques peuvent être utilisées dans une requête.

Lorsque vous utilisez des politiques pour contrôler l'accès à l'aide de balises, nous vous recommandons d'utiliser la clé de aws:TagKeys condition. AWS les services qui prennent en charge les balises peuvent vous permettre de créer plusieurs noms de clés de balise qui ne diffèrent qu'au cas par cas, par exemple en balisant une EC2 instance Amazon avec stack=production etStack=test. Les noms de clé ne sont pas sensibles à la casse dans les conditions des politiques. Cela signifie que si vous spécifiez "aws:ResourceTag/TagKey1": "Value1" dans l'élément de condition de votre politique, la condition correspond à une clé de balise de ressource nommée TagKey1 ou tagkey1, mais pas aux deux. Pour éviter la duplication de balises avec une clé qui ne varie que par la casse, utilisez la condition aws:TagKeys pour définir les clés de balise que vos utilisateurs peuvent appliquer, ou utilisez les politiques de balises, disponibles avec AWS Organizations. Pour plus d'informations, consultez les politiques relatives aux balises dans le guide de AWS Organizations l'utilisateur.

Cet exemple montre comment vous pouvez créer une politique basée sur l'identité qui autorise la création et la balise d'un secret Secrets Manager, mais uniquement avec les clés de balise environment ou cost-center. La condition Null garantit que la condition a la valeur false s'il n'y a pas de balises dans la demande.

{ "Effect": "Allow", "Action": [ "secretsmanager:CreateSecret", "secretsmanager:TagResource" ], "Resource": "*", "Condition": { "Null": { "aws:TagKeys": "false" }, "ForAllValues:StringEquals": { "aws:TagKeys": [ "environment", "cost-center" ] } } }