Passer au contenu

Comment résoudre les erreurs lorsque je copie des AMI entre différentes régions ou comptes ?

Lecture de 4 minute(s)
0

Je souhaite copier une Amazon Machine Image (AMI) d'une région AWS ou d'un compte AWS vers une autre région ou un autre compte. Cependant, je reçois des erreurs dans mon instance Amazon Elastic Compute Cloud (Amazon EC2).

Résolution

Pour copier une AMI entre les régions, configurez les autorisations pour l'AMI et ses composants, tels que les instantanés et les clés de chiffrement AWS Key Management Service (AWS KMS).

Résoudre les erreurs d'autorisations

Autorisations IAM manquantes

Si l'utilisateur ou le rôle Gestion des identités et des accès AWS (AWS IAM) ne dispose pas des autorisations requises, le message d'erreur suivant peut s'afficher :

« You are not authorized to perform this operation » (Vous n’êtes pas autorisé à effectuer cette opération)

Pour résoudre ce problème, assurez-vous que votre entité IAM dispose des autorisations requises.

Autorisations manquantes pour l'accès au stockage d’AMI

Si vous copiez une AMI partagée et que le compte de destination n'a pas accès aux instantanés associés, le message d'erreur suivant peut s'afficher :

« You do not have permission to access the storage of this AMI » (Vous n'êtes pas autorisé à accéder au stockage de cette AMI)

Pour résoudre ce problème, procédez comme suit :

  1. Pour partager l'AMI source, choisissez Modifier les autorisations de l'AMI.
  2. Sélectionnez Ajouter l'autorisation « Créer un volume » aux instantanés associés lors de la création des autorisations de compte.
  3. Partagez l'AMI source avec le compte de destination.
    Remarque : Si vous avez déjà partagé l'AMI, supprimez-la et partagez-la à nouveau du compte source vers la destination avec l'autorisation Créer un volume sélectionnée.

Résoudre les problèmes liés à l'AMI chiffrée et à la clé AWS KMS

Pour les AMI chiffrées, le compte de destination doit accéder à la clé AWS KMS source pour le déchiffrer pendant le processus de copie. Le compte de destination doit également utiliser la même clé ou avoir une clé correspondante dans la région de destination.

Pour configurer les autorisations pour les AMI chiffrées, autorisez le compte de destination à accéder à la clé KMS, puis créez une politique IAM pour l'accès à la clé.

Autoriser le compte de destination à accéder à la clé

Pour gérer les AMI chiffrées, effectuez les étapes suivantes dans le compte source :

  1. Ouvrez la console AWS KMS.
  2. Dans le volet de navigation, sélectionnez Clés gérées par le client.
  3. Sélectionnez la clé KMS que vous avez utilisée pour chiffrer l'AMI.
  4. Sous Stratégie de clé, pour Vue par défaut, choisissez Ajouter d'autres comptes AWS.
  5. Entrez l'identifiant du compte de destination.
  6. Sélectionnez Enregistrer les modifications.
  7. Dans Vue de stratégie, choisissez Modifier.
  8. Entrez la stratégie d'accès suivante :
            {
              "Sid": "Allow use of the key",
              "Effect": "Allow",
              "Principal": {"AWS": [
                "arn:aws:iam::[SOURCE_ACCOUNT_ID]:user/KeyUser",
                "arn:aws:iam::[TARGET_ACCOUNT_ID]:root"
              ]},
              "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::SOURCE_ACCOUNT_ID:user/KeyUser",
                "arn:aws:iam::DESTINATION_ACCOUNT_ID:root"  
              ]},
              "Action": [
                "kms:CreateGrant",
                "kms:ListGrants",
                "kms:RevokeGrant"
              ],
              "Resource": "*",
              "Condition": {"Bool": {"kms:GrantIsForAWSResource": true}}
            }
    Remarque : Remplacez SOURCE_ACCOUNT_ID par l’ID de votre compte source et DESTINATION_ACCOUNT_ID par l'ID de votre compte de destination.

Créer une politique IAM pour que le compte de destination ait accès à la clé

Créez une politique IAM dans le compte de destination.

Exemple de politique :

      {
          "Version": "2012-10-17",
          "Statement": [{
           "Sid": "AllowUseOfTheKey",
           "Effect": "Allow",
           "Action": ["kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey"],
           "Resource": ["KEY_ARN"]
      }, {
           "Sid": "AllowAttachmentOfPersistentResources",
           "Effect": "Allow",
           "Action": ["kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant"],
           "Resource": ["KEY_ARN"],
           "Condition": {
               "Bool": {
                   "kms:GrantIsForAWSResource": true
              }
           }
       }]
   }

Remarque : Remplacez KEY_ARN par l’Amazon Resource Name (ARN) de votre clé AWS KMS.

Puis, associez la politique aux utilisateurs ou aux rôles IAM qui ont besoin d’utiliser l'AMI chiffrée.

Informations connexes

Partager la clé KMS utilisée pour chiffrer un instantané Amazon EBS partagé

Pourquoi ne puis-je pas lancer d’instances EC2 à partir d’une AMI copiée ?

AWS OFFICIELA mis à jour il y a 10 mois