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'instance IAM pour vos instances IAM pour vos instances IAM pour vos instances Amazon EC2
Note
Si vous utilisez la plateforme de calcul Amazon ECS ouAWS Lambda, passez cette étape. Les déploiements Amazon ECS déploient un service Amazon ECS et les déploiementsAWS Lambda déploient une version de fonction Lambda sans serveur. Il n'est donc pas nécessaire de créer un profil d'instance pour les instances Amazon EC2.
Vos instances Amazon EC2 doivent être autorisées à 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 expliquent comment créer un profil d'instance IAM à attacher à vos instances Amazon EC2. Ce rôle donne CodeDeploy l'autorisation d'accéder aux compartiments ou aux GitHub référentiels Amazon S3 dans lesquels vos applications sont stockées.
Vous pouvez créer un profil d'instance IAM à l'aide de la console IAM à l'aide de laAWS CLI console IAM pour la création d'un profil d'instance IAM à l'aide de la console IAM pour la
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 amples informations, consultez Profils d'instance.
Rubriques
Création d'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 Démarrer avec CodeDeploy.
-
Sur votre machine de développement, créez un fichier texte nommé
CodeDeployDemo-EC2-Trust.json
. Collez le contenu suivant pour permettre à Amazon EC2 de travailler pour vous :{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
-
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. Sinon, une erreur risque de se produire lors de l'installation ou de la mise à jour de l' CodeDeploy agent sur les instances. Pour autoriser le profil d'instance IAM à accéder uniquement à certains compartiments du kit de CodeDeploy ressources dans Amazon S3, appliquez la politique suivante, mais supprimez les lignes correspondant 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-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-southeast-4/*", "arn:aws:s3:::aws-codedeploy-ap-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 d'autres autorisations. Consultez Utiliser CodeDeploy avec Amazon Virtual Private Cloud pour plus d'informations.
-
À partir du même répertoire, appelez lacreate-role commande pour créer un rôle IAM nommé
CodeDeployDemo-EC2-Instance-Profile
, en fonction des informations du 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
-
À 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
-
Appelez leattach-role-policy pour accorder au rôle Amazon EC2 Systems Manager des autorisations afin que SSM puisse installer l' CodeDeploy agent. Cette politique n'est pas nécessaire si vous prévoyez d'installer l'agent à partir du compartiment Amazon S3 public à 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
-
Appelez lacreate-instance-profile commande, puis laadd-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 IAMCodeDeployDemo-EC2-Instance-Profile
à une instance 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 avez besoin du nom du profil d'instance IAM, consultez list-instance-profiles-for-role dans la section IAM de la AWS CLIRéférence.
Vous avez maintenant créé un profil d'instance IAM à attacher à vos instances IAM à attacher à vos instances Amazon EC2. Pour plus amples informations, consultez Rôles IAM pour Amazon EC2 dans le Guide de l'utilisateur Amazon EC2 dans le Guide de l'utilisateur Amazon EC2.
Création d'un profil d'instance IAM pour vos instances Amazon EC2 (console)
Connectez-vous à la AWS Management Console, puis ouvrez la console IAM à l'adresse https://console.aws.amazon.com/iam/
. -
Dans le panneau de navigation de la console IAM, choisissez Stratégies (Policies), puis Create policy (Créer une politique). (Si un bouton Mise en route est affiché, choisissez-le, puis choisissez Créer une stratégie.)
-
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 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. Sinon, une erreur risque de se produire lors de l'installation ou de la mise à jour de l' CodeDeploy agent sur les instances. Pour autoriser le profil d'instance IAM à accéder uniquement à certains compartiments du kit de CodeDeploy ressources dans Amazon S3, appliquez la politique suivante, mais supprimez les lignes correspondant 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-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-southeast-4/*", "arn:aws:s3:::aws-codedeploy-ap-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 d'autres autorisations. Consultez Utiliser CodeDeploy avec Amazon Virtual Private Cloud pour plus d'informations.
-
Choisissez Review policy (Examiner une politique).
-
Sur la page Créer une stratégie, tapez
CodeDeployDemo-EC2-Permissions
dans la zone Nom de la stratégie. -
(Facultatif) Dans le champ description, saisissez une description de la politique.
-
Choisissez Create Policy (Créer une politique).
Dans le volet de navigation, sélectionnez Rôles, puis Créer un rôle.
-
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.
-
Dans la liste Select your use case (Sélectionner votre cas d'utilisation), choisissez EC2.
Sélectionnez Next: Permissions (Étape suivante : autorisations).
-
Dans la liste des politiques, sélectionnez la case à cocher en regard de la politique que vous venez de créer (CodeDeployDemo-EC2-Permissions). Si nécessaire, utilisez la zone de recherche pour trouver la politique.
-
Pour installer ou configurer l'agent à l'aide de Systems Manager pour installer ou configurer l' CodeDeploy agent, cochez la case à côté d'AmazonSSMManagedInstanceCore. 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 à partir du compartiment Amazon S3 public à l'aide de la ligne de commande. En savoir plus sur l'installation de l'agent CodeDeploy.
-
Choisissez Next: Tags (Suivant : Balises).
-
Laissez la page Ajouter des balises (facultatif) inchangée, puis choisissez Suivant : Révision.
-
Sur la page Révision, 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 pour ce rôle de service dans Description du rôle.
Vous avez maintenant créé un profil d'instance IAM à attacher à vos instances IAM à attacher à vos instances Amazon EC2. Pour plus amples informations, consultez Rôles IAM pour Amazon EC2 dans le Guide de l'utilisateur Amazon EC2 dans le Guide de l'utilisateur Amazon EC2.