Étape 4 : Créer un rôle de profil d'instance IAM pour vos instances Amazon EC2 - 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.

Étape 4 : Créer un rôle de profil d'instance IAM pour vos instances Amazon EC2

Note

Si vous utilisez Amazon ECS ouAWSLambda plate-forme de calcul, ignorez cette étape. Les déploiements Amazon ECS déploient un service Amazon ECS etAWSLes déploiements Lambda déploient une version de fonction Lambda sans serveur, un profil d'instance n'est donc pas obligatoire pour les instances Amazon EC2.

Vos instances Amazon EC2 ont besoin d'une autorisation pour accéder aux compartiments Amazon S3 ou aux référentiels GitHub où les applications sont stockées. Pour lancer les instances Amazon EC2 qui sont compatibles avec CodeDeploy, vous devez créer un rôle IAM supplémentaire, unProfil d'instance. Ces instructions vous montrent comment créer un rôle de profil d'instance IAM à attacher à vos instances Amazon EC2. Ce rôle donne à CodeDeploy l'autorisation d'accéder aux compartiments Amazon S3 ou aux référentiels GitHub où vos applications sont stockées.

Vous pouvez créer un rôle de profil d'instance IAM avec l'AWS CLI, la console IAM ou les API IAM.

Note

Vous pouvez associer un profil d'instance IAM à une instance Amazon EC2 lorsque vous la lancez ou à une instance préalablement lancée. Pour de plus amples informations, veuillez consulterProfils d'instance.

Créer un rôle de profil d'instance IAM pour vos instances Amazon EC2 (CLI)

Dans ces étapes, nous supposons que vous avez déjà suivi les instructions fournies dans les trois premières étapes de Mise en route d'CodeDeploy.

  1. Sur votre machine de développement, créez un fichier texte nommé CodeDeployDemo-EC2-Trust.json. Collez le contenu suivant, qui permet à Amazon EC2 de travailler en votre nom :

    { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  2. Dans le même répertoire, créez un fichier texte nommé CodeDeployDemo-EC2-Permissions.json. Collez le contenu suivant :

    { "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "*" } ] }
    Note

    Nous vous recommandons de limiter cette stratégie aux seuls compartiments Amazon S3 auxquels vos instances Amazon EC2 doivent accéder. Assurez-vous de donner accès aux compartiments Amazon S3 qui contiennent l'agent CodeDeploy. Sinon, une erreur peut se produire lors de l'installation ou de la mise à jour de l'agent CodeDeploy sur les instances. Pour accorder au profil d'instance IAM l'accès à certains compartiments de kit de ressources CodeDeploy dans Amazon S3, utilisez la stratégie suivante, mais supprimez les lignes correspondant aux compartiments auxquels vous voulez empêcher l'accès :

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:Get*", "s3:List*" ], "Resource": [ "arn:aws:s3:::replace-with-your-s3-bucket-name/*", "arn:aws:s3:::aws-codedeploy-us-east-2/*", "arn:aws:s3:::aws-codedeploy-us-east-1/*", "arn:aws:s3:::aws-codedeploy-us-west-1/*", "arn:aws:s3:::aws-codedeploy-us-west-2/*", "arn:aws:s3:::aws-codedeploy-ca-central-1/*", "arn:aws:s3:::aws-codedeploy-eu-west-1/*", "arn:aws:s3:::aws-codedeploy-eu-west-2/*", "arn:aws:s3:::aws-codedeploy-eu-west-3/*", "arn:aws:s3:::aws-codedeploy-eu-central-1/*", "arn:aws:s3:::aws-codedeploy-ap-east-1/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-south-1/*", "arn:aws:s3:::aws-codedeploy-sa-east-1/*" ] } ] }
    Note

    Si vous voulez utiliserAutorisation IAMou Amazon Virtual Private Cloud (VPC) avec CodeDeploy, vous devez ajouter d'autres autorisations. VoirUtiliser CodeDeploy avec Amazon Virtual Private CloudPour plus d'informations, consultez.

  3. A partir du même répertoire, appelez lacreate-rolepour créer un rôle IAM nomméCodeDeployDemo-EC2-Instance-Profile, sur la base des informations figurant dans le premier fichier :

    Important

    N'oubliez pas d'inclure file:// devant le nom du fichier. Il est nécessaire dans cette commande.

    aws iam create-role --role-name CodeDeployDemo-EC2-Instance-Profile --assume-role-policy-document file://CodeDeployDemo-EC2-Trust.json
  4. À partir du même répertoire, appelez la commande put-role-policy pour donner au rôle nommé CodeDeployDemo-EC2-Instance-Profile les permissions basées sur les informations figurant dans le second fichier :

    Important

    N'oubliez pas d'inclure file:// devant le nom du fichier. Il est nécessaire dans cette commande.

    aws iam put-role-policy --role-name CodeDeployDemo-EC2-Instance-Profile --policy-name CodeDeployDemo-EC2-Permissions --policy-document file://CodeDeployDemo-EC2-Permissions.json
  5. Appelez laattach-role-policypour donner le rôle des autorisations Amazon EC2 Systems Manager afin que SSM puisse installer l'agent CodeDeploy. Cette stratégie n'est pas nécessaire si vous prévoyez d'installer l'agent à partir du compartiment Amazon S3 public avec la ligne de commande. En savoir plus surinstallation de l'agent CodeDeploy.

    aws iam attach-role-policy --policy-arn arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore --role-name CodeDeployDemo-EC2-Instance-Profile
  6. Appelez lacreate-instance-profilesuivie de la commandeadd-role-to-instance-profilepour créer un rôle de profil d'instance IAM nomméCodeDeployDemo-EC2-Instance-Profile. Le profil d'instance permet à Amazon EC2 de passer le rôle IAM nomméCodeDeployDemo-EC2-Instance-ProfileÀ une instance Amazon EC2 lorsque l'instance est lancée en premier :

    aws iam create-instance-profile --instance-profile-name CodeDeployDemo-EC2-Instance-Profile aws iam add-role-to-instance-profile --instance-profile-name CodeDeployDemo-EC2-Instance-Profile --role-name CodeDeployDemo-EC2-Instance-Profile

    Si vous avez besoin d'obtenir le nom du profil d'instance IAM, consultezlist-instance-profils-pour-rôledans la section IAM duAWS CLIRéférence.

Vous avez maintenant créé un rôle de profil d'instance IAM à attacher à vos instances Amazon EC2. Pour de plus amples informations, veuillez consulterRôles IAM pour Amazon EC2dans leGuide de l'utilisateur Amazon EC2.

Créer un rôle de profil d'instance IAM pour vos instances Amazon EC2 (console)

  1. Connectez-vous à AWS Management Console et ouvrez la console IAM à l’adresse https://console.aws.amazon.com/iam/.

  2. Dans la console IAM, dans le volet de navigation, choisissezStratégies, puis choisissezCréer une stratégie. (Si un bouton Mise en route est affiché, choisissez-le, puis choisissez Créer une stratégie.)

  3. Sur la page Créer une stratégie, collez le texte suivant dans l'onglet JSON :

    { "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "*" } ] }
    Note

    Nous vous recommandons de limiter cette stratégie aux seuls compartiments Amazon S3 auxquels vos instances Amazon EC2 doivent accéder. Assurez-vous de donner accès aux compartiments Amazon S3 qui contiennent l'agent CodeDeploy. Sinon, une erreur peut se produire lors de l'installation ou de la mise à jour de l'agent CodeDeploy sur les instances. Pour accorder au profil d'instance IAM l'accès à certains compartiments de kit de ressources CodeDeploy dans Amazon S3, utilisez la stratégie suivante, mais supprimez les lignes correspondant aux compartiments auxquels vous voulez empêcher l'accès :

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:Get*", "s3:List*" ], "Resource": [ "arn:aws:s3:::replace-with-your-s3-bucket-name/*", "arn:aws:s3:::aws-codedeploy-us-east-2/*", "arn:aws:s3:::aws-codedeploy-us-east-1/*", "arn:aws:s3:::aws-codedeploy-us-west-1/*", "arn:aws:s3:::aws-codedeploy-us-west-2/*", "arn:aws:s3:::aws-codedeploy-ca-central-1/*", "arn:aws:s3:::aws-codedeploy-eu-west-1/*", "arn:aws:s3:::aws-codedeploy-eu-west-2/*", "arn:aws:s3:::aws-codedeploy-eu-west-3/*", "arn:aws:s3:::aws-codedeploy-eu-central-1/*", "arn:aws:s3:::aws-codedeploy-ap-east-1/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-northeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-south-1/*", "arn:aws:s3:::aws-codedeploy-sa-east-1/*" ] } ] }
    Note

    Si vous voulez utiliserAutorisation IAMou Amazon Virtual Private Cloud (VPC) avec CodeDeploy, vous devez ajouter d'autres autorisations. VoirUtiliser CodeDeploy avec Amazon Virtual Private CloudPour plus d'informations, consultez.

  4. Choisissez Examiner une stratégie.

  5. Sur la page Créer une stratégie, tapez CodeDeployDemo-EC2-Permissions dans la zone Nom de la stratégie.

  6. (Facultatif) Dans le champ Description, saisissez une description pour la stratégie.

  7. Choisissez Create Policy (Créer une stratégie).

  8. Dans le volet de navigation, choisissez Rôles, puis Créer un rôle.

  9. Sur la page Créer un rôle, sélectionnez Service AWS, puis dans la liste Choisir le service qui utilisera ce rôle, sélectionnez EC2.

  10. Dans la liste Select your use case (Sélectionner votre cas d'utilisation), choisissez EC2.

  11. Choisissez Next (Suivant) Permissions (Autorisations).

  12. Dans la liste des stratégies, sélectionnez la case à cocher en regard de la stratégie que vous venez de créer (CodeDeployDemo-EC2-Permissions). Si nécessaire, utilisez la zone de recherche pour trouver la stratégie.

  13. Pour utiliser Systems Manager afin d'installer ou de configurer l'agent CodeDeploy, cochez la case située en regard de AmazonSSMManagedInstanceCore. Cette stratégie gérée AWS permet à une instance d'utiliser les fonctions de base du service Systems Manager. Si nécessaire, utilisez la zone de recherche pour trouver la stratégie. Cette stratégie n'est pas nécessaire si vous prévoyez d'installer l'agent à partir du compartiment Amazon S3 public avec la ligne de commande. En savoir plus surinstallation de l'agent CodeDeploy.

  14. Choisissez Next (Suivant) Balises

  15. Laissez laAjouter des balises (facultatif)inchangée, puis choisissezSuivant: Review (Examiner).

  16. Dans la pageVérification, dansNom de rôleSaisissez un nom pour le rôle de service (par exemple,CodeDeployDemo-EC2-Instance-Profile), puis choisissezCréer un rôle.

    Vous pouvez également saisir une description pour ce rôle de service dansDescription du rôle.

Vous avez maintenant créé un rôle de profil d'instance IAM à attacher à vos instances Amazon EC2. Pour de plus amples informations, veuillez consulterRôles IAM pour Amazon EC2dans leGuide de l'utilisateur Amazon EC2.