AWS CodeDeploy
Guide de l'utilisateur (Version de l'API 2014-10-06)

Étape 4 : Création d'un profil d'instance IAM pour vos instances Amazon EC2

Note

Ignorez cette étape si vous utilisez la Amazon ECS la AWS Lambda ou la plateforme de calcul. Les déploiements de la Amazon ECS déploient un service Amazon ECS et les déploiements de la AWS 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, un profil d'instance. Ces instructions vous montrent comment créer un profil d'instance IAM pour l'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 profil d'instance IAM avec l'interface 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 plus d'informations, consultez la rubrique Profils d'instance.

Création d'un profil d'instance IAM pour vos instances Amazon EC2 (interface 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 sur 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 d'opérer pour votre compte :

    { "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 uniquement aux compartiments Amazon S3 auxquels vos instances Amazon EC2 doivent accéder. N'oubliez pas d'accorder l'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 n'accorder l'accès au profil d'instance IAM qu'à certains compartiments des kits de ressources CodeDeploy dans Amazon S3, utilisez la stratégie suivante, mais supprimez les lignes des compartiments auxquels vous voulez empêcher d'accéder :

    { "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/*" ] } ] }
  3. Dans le même répertoire, appelez la commande create-role pour créer un rôle IAM nommé CodeDeployDemo-EC2-Instance-Profile sur la base des informations figurant dans le premier fichier :

    Important

    Be sure to include file:// before the file name. It is required in this command.

    aws iam create-role --role-name CodeDeployDemo-EC2-Instance-Profile --assume-role-policy-document file://CodeDeployDemo-EC2-Trust.json
  4. Dans le 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

    Be sure to include file:// before the file name. It is required in this command.

    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 la commande create-instance-profile suivie par la commande add-role-to-instance-profile pour créer un profil d'instance IAM nommé CodeDeployDemo-EC2-Instance-Profile. Le profil d'instance permet à Amazon EC2 de transmettre 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

    Pour obtenir le nom du profil d'instance IAM, veuillez consulter le list-instance-profiles-for-role dans la section IAM de la référence AWS CLI.

Vous avez maintenant créé un profil d'instance IAM à attacher à vos instances Amazon EC2. Pour plus d'informations, consultez la rubrique Rôles IAM pour Amazon EC2 dans le Guide de l'utilisateur Amazon EC2.

Création d'un profil d'instance IAM pour vos instances Amazon EC2 (console)

  1. Connectez-vous à la 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, choisissez Stratégies, puis Créer une stratégie. (Si un bouton Mise en route est affiché, choisissez-le, puis choisissez Create Policy.)

  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 uniquement aux compartiments Amazon S3 auxquels vos instances Amazon EC2 doivent accéder. N'oubliez pas d'accorder l'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 n'accorder l'accès au profil d'instance IAM qu'à certains compartiments des kits de ressources CodeDeploy dans Amazon S3, utilisez la stratégie suivante, mais supprimez les lignes des compartiments auxquels vous voulez empêcher d'accéder :

    { "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/*" ] } ] }
  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 Créer une stratégie.

  8. Dans le volet de navigation, choisissez Roles, puis Create role.

  9. Sur la page Create role (Créer un rôle), choisissez AWS service (Service AWS), puis dans la liste Choose the service that will use this role (Choisir le service qui utilisera ce rôle), choisissez EC2.

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

  11. Choisissez Next: Permissions.

  12. Sur la page Attach permissions policy (Attacher la stratégie d'autorisations), choisissez la stratégie que vous venez de créer, puis choisissez Next: Review (Suivant : Révision). Si vous avez utilisé le nom suggéré, il s'agit de CodeDeployDemo-EC2-Permissions.

  13. Sur la page Add tags (optional) (Ajouter des balises (facultatif)), choisissez Next: Review (Suivant : Vérifier).

  14. Sur la page Vérification, dans le champ Nom du rôle, attribuez un nom au rôle de service, par exemple CodeDeployDemo-EC2-Instance-Profile), and then choose Create role.

    Vous pouvez également saisir une description pour ce rôle de service dans la zone Description du rôle.

Vous avez maintenant créé un profil d'instance IAM à attacher à vos instances Amazon EC2. Pour plus d'informations, consultez la rubrique Rôles IAM pour Amazon EC2 dans le Guide de l'utilisateur Amazon EC2.