Déployer une application dans un autre AWS compte - AWS CodeDeploy

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.

Déployer une application dans un autre AWS compte

Organisations disposent généralement de plusieurs AWS comptes qu'elles utilisent à des fins différentes (par exemple, un pour les tâches d'administration système et un autre pour les tâches de développement, de test et de production, ou un associé aux environnements de développement et de test et un autre associé à l'environnement de production).

Bien que vous puissiez effectuer des tâches connexes dans différents comptes, les groupes de CodeDeploy déploiement et les instances Amazon EC2 sur lesquelles ils sont déployés sont strictement liés aux comptes sous lesquels ils ont été créés. Vous ne pouvez pas, par exemple, ajouter une instance que vous avez lancée dans un compte à un groupe de déploiement dans un autre.

Supposons que vous ayez deux AWS comptes : votre compte de développement et votre compte de production. Vous travaillez principalement dans le compte de développement, mais vous souhaitez être capable de lancer des déploiements dans votre compte de production sans un ensemble complet d’informations d’identification ou sans avoir à vous déconnecter du compte de développement pour vous connecter au compte de production.

Après avoir suivi les étapes de configuration entre comptes, vous pouvez lancer des déploiements appartenant à un autre compte de votre organisation, sans avoir besoin d’un ensemble complet d’informations d’identification pour cet autre compte. Pour ce faire, vous utilisez en partie une fonctionnalité fournie par le AWS Security Token Service (AWS STS) qui vous accorde un accès temporaire à ce compte.

Étape 1 : créer un compartiment S3 dans l'un ou l'autre des comptes

Dans le compte de développement ou le compte de production :

  • Si ce n'est pas déjà fait, créez un compartiment Amazon S3 dans lequel les révisions de l'application pour le compte de production seront stockées. Pour plus d'informations, consultez Créer un compartiment dans Amazon S3. Vous pouvez même utiliser les mêmes révisions d'application et compartiment pour les deux comptes, en déployant les mêmes fichiers dans votre environnement de production que vous avez testés et vérifiés dans votre compte de développement.

Étape 2 : accorder des autorisations de compartiment Amazon S3 au profil d'instance IAM du compte de production

Si le compartiment Amazon S3 que vous avez créé à l'étape 1 se trouve dans votre compte de production, cette étape n'est pas obligatoire. Le rôle que vous assumerez plus tard aura déjà accès à ce compartiment, car il figure également dans le compte de production.

Si vous avez créé le compartiment Amazon S3 dans le compte de développement, procédez comme suit :

  • Dans le compte de production, créez un profil d'instance IAM. Pour plus d’informations, veuillez consulter Étape 4 : Création d'un profil d'instance IAM pour vos instances Amazon EC2.

    Note

    Notez l'ARN de ce profil d'instance IAM. Vous devez l'ajouter à la stratégie entre compartiments que vous créez ensuite.

  • Dans le compte de développement, donnez accès au bucket Amazon S3 que vous avez créé dans le compte de développement au profil d'instance IAM que vous venez de créer dans votre compte de production. Pour plus d'informations, voir Exemple 2 : le propriétaire du bucket accorde des autorisations de bucket entre comptes.

    Notez les éléments suivants lorsque vous terminez le processus d’octroi des autorisations de compartiment entre comptes :

    • Dans cet exemple de procédure, le compte A représente votre compte de développement et le compte B représente votre compte de production.

    • Lorsque vous effectuez les tâches du compte A (compte de développement), modifiez la stratégie de compartiment suivante pour accorder des autorisations entre comptes au lieu d'utiliser l'exemple de stratégie fourni dans la procédure pas à pas.

      { "Version": "2012-10-17", "Statement": [ { "Sid": "Cross-account permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-id:role/role-name" }, "Action": [ "s3:Get*", "s3:List*" ], "Resource": [ "arn:aws:s3:::bucket-name/*" ] } ] }

      account-id représente le numéro de compte du compte de production sur lequel vous venez de créer le profil d'instance IAM.

      role-name représente le nom du profil d'instance IAM que vous venez de créer.

      nom-compartiment représente le nom du compartiment que vous avez créé à l'étape 1. N’oubliez pas d’inclure /* après le nom de votre compartiment pour accorder l’accès à chacun des fichiers à l’intérieur du compartiment.

Étape 3 : créer des ressources et un rôle multicompte dans le compte de production

Dans votre compte de production :

  • Créez vos CodeDeploy ressources (application, groupe de déploiement, configuration de déploiement, instances Amazon EC2, profil d'instance Amazon EC2, rôle de service, etc.) en suivant les instructions de ce guide.

  • Créez un rôle supplémentaire, un rôle IAM entre comptes, qu'un utilisateur de votre compte de développement peut assumer pour effectuer CodeDeploy des opérations dans ce compte de production.

    Utilisez la procédure pas à pas : déléguez l'accès entre les AWS comptes à l'aide des rôles IAM comme guide pour vous aider à créer le rôle entre comptes. Au lieu d'ajouter les exemples d'autorisations dans la procédure pas à pas à votre document de politique, vous devez associer, au minimum, les deux politiques AWS fournies suivantes au rôle :

    • AmazonS3FullAccess : requise uniquement si le compartiment S3 figure dans le compte de développement. Fournit au rôle de compte de production assumé un accès complet aux services et ressources Amazon S3 dans le compte de développement, où la révision est stockée.

    • AWSCodeDeployDeployerAccess: Permet à un utilisateur d'enregistrer et de déployer des révisions.

    Si vous souhaitez créer et gérer des groupes de déploiement et non pas seulement initier des déploiements, ajoutez la stratégie AWSCodeDeployFullAccess à la place de la stratégie AWSCodeDeployDeployerAccess. Pour plus d'informations sur l'utilisation des politiques gérées par IAM pour accorder des autorisations pour les CodeDeploy tâches, consultezAWS politiques gérées (prédéfinies) pour CodeDeploy.

    Vous pouvez attacher des stratégies supplémentaires si vous souhaitez effectuer des tâches dans d'autres services AWS tout en utilisant ce rôle entre comptes.

Important

Lorsque vous créez le rôle IAM entre comptes, notez les informations dont vous aurez besoin pour accéder au compte de production.

Pour utiliser le AWS Management Console pour changer de rôle, vous devez fournir l'un des éléments suivants :

  • Une URL pour accéder au compte de production avec les informations d’identification du rôle assumé. Vous trouverez cette URL sur la page Révision, qui s'affiche à la fin du processus de création de rôle entre comptes.

  • Le nom du rôle entre comptes et l'alias ou l'ID du compte.

Pour utiliser le AWS CLI pour changer de rôle, vous devez fournir les éléments suivants :

  • Le nom ARN du rôle entre comptes que vous allez assumer.

Étape 4 : télécharger la révision de l'application dans le compartiment Amazon S3

Dans le compte dans lequel vous avez créé le compartiment Amazon S3 :

Étape 5 : assumer le rôle multi-comptes et déployer des applications

Dans le compte de développement, vous pouvez utiliser le AWS CLI ou le AWS Management Console pour assumer le rôle entre comptes et lancer le déploiement dans le compte de production.

Pour savoir comment utiliser le AWS Management Console pour changer de rôle et lancer des déploiements, voir Basculer vers un rôle (AWS Management Console) etCréation d'un déploiement de plate-forme de calcul EC2/sur site (console).

Pour savoir comment utiliser le AWS CLI pour assumer le rôle entre comptes et lancer des déploiements, voir Passer à un rôle IAM ()AWS Command Line Interface et. Création d'un déploiement de plate-forme de calcul EC2/sur site (CLI)

Pour plus d'informations sur l'attribution d'un rôle AWS STS, consultez AssumeRolele guide de l'AWS Security Token Service utilisateur et assume-role dans le manuel de référence des AWS CLI commandes.

Voir aussi :