Utilisation d'alias pour contrôler l'accès aux clés KMS - 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.

Utilisation d'alias pour contrôler l'accès aux clés KMS

Vous pouvez contrôler l'accès aux clés KMS en fonction des alias associés à la clé KMS. Pour ce faire, utilisez les clés de ResourceAliases condition kms : RequestAlias et kms :. Cette fonction fait partie de la prise en charge AWS KMS du contrôle d'accès basé sur les attributs (ABAC).

La clé de condition kms:RequestAlias autorise ou refuse l'accès à une clé KMS en fonction de l'alias dans une requête. La clé de condition kms:ResourceAliases autorise ou refuse l'accès à une clé KMS en fonction des alias associés à la clé KMS.

Ces fonctionnalités ne vous permettent pas d'identifier une clé KMS à l'aide d'un alias dans l'élément resource d'une déclaration de politique. Lorsqu'un alias est la valeur d'un élément resource, la politique s'applique à la ressource d'alias et non à toute clé KMS qui pourrait lui être associée.

Note

Les modifications d'alias et de balise peuvent prendre jusqu'à cinq minutes pour avoir une incidence sur l'autorisation de clé KMS. Les modifications récentes peuvent être visibles dans les opérations d'API avant qu'elles n'affectent l'autorisation.

Lorsque vous utilisez des alias pour contrôler l'accès aux clés KMS, tenez compte des éléments suivants :

  • Utilisez des alias pour renforcer les bonnes pratiques de l'accès le moins privilégié. N'accordez aux principaux IAM que les autorisations dont ils ont besoin pour les clés KMS qu'ils doivent utiliser ou gérer. Par exemple, utilisez des alias pour identifier les clés KMS utilisées pour un projet. Donnez ensuite à l'équipe de projet l'autorisation d'utiliser uniquement les clés KMS avec les alias du projet.

  • Soyez prudent lorsque vous donnez aux principaux les autorisations kms:CreateAlias, kms:UpdateAlias ou kms:DeleteAlias qui leur permettent d'ajouter, de modifier et de supprimer des alias. Lorsque vous utilisez des alias pour contrôler l'accès aux clés KMS, la modification d'un alias peut donner aux principaux l'autorisation d'utiliser des clés KMS qu'ils n'avaient alors pas l'autorisation d'utiliser. Elle peut également refuser l'accès aux clés KMS dont d'autres principaux ont besoin pour réaliser leurs tâches.

  • Examinez les principaux dans votre Compte AWS qui disposent actuellement de l'autorisation de gérer les alias et ajustez les autorisations, si nécessaire. Les administrateurs de clés qui n'ont pas l'autorisation de modifier les politiques de clé ou de créer des octrois peuvent contrôler l'accès aux clés KMS s'ils sont autorisés à gérer les alias.

    Par exemple, la console Politique de clé par défaut pour les administrateurs de clés comprend les autorisations kms:CreateAlias, kms:DeleteAlias et kms:UpdateAlias. Les politiques IAM peuvent donner des autorisations d'alias pour toutes les clés KMS de votre Compte AWS. Par exemple, la politique AWSKeyManagementServicePowerUsergérée permet aux principaux de créer, de supprimer et de répertorier des alias pour toutes les clés KMS, mais pas de les mettre à jour.

  • Avant de définir une politique qui dépend d'un alias, examinez les alias des clés KMS dans votre Compte AWS. Assurez-vous que votre politique s'applique uniquement aux alias que vous avez l'intention d'inclure. Utilisez CloudTrail les journaux et les CloudWatch alarmes pour vous avertir des modifications d'alias susceptibles d'affecter l'accès à vos clés KMS. La ListAliasesréponse inclut également la date de création et la date de dernière mise à jour pour chaque alias.

  • Les conditions de politique d'alias utilisent la correspondance de modèles ; elles ne sont pas liées à une instance particulière d'un alias. Une politique qui utilise des clés de condition basées sur des alias affecte tous les alias nouveaux et existants qui correspondent au modèle. Si vous supprimez et recréez un alias qui correspond à une condition de politique, la condition s'applique au nouvel alias, comme c'était le cas pour l'ancien.

La clé de condition kms:RequestAlias repose sur l'alias spécifié explicitement dans une demande d'opération. La clé de condition kms:ResourceAliases dépend des alias associés à une clé KMS, même s'ils n'apparaissent pas dans la demande.

km : RequestAlias

Autoriser ou refuser l'accès à une clé KMS en fonction de l'alias qui identifie la clé KMS dans une demande. Vous pouvez utiliser la clé de RequestAlias condition kms : dans une politique clé ou une politique IAM. Elle s'applique aux opérations qui utilisent un alias pour identifier une clé KMS dans une demande, à savoir les opérations cryptographiques DescribeKey, et GetPublicKey. Il n'est pas valide pour les opérations d'alias, telles que CreateAliasou DeleteAlias.

Dans la clé de condition, spécifiez un Nom d'alias ou un modèle de nom d'alias. Vous ne pouvez pas spécifier d'ARN d'alias.

Par exemple, la déclaration de politique de clé suivante autorise les principaux à utiliser les opérations spécifiées sur la clé KMS. L'autorisation est en vigueur uniquement lorsque la demande utilise un alias qui inclut alpha pour identifier la clé KMS.

{ "Sid": "Key policy using a request alias condition", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/alpha-developer" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringLike": { "kms:RequestAlias": "alias/*alpha*" } } }

L'exemple suivant de demande d'un principal autorisé remplirait la condition. Cependant, une demande qui a utilisé un ID de clé, un ARN de clé ou un alias différent ne remplirait pas la condition, même si ces valeurs identifiaient la même clé KMS.

$ aws kms describe-key --key-id "arn:aws:kms:us-west-2:111122223333:alias/project-alpha"

km : ResourceAliases

Autorisez ou refusez l'accès à une clé KMS en fonction des alias associés à la clé KMS, même si l'alias n'est pas utilisé dans une demande. La clé de ResourceAliases condition kms : vous permet de spécifier un alias ou un modèle d'alias, par exemplealias/test*, afin que vous puissiez l'utiliser dans une politique IAM pour contrôler l'accès à plusieurs clés KMS dans la même région. Il est valable pour toute opération AWS KMS qui utilise une clé KMS.

Par exemple, la politique IAM suivante permet aux principaux de gérer la rotation automatique des clés sur les clés KMS dans deux Comptes AWS. Toutefois, l'autorisation s'applique uniquement aux clés KMS associées aux alias commençant par restricted.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AliasBasedIAMPolicy", "Effect": "Allow", "Action": [ "kms:EnableKeyRotation", "kms:DisableKeyRotation", "kms:GetKeyRotationStatus" ], "Resource": [ "arn:aws:kms:*:111122223333:key/*", "arn:aws:kms:*:444455556666:key/*" ], "Condition": { "ForAnyValue:StringLike": { "kms:ResourceAliases": "alias/restricted*" } } } ] }

La condition kms:ResourceAliases est une condition de la ressource, pas la demande. Dès lors, une demande qui ne spécifie pas l'alias peut toujours satisfaire la condition.

L'exemple de demande suivant, qui spécifie un alias correspondant, satisfait à la condition.

$ aws kms enable-key-rotation --key-id "alias/restricted-project"

Toutefois, l'exemple de demande suivant satisfait également la condition, à condition que la clé KMS spécifiée ait un alias qui commence par restricted, même si cet alias n'est pas utilisé dans la demande.

$ aws kms enable-key-rotation --key-id "1234abcd-12ab-34cd-56ef-1234567890ab"