View a markdown version of this page

Configurer la distribution d'AMI entre comptes avec Image Builder - EC2 Image Builder

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.

Configurer la distribution d'AMI entre comptes avec Image Builder

Cette section explique comment configurer les paramètres de distribution pour fournir une AMI Image Builder aux autres comptes que vous spécifiez.

Le compte de destination peut ensuite lancer ou modifier l'AMI, selon les besoins.

Astuce

Pour plus d'informations sur un exemple déployable qui inclut la politique AWS KMS clé et le rôle du compte cible, consultez l'exemple d'AMI multicomptes sur. GitHub Le même référentiel inclut une variante Terraform. Pour de plus amples informations, veuillez consulter Découvrez des exemples de projets Image Builder sur GitHub.

Note

AWS CLI les exemples de commandes de cette section supposent que vous avez déjà créé des fichiers JSON de recette d'image et de configuration d'infrastructure. Pour créer le fichier JSON pour une recette d'image, consultezCréez une recette imagée à l'aide du AWS CLI. Pour créer le fichier JSON pour une configuration d'infrastructure, consultezCréer une configuration d'infrastructure.

Conditions requises pour la distribution d'AMI entre comptes

Pour vous assurer que les comptes cibles peuvent lancer des instances avec succès à partir de votre image Image Builder, vous devez configurer les autorisations appropriées pour tous les comptes de destination dans toutes les régions.

Si vous chiffrez votre AMI à l'aide de AWS Key Management Service (AWS KMS), vous devez configurer un AWS KMS key pour votre compte qui est utilisé pour chiffrer la nouvelle image.

Lorsqu'Image Builder effectue une distribution entre comptes pour les AMI chiffrées, l'image du compte source est déchiffrée et transmise à la région cible, où elle est rechiffrée à l'aide de la clé désignée pour cette région. Comme Image Builder agit pour le compte cible et utilise un rôle IAM que vous créez dans la région de destination, ce compte doit avoir accès aux clés des régions source et de destination.

Clés de chiffrement

Les conditions préalables suivantes sont requises si votre image est cryptée à l'aide AWS KMS de. Les prérequis IAM sont abordés dans la section suivante.

Exigences relatives au compte source
  • Créez une clé KMS dans votre compte dans toutes les régions où vous créez et distribuez votre AMI. Vous pouvez également utiliser une clé existante.

  • Mettez à jour la politique relative aux clés pour toutes ces clés afin de permettre aux comptes de destination d'utiliser votre clé.

Exigences relatives au compte de destination
  • Ajoutez une politique en ligne EC2ImageBuilderDistributionCrossAccountRole qui permet au rôle d'effectuer les actions requises pour distribuer une AMI chiffrée. Pour les étapes de configuration IAM, consultez la section politiques IAM Prérequis.

Pour plus d'informations sur l'utilisation de l'accès entre comptes AWS KMS, voir Autoriser les utilisateurs d'autres comptes à utiliser une clé KMS dans le Guide du AWS Key Management Service développeur.

Spécifiez votre clé de chiffrement dans la recette de l'image, comme suit :

  • Si vous utilisez la console Image Builder, choisissez votre clé de chiffrement dans la liste déroulante Chiffrement (alias KMS) de la section Stockage (volumes) de votre recette.

  • Si vous utilisez l'action d'CreateImageRecipeAPI ou la create-image-recipe commande contenue dans le AWS CLI, configurez votre clé dans la ebs section blockDeviceMappings ci-dessous de votre entrée JSON.

    L'extrait JSON suivant indique les paramètres de chiffrement d'une recette d'image. En plus de fournir votre clé de chiffrement, vous devez également définir le encrypted drapeau surtrue.

    { ... "blockDeviceMappings": [ { "deviceName": "Example root volume", "ebs": { "deleteOnTermination": true, "encrypted": true, "iops": 100, "kmsKeyId": "image-owner-key-id", ... }, ... }], ... }

politiques IAM

Pour configurer les autorisations de distribution entre comptes dans Gestion des identités et des accès AWS (IAM), procédez comme suit :

  1. Pour utiliser les AMI Image Builder distribuées entre les comptes, le propriétaire du compte de destination doit créer un nouveau rôle IAM dans son compte appeléEC2ImageBuilderDistributionCrossAccountRole.

  2. Ils doivent associer le Ec2ImageBuilderCrossAccountDistributionAccess policy au rôle pour permettre la distribution entre comptes. Pour plus d'informations sur les politiques gérées, voir Stratégies gérées et politiques intégrées dans le Guide de l'Gestion des identités et des accès AWS utilisateur.

  3. Vérifiez que l'ID du compte source est ajouté à la politique de confiance associée au rôle IAM du compte de destination. L'exemple suivant montre une politique de confiance dans le compte de destination qui spécifie l'ID du compte source.

    JSON
    { "Version":"2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::444455556666:root" }, "Action": "sts:AssumeRole" }] }

    Pour plus d'informations sur les politiques de confiance, consultez la section Resource-Based Politiques du Guide de Gestion des identités et des accès AWS l'utilisateur.

  4. Si l'AMI que vous distribuez est cryptée, le propriétaire du compte de destination doit ajouter la politique EC2ImageBuilderDistributionCrossAccountRole en ligne suivante à son compte afin de pouvoir utiliser vos clés KMS. La Principal section contient leur numéro de compte. Cela permet à Image Builder d'agir en leur nom lorsqu'il AWS KMS crypte et déchiffre l'AMI avec les clés appropriées pour chaque région.

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "AllowRoleToPerformKMSOperationsOnBehalfOfTheDestinationAccount", "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey", "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*" } ] }

    Pour plus d'informations sur les politiques intégrées, consultez la section Politiques intégrées dans le Guide de l'Gestion des identités et des accès AWS utilisateur.

  5. Si vous utilisez launchTemplateConfigurations pour spécifier un modèle de lancement Amazon EC2, vous devez également ajouter la politique suivante EC2ImageBuilderDistributionCrossAccountRole à votre compte de destination.

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:CreateLaunchTemplateVersion", "ec2:ModifyLaunchTemplate" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/CreatedBy": "EC2 Image Builder" } } }, { "Effect": "Allow", "Action": [ "ec2:DescribeLaunchTemplates" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": "arn:aws:ec2:*:*:launch-template/*", "Condition": { "StringEquals": { "aws:RequestTag/CreatedBy": "EC2 Image Builder" } } } ] }
  6. Si vous utilisez un AWS Systems Manager paramètre Parameter Store pour stocker l'ID AMI de l'AMI de sortie pour le compte de distribution et la région, vous devez ajouter la politique suivante EC2ImageBuilderDistributionCrossAccountRole à votre compte de destination.

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:PutParameter" ], "Resource": "arn:aws:ssm:*:111122223333:parameter/ImageBuilder-*" }, { "Effect": "Allow", "Action": [ "ec2:DescribeImages" ], "Resource": "*" } ] }

Limites applicables à la distribution entre comptes

La distribution d'images Image Builder sur plusieurs comptes est soumise à certaines limites :

  • Le compte de destination est limité à 50 copies AMI simultanées pour chaque région de destination.

  • Si vous souhaitez copier une AMI de virtualisation paravirtuelle (PV) vers une autre région, la région de destination doit prendre en charge les AMI de virtualisation PV. Pour plus d'informations, consultez Types de virtualisations AMI Linux.

  • Vous ne pouvez pas créer de copie non chiffrée d'un instantané chiffré. Si vous ne spécifiez pas de AWS Key Management Service (AWS KMS) clé gérée par le client pour le KmsKeyId paramètre, Image Builder utilise la clé par défaut pour Amazon Elastic Block Store (Amazon EBS). Pour de plus amples informations, veuillez consulter Chiffrement Amazon EBS dans le Guide de l'utilisateur Amazon Elastic Compute Cloud.

Pour plus d'informations, consultez CreateDistributionConfiguration la référence de l'API EC2 Image Builder.

Configurer la distribution entre comptes pour une AMI Image Builder depuis la console

Cette section explique comment créer et configurer les paramètres de distribution pour la distribution entre comptes de vos AMI Image Builder à l'aide du Console de gestion AWS. La configuration de la distribution entre comptes nécessite des autorisations IAM spécifiques. Vous devez remplir le Conditions requises pour la distribution d'AMI entre comptes formulaire pour cette section avant de continuer.

Pour créer des paramètres de distribution dans la console Image Builder, procédez comme suit :

  1. Ouvrez la console EC2 Image Builder à https://console.aws.amazon.com/imagebuilder/ l'adresse.

  2. Choisissez les paramètres de distribution dans le volet de navigation. Cela affiche une liste des paramètres de distribution créés sous votre compte.

  3. En haut de la page Paramètres de distribution, choisissez Créer des paramètres de distribution. Cela vous amène à la page Créer des paramètres de distribution.

  4. Dans la section Type d'image, choisissez Amazon Machine Image (AMI) comme type de sortie. Il s’agit du paramètre par défaut.

  5. Dans la section Général, entrez le nom de la ressource de paramètres de distribution que vous souhaitez créer (obligatoire).

  6. Dans la section Paramètres régionaux, entrez un identifiant de compte à 12 chiffres auquel vous souhaitez distribuer votre AMI dans les comptes Target de la région sélectionnée, puis appuyez sur Entrée. Cela vérifie le formatage correct, puis affiche l'identifiant de compte que vous avez saisi sous la case. Répétez le processus pour ajouter d'autres comptes.

    Pour supprimer un compte que vous avez saisi, choisissez le X affiché à droite de l'identifiant du compte.

    Entrez le nom de l'AMI de sortie pour chaque région.

  7. Continuez à spécifier les paramètres supplémentaires dont vous avez besoin, puis choisissez Créer des paramètres pour créer votre nouvelle ressource de paramètres de distribution.

Configurez la distribution entre comptes pour une AMI Image Builder à partir du AWS CLI

Cette section explique comment configurer un fichier de paramètres de distribution et utiliser la create-image commande du AWS CLI pour créer et distribuer une AMI Image Builder entre les comptes.

La configuration de la distribution entre comptes nécessite des autorisations IAM spécifiques. Vous devez compléter cette section avant d'exécuter la create-image commande. Conditions requises pour la distribution d'AMI entre comptes

  1. Configuration d'un fichier de paramètres de distribution

    Avant d'utiliser la create-image commande du AWS CLI pour créer une AMI Image Builder distribuée à un autre compte, vous devez créer une structure DistributionConfiguration JSON qui spécifie les ID de compte cible dans les AmiDistributionConfiguration paramètres. Vous devez en spécifier au moins un AmiDistributionConfiguration dans la région source.

    L'exemple de fichier suivant, intitulécreate-distribution-configuration.json, montre la configuration de la distribution d'images entre comptes dans la région source.

    { "name": "cross-account-distribution-example", "description": "Cross Account Distribution Configuration Example", "distributions": [ { "amiDistributionConfiguration": { "targetAccountIds": ["123456789012", "987654321098"], "name": "Name {{ imagebuilder:buildDate }}", "description": "ImageCopy Ami Copy Configuration" }, "region": "us-west-2" } ] }
  2. Création des paramètres de distribution

    Pour créer une ressource de paramètres de distribution d'Image Builder à l'aide de la commande create-distribution-configuration du AWS CLI, indiquez les paramètres suivants dans la commande :

    • Entrez le nom de la distribution dans le --name paramètre.

    • Joignez le fichier JSON de configuration de distribution que vous avez créé dans le --cli-input-json paramètre.

    aws imagebuilder create-distribution-configuration --name my distribution name --cli-input-json file://create-distribution-configuration.json
    Note
    • Vous devez inclure l'option file:// au début du chemin du fichier JSON.

    • Le chemin d'accès du fichier JSON doit suivre la convention appropriée pour le système d'exploitation de base sur lequel vous exécutez la commande. Par exemple, Windows utilise la barre oblique inverse (\) pour faire référence au chemin du répertoire, tandis que Linux et macOS utilisent la barre oblique (/).

Vous pouvez également fournir du JSON directement dans la commande, à l'aide du --distributions paramètre.