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.
Rubriques
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.
-
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" } ] }
-
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.
-
À 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
-
À 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 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
-
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)
Connectez-vous à la IAM console AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/iam/
. -
Dans le volet de navigation de la IAM console, choisissez Policies, puis Create policy.
-
Sur la page Spécifier les autorisations, sélectionnez JSON.
Supprimez l'exemple
JSON
de code.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.
-
Choisissez Suivant.
-
Sur la page Réviser et créer, dans la zone Nom de la politique, tapez
CodeDeployDemo-EC2-Permissions
. -
(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.
-
Sous Cas d'utilisation, sélectionnez le cas EC2d'utilisation.
Choisissez Suivant.
-
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.
-
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.
-
Choisissez Suivant.
-
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.