Contrôle de l'accès aux balises - AWS Key Management Service

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 balises

Pour ajouter, afficher et supprimer des balises, que ce soit dans la console AWS KMS ou à l'aide de l'API, les principaux ont besoin d'autorisations d'étiquetage. Vous pouvez fournir ces autorisations dans les politiques de clé. Vous pouvez également les fournir dans les politiques IAM (y compris les politiques de point de terminaison d'un VPC), mais seulement si la politique de clé le permet. La politique AWSKeyManagementServicePowerUsergérée permet aux principaux d'étiqueter, de débaliser et de répertorier les balises sur toutes les clés KMS auxquelles le compte peut accéder.

Vous pouvez également limiter ces autorisations en utilisant des clés de condition globales AWS pour les balises. DansAWS KMS, ces conditions peuvent contrôler l'accès aux opérations de marquage, telles que TagResourceet UntagResource.

Note

Soyez prudent lorsque vous autorisez les principaux à gérer les balises et les alias. La modification d'une balise ou d'un alias permet d'accorder ou de refuser l'autorisation d'utiliser la clé gérée par le client. Pour plus de détails, veuillez consulter ABAC pour AWS KMS et Utilisation de balises pour contrôler l'accès aux clés KMS.

Pour obtenir des exemples de politiques et plus d'informations, veuillez consulter Contrôle de l'accès en fonction des clés de balises dans le Guide de l'utilisateur IAM.

Les autorisations de création et de gestion de balises fonctionnent comme suit.

km : TagResource

Autorise les principaux à ajouter ou à modifier des balises. Pour ajouter des balises lors de la création d'une clé KMS, le principal doit disposer d'une autorisation dans une politique IAM qui n'est pas limitée à des clés KMS particulières.

km : ListResourceTags

Permet aux principaux d'afficher les balises sur les clés KMS.

km : UntagResource

Permet aux principaux de supprimer des balises des clés KMS.

Autorisations de balises dans les politiques

Vous pouvez fournir des autorisations d'étiquetage dans une politique de clé ou une politique IAM. Par exemple, l'exemple de politique de clé suivant donne à certains utilisateurs l'autorisation d'étiqueter la clé KMS. Il accorde à tous les utilisateurs qui peuvent endosser les rôles Administrateur ou Développeur d'exemple l'autorisation d'afficher les balises.

{ "Version": "2012-10-17", "Id": "example-key-policy", "Statement": [ { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:root"}, "Action": "kms:*", "Resource": "*" }, { "Sid": "Allow all tagging permissions", "Effect": "Allow", "Principal": {"AWS": [ "arn:aws:iam::111122223333:user/LeadAdmin", "arn:aws:iam::111122223333:user/SupportLead" ]}, "Action": [ "kms:TagResource", "kms:ListResourceTags", "kms:UntagResource" ], "Resource": "*" }, { "Sid": "Allow roles to view tags", "Effect": "Allow", "Principal": {"AWS": [ "arn:aws:iam::111122223333:role/Administrator", "arn:aws:iam::111122223333:role/Developer" ]}, "Action": "kms:ListResourceTags", "Resource": "*" } ] }

Pour accorder aux principaux l'autorisation d'étiquetage sur plusieurs clés KMS, vous pouvez utiliser une politique IAM. Pour que cette politique soit efficace, la politique de clé pour chaque clé KMS doit autoriser le compte à utiliser des politiques IAM pour contrôler l'accès à la clé KMS.

Par exemple, la politique IAM suivante permet aux principaux de créer des clés KMS. Il leur permet également de créer et de gérer des balises sur toutes les clés KMS du compte spécifié. Cette combinaison permet aux principaux d'utiliser le paramètre Tags de l'CreateKeyopération pour ajouter des balises à une clé KMS lors de sa création.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "IAMPolicyCreateKeys", "Effect": "Allow", "Action": "kms:CreateKey", "Resource": "*" }, { "Sid": "IAMPolicyTags", "Effect": "Allow", "Action": [ "kms:TagResource", "kms:UntagResource", "kms:ListResourceTags" ], "Resource": "arn:aws:kms:*:111122223333:key/*" } ] }

Limitation des autorisations de balises

Vous pouvez limiter les autorisations d'étiquetage en utilisant des conditions de politique. Les conditions de politique suivantes peuvent être appliquées aux autorisations kms:TagResource et kms:UntagResource. Par exemple, vous pouvez utiliser la condition aws:RequestTag/tag-key pour permettre à un principal d'ajouter uniquement des balises particulières, ou empêcher un principal d'ajouter des balises avec des clés de balise particulières. Sinon, vous pouvez utiliser la condition kms:KeyOrigin pour empêcher les principaux d'étiqueter ou de désétiqueter les clés KMS avec des éléments de clé importés.

La bonne pratique à adopter lorsque vous utilisez des balises pour contrôler l'accès aux clés KMS consiste à utiliser la clé de condition aws:RequestTag/tag-key ou aws:TagKeys pour déterminer quelles balises (ou clés de balise) sont autorisées.

Par exemple, la politique IAM suivante est similaire à la précédente. Toutefois, cette politique permet aux principaux de créer des balises (TagResource) et de supprimer des balises UntagResource uniquement pour les balises avec une clé de balise Project.

Étant donné que TagResource les UntagResource demandes peuvent inclure plusieurs balises, vous devez spécifier un opérateur ForAllValues ou un ForAnyValue ensemble avec la TagKeys condition aws :. L'opérateur ForAnyValue exige qu'au moins l'une des clés de balise dans la demande corresponde à l'une des clés de balise dans la politique. L'opérateur ForAllValues exige que toutes les clés de balise dans la demande correspondent à l'une des clés de balise dans la politique. L'ForAllValuesopérateur renvoie également true si la demande ne contient aucune balise, mais TagResource UntagResource échoue si aucune balise n'est spécifiée. Pour plus de détails sur les opérateurs d'ensemble, veuillez consulter Utiliser plusieurs clés et valeurs dans le Guide de l'utilisateur IAM.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "IAMPolicyCreateKey", "Effect": "Allow", "Action": "kms:CreateKey", "Resource": "*" }, { "Sid": "IAMPolicyViewAllTags", "Effect": "Allow", "Action": "kms:ListResourceTags", "Resource": "arn:aws:kms:*:111122223333:key/*" }, { "Sid": "IAMPolicyManageTags", "Effect": "Allow", "Action": [ "kms:TagResource", "kms:UntagResource" ], "Resource": "arn:aws:kms:*:111122223333:key/*", "Condition": { "ForAllValues:StringEquals": {"aws:TagKeys": "Project"} } } ] }