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.
Clé KMS | Créer
Demandez une clé KMS avec une politique de clé prédéfinie.
Classification complète : Déploiement | Composants de pile avancés | Clé KMS | Créer
Détails du type de modification
Modifier l'identifiant du type |
ct-1d84keiri1jhg |
Version actuelle |
1.0 |
Durée d'exécution prévue |
60 minutes |
Approbation AWS |
Obligatoire |
Approbation du client |
Facultatif |
Mode d'exécution |
Automatisé |
Informations supplémentaires
Créer une clé KMS
Capture d'écran de ce type de modification dans la console AMS :
Comment cela fonctionne :
Accédez à la page Créer une RFC : Dans le volet de navigation de gauche de la console AMS, cliquez RFCspour ouvrir la page de RFCs liste, puis cliquez sur Créer une RFC.
Choisissez un type de modification (CT) populaire dans la vue Parcourir les types de modification par défaut, ou sélectionnez un CT dans la vue Choisir par catégorie.
Parcourir par type de modification : vous pouvez cliquer sur un CT populaire dans la zone de création rapide pour ouvrir immédiatement la page Run RFC. Notez que vous ne pouvez pas choisir une ancienne version CT avec création rapide.
Pour trier CTs, utilisez la zone Tous les types de modifications dans l'affichage Carte ou Tableau. Dans l'une ou l'autre vue, sélectionnez un CT, puis cliquez sur Créer une RFC pour ouvrir la page Exécuter une RFC. Le cas échéant, une option Créer avec une ancienne version apparaît à côté du bouton Créer une RFC.
Choisissez par catégorie : sélectionnez une catégorie, une sous-catégorie, un article et une opération et la zone de détails du CT s'ouvre avec une option permettant de créer avec une ancienne version, le cas échéant. Cliquez sur Créer une RFC pour ouvrir la page Exécuter une RFC.
Sur la page Run RFC, ouvrez la zone de nom du CT pour voir la boîte de détails du CT. Un sujet est requis (il est renseigné pour vous si vous choisissez votre CT dans la vue Parcourir les types de modification). Ouvrez la zone de configuration supplémentaire pour ajouter des informations sur le RFC.
Dans la zone Configuration de l'exécution, utilisez les listes déroulantes disponibles ou entrez des valeurs pour les paramètres requis. Pour configurer les paramètres d'exécution facultatifs, ouvrez la zone de configuration supplémentaire.
Lorsque vous avez terminé, cliquez sur Exécuter. S'il n'y a aucune erreur, la page RFC créée avec succès s'affiche avec les détails de la RFC soumise et le résultat d'exécution initial.
Ouvrez la zone Paramètres d'exécution pour voir les configurations que vous avez soumises. Actualisez la page pour mettre à jour l'état d'exécution de la RFC. Vous pouvez éventuellement annuler la RFC ou en créer une copie à l'aide des options en haut de la page.
Comment cela fonctionne :
Utilisez soit le Inline Create (vous émettez une
create-rfccommande avec tous les paramètres RFC et d'exécution inclus), soit le Template Create (vous créez deux fichiers JSON, un pour les paramètres RFC et un pour les paramètres d'exécution) et émettez lacreate-rfccommande avec les deux fichiers en entrée. Les deux méthodes sont décrites ici.Soumettez la
aws amscm submit-rfc --rfc-idcommande RFC : avec l'ID RFC renvoyé.IDSurveillez la
aws amscm get-rfc --rfc-idcommande RFC :.ID
Pour vérifier la version du type de modification, utilisez cette commande :
aws amscm list-change-type-version-summaries --filter Attribute=ChangeTypeId,Value=CT_ID
Note
Vous pouvez utiliser n'importe quel CreateRfc paramètre avec n'importe quelle RFC, qu'ils fassent ou non partie du schéma du type de modification. Par exemple, pour recevoir des notifications lorsque le statut de la RFC change, ajoutez cette ligne --notification "{\"Email\": {\"EmailRecipients\" : [\"email@example.com\"]}}" aux paramètres RFC de la demande (et non aux paramètres d'exécution). Pour obtenir la liste de tous les CreateRfc paramètres, consultez le manuel AMS Change Management API Reference.
CRÉATION EN LIGNE :
Émettez la commande create RFC avec les paramètres d'exécution fournis en ligne (évitez les guillemets lorsque vous fournissez des paramètres d'exécution en ligne), puis soumettez l'ID RFC renvoyé. Par exemple, vous pouvez remplacer le contenu par quelque chose comme ceci :
Paramètres obligatoires uniquement :
aws amscm create-rfc --titlemy-app-key--change-type-id ct-1d84keiri1jhg --change-type-version1.0--execution-parameters '{"Description":"KMS key for my-app","VpcId":"VPC_ID","Name":"my-app-key","StackTemplateId":"stm-enf1j068fhg34vugt","TimeoutInMinutes":60,"Parameters":{"Description":"KMS key for my-app"}}'
CRÉATION D'UN MODÈLE :
Exportez le schéma JSON des paramètres d'exécution pour ce type de modification dans un fichier ; cet exemple le nomme CreateKmsKeyAutoParams .json.
aws amscm get-change-type-version --change-type-id "ct-1d84keiri1jhg" --query "ChangeTypeVersion.ExecutionInputSchema" --output text > CreateKmsKeyAutoParams.jsonModifiez et enregistrez le CreateKmsKeyAutoParams fichier. Des exemples suivent.
Accordez à un utilisateur ou à un rôle l'autorisation de déchiffrer la clé CMK créée. Exemples de paramètres d'exécution :
{ "Description": "KMS key for my-app", "VpcId": "VPC_ID”, "Name": "my-app-key-decrypt", "StackTemplateId": "stm-enf1j068fhg34vugt", "TimeoutInMinutes": 60, "Parameters": { "IAMPrincipalsRequiringDecryptPermissions": [ "ARN:role/roleA", "ARN:user/userB", "ARN:role/instanceProfileA" ], "Description": "KMS key for my-app" } }Pour la politique qui en résulte, voirAccorde des autorisations de déchiffrement à l'aide du CML pour un utilisateur ou un rôle IAM.
Accordez à un utilisateur ou à un rôle l'autorisation de chiffrer à l'aide de la clé CMK créée. Exemples de paramètres d'exécution :
{ "Description": "KMS key for my-app", "VpcId": "VPC_ID", "Name": "my-app-key-encrypt", "Tags": [ { "Key": "Name", "Value": "my-app-key" } ], "StackTemplateId": "stm-enf1j068fhg34vugt", "TimeoutInMinutes": 60, "Parameters": { "IAMPrincipalsRequiringEncryptPermissions": [ "ARN:role/roleA", "ARN:user/userB", "ARN:role/instanceProfileA" ], "Description": "KMS key for my-app" } }Pour la politique qui en résulte, voirAccorde les autorisations de chiffrement à l'aide du CML pour un utilisateur ou un rôle IAM.
Accordez à un utilisateur, à un rôle ou à un compte l'autorisation de créer des autorisations à l'aide de la clé CMK créée. Exemples de paramètres d'exécution :
{ "Description": "KMS key for my-app", "VpcId": "VPC_ID", "Name": "my-app-key-create-grants", "StackTemplateId": "stm-enf1j068fhg34vugt", "TimeoutInMinutes": 60, "Parameters": { "IAMPrincipalsRequiringGrantsPermissions": [ "arn:aws:iam::999999999999:role/roleA", "888888888888" ], "Description": "KMS key for my-app" } }Pour la politique qui en résulte, voirAccorde des autorisations pour créer des subventions avec le CMK pour un utilisateur, un rôle ou un compte IAM.
Autorisez uniquement les services AWS intégrés à AWS KMS à effectuer l'opération GRANT. Exemples de paramètres d'exécution :
{ "Description": "KMS key for my-app", "VpcId": "VPC_ID", "Name": "my-app-key-limit-to-services", "StackTemplateId": "stm-enf1j068fhg34vugt", "TimeoutInMinutes": 60, "Parameters": { "IAMPrincipalsRequiringGrantsPermissions": [ "arn:aws:iam::999999999999:role/roleA" ], "LimitGrantsToAWSResources": "true", "Description": "KMS key for my-app" } }Pour la politique qui en résulte, voirAutoriser uniquement les services AWS intégrés à AWS KMS à effectuer l'opération GRANT.
Imposez l'utilisation de clés contextuelles de chiffrement dans les opérations cryptographiques. Exemples de paramètres d'exécution :
{ "Description": "KMS key for my-app", "VpcId": "VPC_ID", "Name": "my-app-key-encryption-keys", "StackTemplateId": "stm-enf1j068fhg34vugt", "TimeoutInMinutes": 60, "Parameters": { "EnforceEncryptionContextKeys": "true", "Description": "KMS key for my-app" } }Pour la politique qui en résulte, voirImposer l'utilisation de clés contextuelles de chiffrement dans les opérations cryptographiques.
Appliquez une liste spécifique de clés contextuelles de chiffrement dans les opérations cryptographiques. Exemples de paramètres d'exécution :
{ "Description": "KMS key for my-app", "VpcId": "VPC_ID", "Name": "my-app-key-encryption-list", "StackTemplateId": "stm-enf1j068fhg34vugt", "TimeoutInMinutes": 60, "Parameters": { "AllowedEncryptionContextKeys": [ "Name", "Application" ], "Description": "KMS key for my-app" } }Pour la politique qui en résulte, voirAppliquer une liste spécifique de clés contextuelles de chiffrement dans les opérations cryptographiques.
Autorisez les services AWS à accéder à la clé CMK créée. Exemples de paramètres d'exécution :
{ "Description" : "KMS key for my-app", "VpcId" : "VPC_ID", "Name" : "my-app-key-allow-aws-service-access", "StackTemplateId" : "stm-enf1j068fhg34vugt", "TimeoutInMinutes" : 60, "Parameters" : { "AllowServiceRolesAccessKMSKeys": [ "ec2.us-east-1.amazonaws.com", "ecr.us-east-1.amazonaws.com" ], "Description": "KMS key for my-app" } }Pour la politique qui en résulte, voirAutoriser les services AWS à accéder à la clé CMK créée.
Exportez le fichier JSON du modèle RFC dans un fichier ; cet exemple le nomme CreateKmsKeyAutoRfc .json :
aws amscm create-rfc --generate-cli-skeleton > CreateKmsKeyAutoRfc.jsonModifiez et enregistrez le fichier CreateKmsKeyAutoRfc .json. Par exemple, vous pouvez remplacer le contenu par quelque chose comme ceci :
{ "ChangeTypeId": "ct-1d84keiri1jhg", "ChangeTypeVersion": "1.0", "Title": "Create KMS Key" }Créez le RFC en spécifiant le fichier CreateKmsKeyAuto RFC et le CreateKmsKeyAutoParams fichier :
aws amscm create-rfc --cli-input-json file://CreateKmsKeyAutoRfc.json --execution-parameters file://CreateKmsKeyAutoParams.jsonVous recevez l'identifiant de la nouvelle RFC dans la réponse et vous pouvez l'utiliser pour soumettre et surveiller la RFC. Tant que vous ne l'avez pas soumise, la RFC reste en cours d'édition et ne démarre pas.
-
Ce CT crée une CloudFormation pile qui crée une clé KMS avec
DeletionPolicy: Retain. De par sa conception, la clé KMS créée sera conservée même après la suppression de la pile. Si vous êtes sûr de vouloir supprimer la clé KMS, créez une RFC avec le type de modification ct-2zxya20wmf5bf, Management | Advanced stack components | KMS key | Delete (révision requise). Ce type de modification est ExecutionMode = Automatisé. Ce type de modification ne nécessite donc pas de révision manuelle par les opérations AMS et devrait s'exécuter plus rapidement que KMS Key : Create (révision requise) ; toutefois, si vous vous trouvez dans une situation inhabituelle, la version manuelle vous convient peut-être mieux. Voir KMS Key | Create (révision requise).
Ce CT possède un nouveau paramètre AllowServiceRolesAccessKMSKeys, qui fournit aux services AWS spécifiés l'accès à la clé KMS. La modification a été apportée car le rôle de service de groupe Autoscaling n'a pas pu démarrer les EC2 instances avec des volumes EBS chiffrés en raison de l'absence d'autorisations sur la clé KMS.
Pour en savoir plus sur les clés AWS KMS, consultez AWS Key Management Service (KMS)
, AWS Key Management FAQs Service et AWS Key Management Service Concepts.
KMS Key : créer des politiques résultantes
En fonction de la façon dont vous avez créé votre clé KMS, vous avez créé des politiques. Ces exemples de politiques correspondent aux différents scénarios de création de clés KMS fournis dansCréer une clé KMS.
Accorde des autorisations de déchiffrement à l'aide du CML pour un utilisateur ou un rôle IAM
L'exemple de politique qui en résulte accorde aux utilisateurs, aux rôles ou aux profils d'instance IAM l'autorisation de déchiffrer à l'aide de la clé CMK :
{ "Sid": "Allow decrypt using the key", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::999999999999:role/roleA", "arn:aws:iam::999999999999:user/userB", "arn:aws:iam::999999999999:role/instanceProfileA" ] }, "Action": [ "kms:DescribeKey", "kms:Decrypt" ], "Resource": "*" }
Pour les paramètres d'exécution permettant de créer cette politique avec la clé KMS Create change type, voir Créer une clé KMS
Accorde les autorisations de chiffrement à l'aide du CML pour un utilisateur ou un rôle IAM
L'exemple de politique qui en résulte accorde aux utilisateurs, aux rôles ou aux profils d'instance IAM l'autorisation de chiffrer à l'aide de la clé CMK :
{ "Sid": "Allow encrypt using the key", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::999999999999:role/roleA", "arn:aws:iam::999999999999:user/userB", "arn:aws:iam::999999999999:role/instanceProfileA" ] }, "Action": [ "kms:DescribeKey", "kms:Encrypt", "kms:ReEncrypt*", "kms:GenerateDataKey", "kms:GenerateDataKeyWithoutPlaintext" ], "Resource": "*" }
Pour les paramètres d'exécution permettant de créer cette politique avec la clé KMS Create change type, voir Créer une clé KMS
Accorde des autorisations pour créer des subventions avec le CMK pour un utilisateur, un rôle ou un compte IAM
Exemple de politique qui en résulte :
{ "Sid": "Allow grants", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::999999999999:role/roleA", "arn:aws:iam::888888888888:root" ] }, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*" }
Pour les paramètres d'exécution permettant de créer cette politique avec la clé KMS Create change type, voir Créer une clé KMS
Autoriser uniquement les services AWS intégrés à AWS KMS à effectuer l'opération GRANT
Exemple de politique qui en résulte :
{ "Sid": "Allow grants", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::999999999999:role/roleA" }, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*" }, { "Sid": "Deny if grant is not for AWS resource", "Effect": "Deny", "Principal": { "AWS": "*" }, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*", "Condition": { "Bool": { "kms:GrantIsForAWSResource": "false" } } } } }
Pour les paramètres d'exécution permettant de créer cette politique avec la clé KMS Create change type, voir Créer une clé KMS
Imposer l'utilisation de clés contextuelles de chiffrement dans les opérations cryptographiques
Exemple de politique qui en résulte :
{ "Effect": "Deny", "Principal": { "AWS": "*" }, "Action": [ "kms:CreateGrant", "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKey*", "kms:ReEncrypt" ], "Resource": "*", "Condition": { "Null": { "kms:EncryptionContextKeys": "true" } } }
Pour les paramètres d'exécution permettant de créer cette politique avec la clé KMS Create change type, voir Créer une clé KMS
Appliquer une liste spécifique de clés contextuelles de chiffrement dans les opérations cryptographiques
Exemple de politique qui en résulte :
{ "Effect": "Deny", "Principal": { "AWS": "*" }, "Action": [ "kms:CreateGrant", "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKey*", "kms:ReEncrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContextKeys": [ "Name", "Application" ] } } }
Pour les paramètres d'exécution permettant de créer cette politique avec la clé KMS Create change type, voir Créer une clé KMS
Autoriser les services AWS à accéder à la clé CMK créée
Exemple de politique qui en résulte :
{ "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": [ "kms:ListGrants", "kms:CreateGrant", "kms:DescribeKey", "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": [ "ec2.us-west-2.amazonaws.com", "ecr.us-east-1.amazonaws.com" ], "kms:CallerAccount": "111122223333" } } }
Pour les paramètres d'exécution permettant de créer cette politique avec la clé KMS Create change type, voir Créer une clé KMS
Paramètres d'entrée d'exécution
Pour des informations détaillées sur les paramètres d'entrée d'exécution, consultezSchéma pour le type de modification ct-1d84keiri1jhg.
Exemple : paramètres obligatoires
{ "Description" : "Test description", "VpcId" : "vpc-12345678901234567", "Name" : "TestStack", "StackTemplateId" : "stm-enf1j068fhg34vugt", "TimeoutInMinutes" : 60, "Parameters" : { "Description" : "Test key" } }
Exemple : tous les paramètres
{ "Description" : "Test description", "VpcId" : "vpc-12345678", "Name" : "TestStack", "Tags" : [ { "Key" : "foo", "Value" : "bar" } ], "StackTemplateId" : "stm-enf1j068fhg34vugt", "TimeoutInMinutes" : 60, "Parameters" : { "Alias" : "testkey", "EnableKeyRotation" : "true", "Description" : "Test key", "PendingWindow" : 30, "IAMPrincipalsRequiringDecryptPermissions" : [ "arn:aws:iam::123456789012:user/myuser", "arn:aws:iam::123456789012:role/myrole" ], "IAMPrincipalsRequiringEncryptPermissions" : [ "arn:aws:iam::123456789012:user/myuser", "arn:aws:iam::123456789012:role/myrole" ], "IAMPrincipalsRequiringGrantsPermissions" : [ "arn:aws:iam::123456789012:user/myuser", "arn:aws:iam::123456789012:role/myrole", "987654321098" ], "LimitGrantsToAWSResources" : "true", "EnforceEncryptionContextKeys" : "true", "AllowedEncryptionContextKeys" : [ "App" ], "AllowServiceRolesAccessKMSKeys": [ "ec2.us-east-1.amazonaws.com" ] } }