Étape 4 : créer un profil d'IAMinstance pour vos EC2 instances Amazon - 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 profil d'IAMinstance pour vos EC2 instances Amazon

Note

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

Vos EC2 instances Amazon 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 EC2 des instances Amazon compatibles avec CodeDeploy, vous devez créer un IAM rôle supplémentaire, un profil d'instance. Ces instructions vous montrent comment créer un profil d'IAMinstance à associer à vos EC2 instances Amazon. Ce rôle autorise l' CodeDeploy agent à 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'IAMinstance avec le AWS CLI, la IAM console ou le IAMAPIs.

Note

Vous pouvez associer un profil d'IAMinstance à une EC2 instance Amazon lorsque vous la lancez ou à une instance déjà lancée. Pour plus d'informations, consultez la section Profils d'instance.

Créez un profil d'IAMinstance pour vos EC2 instances Amazon (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 EC2 à Amazon 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 EC2 instances Amazon doivent accéder. Assurez-vous de donner accès aux compartiments Amazon S3 contenant 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'IAMinstance 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:::amzn-s3-demo-bucket/*", "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'IAMautorisation 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 IAM rôle 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 donner au rôle Amazon EC2 Systems Manager des autorisations afin qu'il SSM puisse installer l' CodeDeploy 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'IAMinstance nomméCodeDeployDemo-EC2-Instance-Profile. Le profil d'instance permet EC2 à Amazon de transmettre le IAM rôle nommé CodeDeployDemo-EC2-Instance-Profile à une EC2 instance Amazon 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'IAMinstance, consultez list-instance-profiles-for-role dans la IAM section de la AWS CLI référence.

Vous avez maintenant créé un profil d'IAMinstance à associer à vos EC2 instances Amazon. Pour plus d'informations, consultez IAMles rôles d'Amazon EC2 dans le guide de EC2 l'utilisateur Amazon.

Créez un profil d'IAMinstance pour vos EC2 instances Amazon (console)

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

  2. Dans le volet de navigation de la IAM console, choisissez Policies, puis Create policy.

  3. Sur la page Spécifier les autorisations, sélectionnez 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 EC2 instances Amazon doivent accéder. Assurez-vous de donner accès aux compartiments Amazon S3 contenant 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'IAMinstance 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:::amzn-s3-demo-bucket/*", "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'IAMautorisation 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. Choisissez Create Policy (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, sélectionnez le cas EC2d'utilisation.

  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é de mazonSSMManaged InstanceCore A. Cette politique AWS gérée permet à une instance d'utiliser les fonctionnalités principales 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'IAMinstance à associer à vos EC2 instances Amazon. Pour plus d'informations, consultez IAMles rôles d'Amazon EC2 dans le guide de EC2 l'utilisateur Amazon.