Étape 4 : Création d'un 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éation d'un profil d'instance IAM pour vos instances Amazon EC2

Note

Si vous utilisez la plateforme de calcul Amazon ECS ou AWS Lambda, ignorez cette étape.

Vos instances Amazon EC2 ont besoin d'une autorisation pour accéder aux compartiments ou aux GitHub référentiels Amazon S3 dans lesquels les applications sont stockées. Pour lancer des instances Amazon EC2 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 à associer à vos instances Amazon EC2. Ce rôle donne à l' CodeDeploy agent l'autorisation d'accéder aux compartiments ou aux GitHub référentiels Amazon S3 où sont stockées vos applications.

Vous pouvez créer un profil d'instance IAM à l'AWS CLIaide de la console IAM ou des API IAM.

Note

Vous pouvez attacher 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 section Profils d'instance.

Créez un 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 Commencer avec 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 politique 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' CodeDeploy agent. Dans le cas contraire, une erreur peut se produire lors de l'installation ou de la mise à jour de l' CodeDeploy agent sur les instances. Pour accorder au profil d'instance IAM l'accès à certains compartiments du kit de CodeDeploy ressources uniquement dans Amazon S3, appliquez la politique suivante, mais supprimez les lignes relatives aux compartiments auxquels vous souhaitez 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-eu-central-2/*", "arn:aws:s3:::aws-codedeploy-eu-north-1/*", "arn:aws:s3:::aws-codedeploy-eu-south-1/*", "arn:aws:s3:::aws-codedeploy-eu-south-2/*", "arn:aws:s3:::aws-codedeploy-il-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-northeast-3/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-3/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-4/*", "arn:aws:s3:::aws-codedeploy-ap-south-1/*", "arn:aws:s3:::aws-codedeploy-ap-south-2/*", "arn:aws:s3:::aws-codedeploy-me-central-1/*", "arn:aws:s3:::aws-codedeploy-me-south-1/*", "arn:aws:s3:::aws-codedeploy-sa-east-1/*" ] } ] }
    Note

    Si vous souhaitez utiliser l'autorisation IAM ou les points de terminaison Amazon Virtual Private Cloud (VPC) avec CodeDeploy, vous devez ajouter des autorisations supplémentaires. Consultez Utiliser CodeDeploy avec Amazon Virtual Private Cloud pour plus d'informations.

  3. À partir du même répertoire, appelez la create-role commande pour créer un rôle IAM nomméCodeDeployDemo-EC2-Instance-Profile, en fonction des informations contenues 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 le attach-role-policy pour accorder au rôle Amazon EC2 Systems Manager des autorisations afin que SSM puisse installer CodeDeploy l'agent. Cette politique n'est pas nécessaire si vous prévoyez d'installer l'agent depuis le compartiment public Amazon S3 à l'aide de la ligne de commande. En savoir plus sur l'installation 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 la create-instance-profile commande suivie de la add-role-to-instance-profile commande 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 celle-ci est lancée pour la première fois :

    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 du nom du profil d'instance IAM, consultez 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 à associer à vos instances Amazon EC2. Pour plus d'informations, consultez la section 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 à l’outil AWS Management Console, puis ouvrez la console IAM à l'adresse https://console.aws.amazon.com/iam/.

  2. Dans le volet de navigation de la console IAM, sélectionnez Policies, puis Create policy.

  3. Sur la page Spécifier les autorisations, choisissez JSON.

  4. Supprimez l'exemple JSON de code.

  5. Collez le code suivant :

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

    Nous vous recommandons de limiter cette politique 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' CodeDeploy agent. Dans le cas contraire, une erreur peut se produire lors de l'installation ou de la mise à jour de l' CodeDeploy agent sur les instances. Pour accorder au profil d'instance IAM l'accès à certains compartiments du kit de CodeDeploy ressources uniquement dans Amazon S3, appliquez la politique suivante, mais supprimez les lignes relatives aux compartiments auxquels vous souhaitez 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-eu-central-2/*", "arn:aws:s3:::aws-codedeploy-eu-north-1/*", "arn:aws:s3:::aws-codedeploy-eu-south-1/*", "arn:aws:s3:::aws-codedeploy-eu-south-2/*", "arn:aws:s3:::aws-codedeploy-il-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-northeast-3/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-1/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-2/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-3/*", "arn:aws:s3:::aws-codedeploy-ap-southeast-4/*", "arn:aws:s3:::aws-codedeploy-ap-south-1/*", "arn:aws:s3:::aws-codedeploy-ap-south-2/*", "arn:aws:s3:::aws-codedeploy-me-central-1/*", "arn:aws:s3:::aws-codedeploy-me-south-1/*", "arn:aws:s3:::aws-codedeploy-sa-east-1/*" ] } ] }
    Note

    Si vous souhaitez utiliser l'autorisation IAM ou les points de terminaison Amazon Virtual Private Cloud (VPC) avec CodeDeploy, vous devez ajouter des autorisations supplémentaires. Consultez Utiliser CodeDeploy avec Amazon Virtual Private Cloud pour plus d'informations.

  6. Choisissez Suivant.

  7. Sur la page Réviser et créer, dans la zone Nom de la politique, tapezCodeDeployDemo-EC2-Permissions.

  8. (Facultatif) Dans le champ description, saisissez une description de la politique.

  9. Sélectionnez Créer une politique.

  10. Dans le volet de navigation, sélectionnez Rôles, puis Créer un rôle.

  11. Sous Cas d'utilisation, choisissez le cas d'utilisation EC2.

  12. Choisissez Suivant.

  13. Dans la liste des politiques, cochez la case à côté de la politique que vous venez de créer (CodeDeployDemo-EC2-Permissions). Si nécessaire, utilisez la zone de recherche pour trouver la politique.

  14. Pour utiliser Systems Manager afin d'installer ou de configurer l' CodeDeploy agent, cochez la case à côté d'AmazonSSM ManagedInstanceCore. Cette politique 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 politique. Cette politique n'est pas nécessaire si vous prévoyez d'installer l'agent depuis le compartiment public Amazon S3 à l'aide de la ligne de commande. En savoir plus sur l'installation de l'agent CodeDeploy.

  15. Choisissez Suivant.

  16. Sur la page Nom, révision et création, dans Nom du rôle, entrez le nom du rôle de service (par exemple,CodeDeployDemo-EC2-Instance-Profile), puis choisissez Créer un rôle.

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

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