AWS politiques gérées (prédéfinies) pour CodeDeploy - 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.

AWS politiques gérées (prédéfinies) pour CodeDeploy

AWS répond à de nombreux cas d'utilisation courants en fournissant des IAM politiques autonomes créées et administrées par AWS. Ces politiques AWS gérées accordent des autorisations pour les cas d'utilisation courants afin que vous n'ayez pas à rechercher les autorisations requises. Pour plus d'informations, consultez les politiques AWS gérées dans le Guide de IAM l'utilisateur.

Liste des politiques AWS gérées pour CodeDeploy

Les politiques AWS gérées suivantes, que vous pouvez associer aux utilisateurs de votre compte, sont spécifiques à CodeDeploy :

  • AWSCodeDeployFullAccess : accorde un accès complet à CodeDeploy.

    Note

    AWSCodeDeployFullAccessne fournit pas d'autorisations pour les opérations dans d'autres services nécessaires au déploiement de vos applications, tels qu'Amazon EC2 et Amazon S3, uniquement pour les opérations spécifiques à CodeDeploy.

  • AWSCodeDeployDeployerAccess: accorde l'autorisation d'enregistrer et de déployer des révisions.

     

  • AWSCodeDeployReadOnlyAccess : accorde l'accès en lecture seule à CodeDeploy.

     

  • AWSCodeDeployRole: Permet CodeDeploy de :

    • lisez les tags de vos instances ou identifiez vos EC2 instances Amazon par les noms de groupes Amazon EC2 Auto Scaling

    • lire, créer, mettre à jour et supprimer des groupes Amazon EC2 Auto Scaling, des hooks de cycle de vie, des politiques de dimensionnement et des fonctionnalités de warm pool

    • publier des informations sur des SNS sujets Amazon

    • récupérer des informations sur les CloudWatch alarmes Amazon

    • lire et mettre à jour les ressources du service Elastic Load Balancing

    La politique contient le code suivant :

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "autoscaling:CompleteLifecycleAction", "autoscaling:DeleteLifecycleHook", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeLifecycleHooks", "autoscaling:PutLifecycleHook", "autoscaling:RecordLifecycleActionHeartbeat", "autoscaling:CreateAutoScalingGroup", "autoscaling:CreateOrUpdateTags", "autoscaling:UpdateAutoScalingGroup", "autoscaling:EnableMetricsCollection", "autoscaling:DescribePolicies", "autoscaling:DescribeScheduledActions", "autoscaling:DescribeNotificationConfigurations", "autoscaling:SuspendProcesses", "autoscaling:ResumeProcesses", "autoscaling:AttachLoadBalancers", "autoscaling:AttachLoadBalancerTargetGroups", "autoscaling:PutScalingPolicy", "autoscaling:PutScheduledUpdateGroupAction", "autoscaling:PutNotificationConfiguration", "autoscaling:DescribeScalingActivities", "autoscaling:DeleteAutoScalingGroup", "autoscaling:PutWarmPool", "ec2:DescribeInstances", "ec2:DescribeInstanceStatus", "ec2:TerminateInstances", "tag:GetResources", "sns:Publish", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "elasticloadbalancing:DescribeLoadBalancers", "elasticloadbalancing:DescribeLoadBalancerAttributes", "elasticloadbalancing:DescribeInstanceHealth", "elasticloadbalancing:RegisterInstancesWithLoadBalancer", "elasticloadbalancing:DeregisterInstancesFromLoadBalancer", "elasticloadbalancing:DescribeTargetGroups", "elasticloadbalancing:DescribeTargetGroupAttributes", "elasticloadbalancing:DescribeTargetHealth", "elasticloadbalancing:RegisterTargets", "elasticloadbalancing:DeregisterTargets" ], "Resource": "*" } ] }

     

  • AWSCodeDeployRoleForLambda: accorde CodeDeploy l'autorisation d'accès AWS Lambda et toute autre ressource requise pour un déploiement.

     

  • AWSCodeDeployRoleForECS: accorde CodeDeploy l'autorisation d'accéder à Amazon ECS et à toute autre ressource requise pour un déploiement.

     

  • AWSCodeDeployRoleForECSLimited: accorde CodeDeploy l'autorisation d'accéder à Amazon ECS et à toute autre ressource requise pour un déploiement, avec les exceptions suivantes :

    • Dans la hooks section du AppSpec fichier, seules les fonctions Lambda dont le nom commence par CodeDeployHook_ peuvent être utilisées. Pour de plus amples informations, veuillez consulter AppSpec section « hooks » pour un déploiement Amazon ECS.

    • L'accès aux compartiments S3 est limité aux compartiments S3 dotés d'une balise d'enregistrement, UseWithCodeDeploy, qui a la valeur true. Pour plus d'informations, consultez la section Balisage d'objets.

  • AmazonEC2RoleforAWSCodeDeployLimited: accorde CodeDeploy l'autorisation d'obtenir et de répertorier des objets dans un compartiment CodeDeploy Amazon S3. La politique contient le code suivant :

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion", "s3:ListBucket" ], "Resource": "arn:aws:s3:::*/CodeDeploy/*" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": "*", "Condition": { "StringEquals": { "s3:ExistingObjectTag/UseWithCodeDeploy": "true" } } } ] }

Les autorisations relatives à certains aspects du processus de déploiement sont accordées à deux autres types de rôles qui agissent pour le compte de CodeDeploy :

  • Un profil d'IAMinstance est un IAM rôle que vous associez à vos EC2 instances Amazon. Ce profil inclut les autorisations requises pour accéder aux compartiments ou aux GitHub référentiels Amazon S3 dans lesquels les applications sont stockées. Pour de plus amples informations, veuillez consulter Étape 4 : créer un profil d'IAMinstance pour vos EC2 instances Amazon.

  • Un rôle de service est un IAM rôle qui accorde des autorisations à un AWS service afin qu'il puisse accéder à AWS des ressources. Les politiques que vous attachez au rôle de service déterminent les AWS ressources auxquelles le service peut accéder et les actions qu'il peut effectuer avec ces ressources. En CodeDeploy effet, un rôle de service est utilisé pour les opérations suivantes :

    • Pour lire les balises appliquées aux instances ou les noms de groupes Amazon EC2 Auto Scaling associés aux instances. Cela permet d' CodeDeploy identifier les instances sur lesquelles il peut déployer des applications.

    • Pour effectuer des opérations sur des instances, des groupes Amazon EC2 Auto Scaling et des équilibreurs de charge Elastic Load Balancing.

    • Publier des informations sur les SNS rubriques Amazon afin que des notifications puissent être envoyées lorsque des événements de déploiement ou d'instance spécifiques se produisent.

    • Pour récupérer des informations sur les CloudWatch alarmes afin de configurer la surveillance des alarmes pour les déploiements.

    Pour de plus amples informations, veuillez consulter Étape 2 : créer un rôle de service pour CodeDeploy.

Vous pouvez également créer des IAM politiques personnalisées pour accorder des autorisations pour les CodeDeploy actions et les ressources. Vous associez ces politiques personnalisées aux IAM rôles, puis vous attribuez les rôles aux utilisateurs ou aux groupes qui ont besoin des autorisations.

CodeDeploy politiques et notifications gérées

CodeDeploy prend en charge les notifications, qui peuvent informer les utilisateurs des modifications importantes apportées aux déploiements. Les politiques gérées CodeDeploy incluent des déclarations de politique relatives à la fonctionnalité de notification. Pour plus d'informations, consultez En quoi consistent les notifications ?

Autorisations liées aux notifications dans les stratégies gérées d'accès complet

La stratégie gérée AWSCodeDeployFullAccess inclut les déclarations suivantes pour permettre un accès complet aux notifications. Les utilisateurs auxquels cette politique gérée est appliquée peuvent également créer et gérer des SNS sujets Amazon pour les notifications, abonner et désinscrire des utilisateurs à des sujets, répertorier les sujets à choisir comme cibles pour les règles de notification et répertorier les AWS Chatbot clients configurés pour Slack.

{ "Sid": "CodeStarNotificationsReadWriteAccess", "Effect": "Allow", "Action": [ "codestar-notifications:CreateNotificationRule", "codestar-notifications:DescribeNotificationRule", "codestar-notifications:UpdateNotificationRule", "codestar-notifications:DeleteNotificationRule", "codestar-notifications:Subscribe", "codestar-notifications:Unsubscribe" ], "Resource": "*", "Condition" : { "StringLike" : {"codestar-notifications:NotificationsForResource" : "arn:aws:codedeploy:*"} } }, { "Sid": "CodeStarNotificationsListAccess", "Effect": "Allow", "Action": [ "codestar-notifications:ListNotificationRules", "codestar-notifications:ListTargets", "codestar-notifications:ListTagsforResource", "codestar-notifications:ListEventTypes" ], "Resource": "*" }, { "Sid": "CodeStarNotificationsSNSTopicCreateAccess", "Effect": "Allow", "Action": [ "sns:CreateTopic", "sns:SetTopicAttributes" ], "Resource": "arn:aws:sns:*:*:codestar-notifications*" }, { "Sid": "SNSTopicListAccess", "Effect": "Allow", "Action": [ "sns:ListTopics" ], "Resource": "*" }, { "Sid": "CodeStarNotificationsChatbotAccess", "Effect": "Allow", "Action": [ "chatbot:DescribeSlackChannelConfigurations", "chatbot:ListMicrosoftTeamsChannelConfigurations" ], "Resource": "*" }

Autorisations liées aux notifications dans les stratégies gérées en lecture seule

La stratégie gérée AWSCodeDeployReadOnlyAccess inclut les déclarations suivantes pour autoriser l'accès en lecture seule aux notifications. Les utilisateurs auxquels s'applique cette stratégie peuvent voir des notifications pour les ressources, mais ne peuvent pas les créer, les gérer ni s'y abonner.

{ "Sid": "CodeStarNotificationsPowerUserAccess", "Effect": "Allow", "Action": [ "codestar-notifications:DescribeNotificationRule" ], "Resource": "*", "Condition" : { "StringLike" : {"codestar-notifications:NotificationsForResource" : "arn:aws:codedeploy:*"} } }, { "Sid": "CodeStarNotificationsListAccess", "Effect": "Allow", "Action": [ "codestar-notifications:ListNotificationRules", "codestar-notifications:ListEventTypes", "codestar-notifications:ListTargets" ], "Resource": "*" }

Pour plus d'informations sur les notifications IAM et les notifications, consultez Identity and Access Management for AWS CodeStar Notifications.