Étape 4. Créez un profil d’instance IAM pour votre Amazon EC2 instances - AWS CodeDeploy

Étape 4. Créez un profil d’instance IAM pour votre Amazon EC2 instances

Note

Si vous utilisez le Amazon ECS ou AWS Lambda plateforme de calcul , ignorez cette étape. Amazon ECS déploiement déploient un Amazon ECS service, et AWS Lambda déploiement déploient un serveur sans serveur Lambda version de fonction, donc un profil d’instance pour Amazon EC2 instances n’est pas nécessaire.

Votre Amazon EC2 les instances ont besoin d’autorisation pour accéder au Amazon S3 les godets ou les référentiels de github où les applications sont stockées. Lancement Amazon EC2 des instances compatibles avec CodeDeploy, vous devez créer un IAM rôle, un profil d’instance. Ces instructions vous montrent comment créer un IAM profil d’instance à joindre à votre Amazon EC2 instances. Ce rôle donne CodeDeploy autorisation d’accéder au Amazon S3 les godets ou les référentiels de github où vos applications sont stockées.

Vous pouvez créer un IAM profil d’instance avec AWS CLI, le IAM console ou IAM.

Note

Vous pouvez joindre un IAM profil d’instance à un Amazon EC2 par exemple lorsque vous lancez ou vers une instance précédemment lancée. Pour plus d’informations, voir Profils d’instance.

Créer un IAM profil d’instance pour votre Amazon EC2 instances (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 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 pour 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. Coller 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/*" ] } ] }
    Note

    Si vous souhaitez utiliser IAM autorisation ou Amazon Virtual Private Cloud (VPC) avec CodeDeploy, vous devrez ajouter d’autres autorisations. Voir Utiliser CodeDeploy avec Amazon Virtual Private Cloud pour plus d’informations.

  3. Dans le même répertoire, appelez le create-role commande pour créer un IAM rôle nommé CodeDeployDemo-EC2-Instance-Profile, basé sur les informations du premier fichier :

    Important

    N'oubliez pas d'inclure file:// avant 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. Dans le même répertoire, appelez le put-role-policy commande pour donner le rôle nommé CodeDeployDemo-EC2-Instance-Profile les autorisations basées sur les informations du deuxième fichier :

    Important

    N'oubliez pas d'inclure file:// avant 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 le rôle Amazon EC2 Systems Manager autorisations pour que SSM peut installer le 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 sur installation du CodeDeploy agent.

    aws iam attach-role-policy --policy-arn arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore --role-name CodeDeployDemo-EC2-Instance-Profile
  6. Appelez le create-instance-profile commande suivie du add-role-to-instance-profile commande pour créer un IAM profil d’instance nommé CodeDeployDemo-EC2-Instance-Profile. Le profil d’instance permet Amazon EC2 pour réussir IAM rôle nommé CodeDeployDemo-EC2-Instance-Profile à un Amazon EC2 lorsque l’instance 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 devez obtenir le nom du IAM profil d’instance, voir profils-d’instance-de-liste-pour-rôle dans le IAM section du AWS CLI Référence.

Vous avez créé un IAM profil d’instance à joindre à votre Amazon EC2 instances. Pour plus d’informations, voir IAM rôles pour Amazon EC2 dans le Amazon EC2 Guide de l’utilisateur.

Créer un IAM profil d’instance pour votre Amazon EC2 instances (console)

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

  2. Dans le IAM console, dans le volet de navigation, choisissez Politiques, puis choisissez Créer une politique. (Si un Commencer le bouton apparaît, sélectionnez-le, puis choisissez Créer une politique.)

  3. Sur le Créer une politique page, coller les éléments suivants dans le Json onglet :

    { "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/*" ] } ] }
    Note

    Si vous souhaitez utiliser IAM autorisation ou Amazon Virtual Private Cloud (VPC) avec CodeDeploy, vous devrez ajouter d’autres autorisations. Voir Utiliser CodeDeploy avec Amazon Virtual Private Cloud pour plus d’informations.

  4. Choisir Examiner la politique.

  5. Sur le Créer une politique page, type CodeDeployDemo-EC2-Permissions dans le Nom de la politique.

  6. (Facultatif) Pour Description, tapez une description pour la politique.

  7. Choisir Créer une politique.

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

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

  10. Du Sélectionnez votre cas d’utilisation liste, choisissez EC2.

  11. Choisissez Next: Permissions.

  12. Dans la liste des politiques, cochez la case en regard de la politique que vous venez de créer (codedéployationdémo-EC2-Permissions). (Si nécessaire, utilisez la zone de recherche pour trouver la stratégie.

  13. Pour utiliser System Manager pour installer ou configurer l’agent de déploiement de code, sélectionnez la case à côté de Instancecore d’amazoningmmanagement. 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 sur installation du CodeDeploy agent.

  14. Choisir Suivant :  : Balises

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

  16. 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 créé un IAM profil d’instance à joindre à votre Amazon EC2 instances. Pour plus d’informations, voir IAM rôles pour Amazon EC2 dans le Amazon EC2 Guide de l’utilisateur.