Affichage des clés KMS avec l'API - 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.

Affichage des clés KMS avec l'API

Vous pouvez utiliser l'API AWS Key Management Service (AWS KMS) pour afficher vos clés CMK. Cette section présente plusieurs opérations qui renvoient des informations sur les clés KMS existantes. Les exemples utilisent l'AWS Command Line Interface (AWS CLI), mais vous pouvez utiliser n'importe quel langage de programmation pris en charge.

ListKeys: Obtenez l'ID et l'ARN de toutes les clés KMS

L'ListKeysopération renvoie l'ID et le nom de ressource Amazon (ARN) de toutes les clés KMS du compte et de la région.

Par exemple, cet appel à l'opération ListKeys renvoie l'ID et l'ARN de chaque clé KMS de ce compte fictif. Pour obtenir des exemples dans plusieurs langages de programmation, veuillez consulter Obtention des ID de clé et des ARN de clé des clés KMS.

$ aws kms list-keys { "Keys": [ { "KeyArn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab" }, { "KeyArn": "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321", "KeyId": "0987dcba-09fe-87dc-65ba-ab0987654321" }, { "KeyArn": "arn:aws:kms:us-east-2:111122223333:key/1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d", "KeyId": "1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d" } }

DescribeKey: obtenir des informations détaillées sur une clé KMS

L'DescribeKeyopération renvoie des informations sur la clé KMS spécifiée. Pour identifier la clé KMS, utilisez son ID de clé, son ARN de clé, son nom d'alias ou son ARN d'alias.

Contrairement à l'ListKeysopération, qui affiche uniquement les clés KMS dans le compte et la région de l'appelant, les utilisateurs autorisés peuvent utiliser l'DescribeKeyopération pour obtenir des informations sur les clés KMS d'autres comptes.

Note

La réponse DescribeKey inclut à la fois les membres KeySpec et CustomerMasterKeySpec avec les mêmes valeurs. Le membre CustomerMasterKeySpec est obsolète.

Par exemple, cet appel à DescribeKey renvoie des informations sur une clé KMS de chiffrement symétrique. Les champs de la réponse varient en fonction des spécifications AWS KMS key, de l'état de la clé et de l'origine des éléments de clé. Pour obtenir des exemples dans plusieurs langages de programmation, veuillez consulter Affichage d'un AWS KMS key.

$ aws kms describe-key --key-id 1234abcd-12ab-34cd-56ef-1234567890ab { "KeyMetadata": { "Origin": "AWS_KMS", "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "Description": "", "KeyManager": "CUSTOMER", "Enabled": true, "KeySpec": "SYMMETRIC_DEFAULT", "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", "KeyUsage": "ENCRYPT_DECRYPT", "KeyState": "Enabled", "CreationDate": 1499988169.234, "MultiRegion": false, "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "AWSAccountId": "111122223333", "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ] } }

Cet exemple appelle une opération DescribeKey sur une clé KMS asymétrique utilisée pour la signature et la vérification. La réponse inclut les algorithmes de signature que AWS KMS prend en charge pour cette clé KMS.

$ aws kms describe-key --key-id 0987dcba-09fe-87dc-65ba-ab0987654321 { "KeyMetadata": { "KeyId": "0987dcba-09fe-87dc-65ba-ab0987654321", "Origin": "AWS_KMS", "Arn": "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321", "KeyState": "Enabled", "KeyUsage": "SIGN_VERIFY", "CreationDate": 1569973196.214, "Description": "", "KeySpec": "ECC_NIST_P521", "CustomerMasterKeySpec": "ECC_NIST_P521", "AWSAccountId": "111122223333", "Enabled": true, "MultiRegion": false, "KeyManager": "CUSTOMER", "SigningAlgorithms": [ "ECDSA_SHA_512" ] } }

GetKeyPolicy: Obtenez la politique de clé attachée à une clé KMS

L'GetKeyPolicyopération obtient la politique de clé attachée à la clé KMS. Pour identifier la clé KMS, utilisez son ID de clé ou son ARN de clé. Vous devez également spécifier le nom de la politique, qui est toujours par défaut default. (Si la sortie est difficile à lire, ajoutez l'option --output text à votre commande.) GetKeyPolicy fonctionne uniquement sur les clés KMS du compte et de la région de l'appelant.

Pour obtenir des exemples dans plusieurs langages de programmation, veuillez consulter Obtention d'une politique de clé.

$ aws kms get-key-policy --key-id 1234abcd-12ab-34cd-56ef-1234567890ab --policy-name default { "Version" : "2012-10-17", "Id" : "key-default-1", "Statement" : [ { "Sid" : "Enable IAM User Permissions", "Effect" : "Allow", "Principal" : { "AWS" : "arn:aws:iam::111122223333:root" }, "Action" : "kms:*", "Resource" : "*" } ] }

ListAliases: Obtenir les noms d'alias et les ARN pour les clés KMS

L'ListAliasesopération renvoie les alias du compte et de la région. Le TargetKeyId de la réponse indique l'ID de clé de la clé KMS auquel l'alias fait référence, le cas échéant.

Par défaut, la commande ListAliases retourne tous les alias figurant dans le compte et la région. Cela inclut les alias que vous avez créés et associés à vos clés gérées par le client, et les alias créés par AWS et associés à votre Clé gérée par AWS dans votre compte. Vous pouvez reconnaître les alias AWS car leurs noms ont le format aws/<service-name>, par exemple aws/dynamodb.

La réponse peut également inclure les alias ne disposant pas de champ TargetKeyId, comme l'alias aws/redshift dans cet exemple. Ces alias prédéfinis ont été créés par AWS qui ne les a pas encore associés à une clé KMS.

Pour obtenir des exemples dans plusieurs langages de programmation, veuillez consulter Établissement de la liste des alias.

$ aws kms list-aliases { "Aliases": [ { "AliasName": "alias/access-key", "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/access-key", "TargetKeyId": "0987dcba-09fe-87dc-65ba-ab0987654321", "CreationDate": 1516435200.399, "LastUpdatedDate": 1516435200.399 }, { "AliasName": "alias/financeKey", "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/financeKey", "TargetKeyId": "0987dcba-09fe-87dc-65ba-ab0987654321", "CreationDate": 1604958290.014, "LastUpdatedDate": 1604958290.014 }, { "AliasName": "alias/ECC-P521-Sign", "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/ECC-P521-Sign", "TargetKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "CreationDate": 1693622000.704, "LastUpdatedDate": 1693622000.704 }, { "AliasName": "alias/ImportedKey", "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/ImportedKey", "TargetKeyId": "1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d", "CreationDate": 1493622000.704, "LastUpdatedDate": 1521097200.235 }, { "AliasName": "alias/aws/dynamodb", "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/aws/dynamodb", "TargetKeyId": "0987ab65-43cd-21ef-09ab-87654321cdef", "CreationDate": 1521097200.454, "LastUpdatedDate": 1521097200.454 }, { "AliasName": "alias/aws/ebs", "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/aws/ebs", "TargetKeyId": "abcd1234-09fe-ef90-09fe-ab0987654321", "CreationDate": 1466518990.200, "LastUpdatedDate": 1466518990.200 }, { "AliasName": "alias/aws/redshift", "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/aws/redshift" }, ] }

Pour obtenir les alias qui font référence à une clé KMS spécifique, utilisez le paramètre KeyId. La valeur du paramètre peut être l'ID de clé ou l'ARN de clé. Vous ne pouvez pas spécifier de nom d'alias ou d'ARN d'alias.

La commande de l'exemple suivant obtient les alias qui font référence à une clé KMS gérée par le client. Toutefois, vous pouvez utiliser une commande similaire pour rechercher les alias faisant également référence à des Clés gérées par AWS.

$ aws kms list-aliases --key-id arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321 { "Aliases": [ { "AliasName": "alias/access-key", "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/access-key", "TargetKeyId": "0987dcba-09fe-87dc-65ba-ab0987654321", "CreationDate": 1516435200.399, "LastUpdatedDate": 1516435200.399 }, { "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/financeKey", "TargetKeyId": "0987dcba-09fe-87dc-65ba-ab0987654321", "AliasName": "alias/financeKey", "CreationDate": 1604958290.014, "LastUpdatedDate": 1604958290.014 }, ] }

Pour obtenir uniquement les alias pour les Clés gérées par AWS, utilisez les fonctions de votre langage de programmation pour filtrer la réponse.

$ aws kms list-aliases --query 'Aliases[?starts_with(AliasName, `alias/aws/`)]'

ListResourceTags: Récupère les tags des clés KMS

L'ListResourceTagsopération renvoie les balises de la clé KMS spécifiée. L'API renvoie des balises pour une clé KMS, mais vous pouvez exécuter la commande dans une boucle pour obtenir des balises pour toutes les clés KMS du compte et de la région, ou pour un ensemble de clés KMS que vous sélectionnez. Cette API renvoie une page à la fois, donc si vous avez de nombreuses balises sur de nombreuses clés KMS, vous devrez peut-être utiliser le paginateur dans votre langage de programmation pour obtenir toutes les balises que vous souhaitez.

L'opération ListResourceTags renvoie des balises pour toutes les clés KMS, mais les Clé gérée par AWS ne sont pas labelisées. Cela fonctionne uniquement sur les clés KMS du compte et de la région de l'appelant.

Pour trouver les balises d'une clé KMS, utilisez l'opération ListResourceTags. Le paramètre KeyId est obligatoire. Il accepte un ID de clé ou un ARN de clé. Avant d'exécuter cet exemple, remplacez l'ARN de clé de l'exemple par un ARN valide.

$ aws kms list-resource-tags --key-id arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab { "Tags": [ { "TagKey": "Department", "TagValue": "IT" }, { "TagKey": "Purpose", "TagValue": "Test" } ], "Truncated": false }

Vous pouvez également, si vous le souhaitez, utiliser l'opération ListResourceTags pour obtenir toutes les clés KMS du compte et de la région avec une balise, une clé de balise ou une valeur de balise particulière. Pour ce faire, utilisez les fonctions de filtrage de votre langage de programmation.

Par exemple, le script Bash suivant utilise les ListResourceTags opérations ListKeyset pour obtenir toutes les clés KMS du compte et de la région avec une clé de Project balise. Ces deux opérations n'obtiennent que la première page de résultats. Si vous disposez de nombreuses clés KMS ou de nombreuses balises, utilisez les fonctions de pagination de votre langue pour obtenir le résultat complet de chaque opération. Avant d'exécuter cet exemple, remplacez l'ID de clé de l'exemple par un ID valide.

TARGET_TAG_KEY='Project' for key in $(aws kms list-keys --query 'Keys[*].KeyId' --output text); do key_tags=$(aws kms list-resource-tags --key-id "$key" --query "Tags[?TagKey==\`$TARGET_TAG_KEY\`]") if [ "$key_tags" != "[]" ]; then echo "Key: $key" echo "$key_tags" fi done

La sortie est formatée comme l'exemple de sortie suivant.

Key: 0987dcba-09fe-87dc-65ba-ab0987654321 [ { "TagKey": "Project", "TagValue": "Gamma" } ] Key: 1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d [ { "TagKey": "Project", "TagValue": "Alpha" } ] Key: 0987ab65-43cd-21ef-09ab-87654321cdef [ { "TagKey": "Project", "TagValue": "Alpha" } ]