Pourquoi ne puis-je pas lancer d'instances EC2 à partir de mon AMI copiée ?

Date de la dernière mise à jour : 10/09/2020

J'ai copié mon Amazon Machine Image (AMI) dans un autre compte ou région. Malheureusement, je n'arrive plus lancer des instances Amazon Elastic Compute Cloud (Amazon EC2) à partir de l'AMI copiée. Comment puis-je résoudre ce problème ?

Brève description

Il se peut que vous ne puissiez pas lancer d'instances à partir d'une AMI copiée avec un Amazon Elastic Block Store (Amazon EBS) chiffré pour les raisons suivantes :

  • Il manque à la stratégie de clé gérée par le client (CMK) d'AWS Key Management Service (KMS) les mandataires appropriés pour autoriser l'accès au compte demandeur.
  • L'entité AWS Identity and Access Management (IAM) dans le compte demandeur ne dispose pas des autorisations KMS nécessaires pour le CMK entre comptes du volume.

Résolution

Activer l'accès entre comptes aux clés personnalisées KMS existantes sur l'AMI copiée

Pour obtenir des instructions détaillées, consultez Comment activer l'accès entre comptes aux clés personnalisées existantes dans Partager les clés de chiffrement personnalisées de manière plus sécurisée entre les comptes à l'aide d'AWS Key Management Service.

Définir des autorisations pour que les instances EC2 accèdent à la clé KMS

1.    Ouvrez la console AWS KMS.

Remarque : assurez-vous d'être dans la bonne région.

2.    Choisissez Clés gérées par le client, puis sélectionnez la clé appropriée.

3.    Sous l'onglet Stratégie de clé, faites défiler l'écran jusqu'à la section Utilisateurs de clé. Vérifiez que la section Utilisateurs de clé répertorie tous les comptes internes et externes, ainsi que les utilisateurs qui ont besoin d'accéder à la clé.

4.    Si des comptes ou des utilisateurs sont manquants dans la section Utilisateurs de clé, sélectionnez Vue de stratégie.

Remarque : si vous avez déjà modifié manuellement la stratégie de clé CMK AWS KMS, celle-ci sera seulement disponible dans la vue Stratégies (JSON).

5.    Vérifiez que l'instruction Autoriser l'utilisation de la clé dans la stratégie de clé est correcte. L'énoncé doit inclure l'ARN de tous les comptes et utilisateurs qui ont besoin d'accéder à la clé.

Voici un exemple de l'instruction Autoriser l'utilisation de la clé dans la stratégie de clé par défaut. L'instruction Autoriser l'utilisation de la clé dans l'exemple suivant inclut les ARN suivants :

  • Compte AWS externe contenant l'AMI copiée.
  • Compte parent de l'AMI.
  • Un utilisateur dans le compte externe.

Pour obtenir un aperçu et un exemple de la stratégie de clé par défaut complète, consultez Utilisation des politiques de clés dans AWS KMS - Politique de clés par défaut.

{
             "Sid": "Allow use of the key",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111122223333:root",
                    "arn:aws:iam::444455556666:root",
                    "arn:aws:iam::111122223333:user/UserA"
                ]
            },
            "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:ReEncrypt*",
                "kms:GenerateDataKey*",
                "kms:DescribeKey"
            ],
            "Resource": "*"
        },
        {
            "Sid": "Allow attachment of persistent resources",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111122223333:root",
                    "arn:aws:iam::444455556666:root",
                    "arn:aws:iam::111122223333:user/UserA"
                ]
            },
            "Action": [
                "kms:CreateGrant",
                "kms:ListGrants",
                "kms:RevokeGrant"
            ],
            "Resource": "*",
            "Condition": {
                "Bool": {
                    "kms:GrantIsForAWSResource": "true"
                }
            }
        }
    ]
}
   

6.    Si vous n'avez pas encore créé la stratégie IAM, passez à la section suivante pour créer et attribuer la stratégie.

Créer la stratégie IAM, puis l'attribuer à votre utilisateur ou groupe IAM

1.    Connectez-vous à la console IAM avec votre utilisateur disposant des autorisations d'administrateur.

2.    Choisissez Stratégies.

3.    Choisissez Create policy (Créer une stratégie).

4.    Sélectionnez l'onglet JSON. Copiez l'exemple de stratégie JSON suivant, puis collez-le dans la zone de texte JSON. Remplacez arn:aws:kms:REGION:MAINACCOUNTNUMBER:key/1a345678-1234-1234-1234-EXAMPLE par l'ARN de votre clé CMK.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowUseOfTheKey",
            "Effect": "Allow",
            "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:ReEncrypt*",
                "kms:GenerateDataKey*",
                "kms:DescribeKey"
            ],
            "Resource": [
                "arn:aws:kms:REGION:MAINACCOUNTNUMBER:key/1a345678-1234-1234-1234-EXAMPLE"
            ]
        },
        {
            "Sid": "AllowAttachmentOfPersistentResources",
            "Effect": "Allow",
            "Action": [
                "kms:CreateGrant",
                "kms:ListGrants",
                "kms:RevokeGrant"
            ],
            "Resource": [
                "arn:aws:kms:REGION:MAINACCOUNTNUMBER:key/1a345678-1234-1234-1234-EXAMPLE"
            ],
            "Condition": {
                "Bool": {
                    "kms:GrantIsForAWSResource": true
                }
            }
        }
    ]
}

5.    Choisissez Examiner une stratégie. Le programme de validation de stratégies signale toutes les erreurs de syntaxe.

6.    Sur la page Vérifier, saisissez KmsKeyUsagePolicy comme nom de stratégie. Passez en revue le Récapitulatif de la stratégie pour voir les autorisations accordées, puis choisissez Créer une stratégie pour enregistrer la stratégie. La nouvelle stratégie apparaît dans la liste des stratégies gérées et est prête à être attachée à votre utilisateur ou groupe IAM.

7.    Dans le volet de navigation de la console IAM, choisissez Stratégies.

8.    En haut de la liste des stratégies, dans la zone de recherche, commencez à taper KmsKeyUsagePolicy jusqu'à ce que la stratégie apparaisse. Ensuite, cochez la case en regard de KmsKeyUsagePolicy dans la liste.

9.    Sélectionnez Actions de stratégie, puis Attacher.

10.    Pour Filtre, choisissez Utilisateurs.

11.    Dans la zone de recherche, commencez à taper le nom d'utilisateur jusqu'à ce que votre utilisateur soit visible dans la liste. Ensuite, cochez la case en regard de cet utilisateur dans la liste.

12.    Choisissez Attacher une stratégie.