Exemples de politiques basées sur l’identité AWS 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.

Exemples de politiques basées sur l’identité AWS CodeDeploy

Par défaut, les utilisateurs ne sont pas autorisés à créer ou à modifier CodeDeploy des ressources. Ils ne peuvent pas non plus effectuer de tâches à l'aide de l' AWS API AWS Management Console AWS CLI, ou. Vous devez créer des politiques IAM qui accordent aux rôles IAM l'autorisation d'effectuer des opérations d'API sur les ressources spécifiées dont ils ont besoin. Vous devez ensuite associer ces rôles IAM aux utilisateurs ou aux groupes qui ont besoin de ces autorisations.

Pour apprendre à créer une politique basée sur l’identité IAM à l’aide de ces exemples de documents de politique JSON, veuillez consulter Création de politiques dans l’onglet JSON dans le Guide de l’utilisateur IAM.

Dans CodeDeploy, les politiques basées sur l'identité sont utilisées pour gérer les autorisations d'accès aux différentes ressources liées au processus de déploiement. Vous pouvez contrôler l'accès aux types de ressources suivants :

  • Applications et révisions d'application

  • Déploiements

  • Configurations de déploiement

  • Instances et instances sur site

Les capacités contrôlées par des stratégies de ressource varient en fonction du type de ressource, comme décrit dans le tableau suivant :

Types de ressources

Fonctionnalités

Tous

Afficher et répertorier les informations relatives aux ressources

Applications

Configurations de déploiement

Groupes de déploiement

Créer des ressources

Supprimer des ressources

Déploiements

Créer des déploiements

Arrêter des déploiements

Révisions d'application

Enregistrer les révisions d'application

Applications

Groupes de déploiement

Mettre à jour les ressources

Instances sur site

Ajouter des balises aux instances

Supprimer des balises des instances

Enregistrer des instances

Annuler l'enregistrement des instances

L'exemple suivant présente une stratégie d'autorisation qui permet à un utilisateur de supprimer le groupe de déploiement nommé WordPress_DepGroup associé à l'application nommée WordPress_App dans la région us-west-2.

{ "Version": "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Action" : [ "codedeploy:DeleteDeploymentGroup" ], "Resource" : [ "arn:aws:codedeploy:us-west-2:444455556666:deploymentgroup:WordPress_App/WordPress_DepGroup" ] } ] }

Exemples de politiques gérées par le client

Dans cette section, vous trouverez des exemples de politiques qui accordent des autorisations pour diverses CodeDeploy actions. Ces politiques fonctionnent lorsque vous utilisez l' CodeDeploy API, AWS les SDK ou le AWS CLI. Vous devez accorder des autorisations supplémentaires pour les actions que vous effectuez dans la console. Pour en savoir plus sur l'octroi d'autorisations de console, consultez Utilisation de la console CodeDeploy.

Note

Tous les exemples utilisent la région USA Ouest (Oregon) (us-west-2) et contiennent des ID de compte fictifs.

Exemples

Exemple 1 : Autoriser l'autorisation d'effectuer CodeDeploy des opérations dans une seule région

L'exemple suivant accorde des autorisations pour effectuer CodeDeploy des opérations dans la us-west-2 région uniquement :

{ "Version": "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Action" : [ "codedeploy:*" ], "Resource" : [ "arn:aws:codedeploy:us-west-2:444455556666:*" ] } ] }

Exemple 2 : Autoriser l'enregistrement des révisions pour une seule application

L'exemple suivant accorde des autorisations pour enregistrer les révisions de toutes les applications qui commencent par Test dans la région us-west-2 :

{ "Version": "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Action" : [ "codedeploy:RegisterApplicationRevision" ], "Resource" : [ "arn:aws:codedeploy:us-west-2:444455556666:application:Test*" ] } ] }

Exemple 3 : Autoriser la création de déploiements pour un seul groupe de déploiement

L'exemple suivant autorise la création de déploiements pour le groupe de déploiement nommé WordPress_DepGroup associé à l'application nomméeWordPress_App, la configuration de déploiement personnalisée nommée ThreeQuartersHealthy et toutes les révisions d'application associées à l'application nomméeWordPress_App. Toutes ces ressources se trouvent dans la région us-west-2.

{ "Version": "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Action" : [ "codedeploy:CreateDeployment" ], "Resource" : [ "arn:aws:codedeploy:us-west-2:444455556666:deploymentgroup:WordPress_App/WordPress_DepGroup" ] }, { "Effect" : "Allow", "Action" : [ "codedeploy:GetDeploymentConfig" ], "Resource" : [ "arn:aws:codedeploy:us-west-2:444455556666:deploymentconfig:ThreeQuartersHealthy" ] }, { "Effect" : "Allow", "Action" : [ "codedeploy:GetApplicationRevision" ], "Resource" : [ "arn:aws:codedeploy:us-west-2:444455556666:application:WordPress_App" ] } ] }

Bonnes pratiques en matière de politiques

Les politiques basées sur l'identité déterminent si quelqu'un peut créer, accéder ou supprimer CodeDeploy des ressources dans votre compte. Ces actions peuvent entraîner des frais pour votre Compte AWS. Lorsque vous créez ou modifiez des politiques basées sur l’identité, suivez ces instructions et recommandations :

  • Commencez AWS par les politiques gérées et passez aux autorisations du moindre privilège : pour commencer à accorder des autorisations à vos utilisateurs et à vos charges de travail, utilisez les politiques AWS gérées qui accordent des autorisations pour de nombreux cas d'utilisation courants. Ils sont disponibles dans votre Compte AWS. Nous vous recommandons de réduire davantage les autorisations en définissant des politiques gérées par les AWS clients spécifiques à vos cas d'utilisation. Pour plus d’informations, consultez politiques gérées par AWS ou politiques gérées par AWS pour les activités professionnelles dans le Guide de l’utilisateur IAM.

  • Accorder les autorisations de moindre privilège : lorsque vous définissez des autorisations avec des politiques IAM, accordez uniquement les autorisations nécessaires à l’exécution d’une seule tâche. Pour ce faire, vous définissez les actions qui peuvent être entreprises sur des ressources spécifiques dans des conditions spécifiques, également appelées autorisations de moindre privilège. Pour plus d’informations sur l’utilisation de IAM pour appliquer des autorisations, consultez politiques et autorisations dans IAM dans le Guide de l’utilisateur IAM.

  • Utiliser des conditions dans les politiques IAM pour restreindre davantage l’accès : vous pouvez ajouter une condition à vos politiques afin de limiter l’accès aux actions et aux ressources. Par exemple, vous pouvez écrire une condition de politique pour spécifier que toutes les demandes doivent être envoyées via SSL. Vous pouvez également utiliser des conditions pour accorder l'accès aux actions de service si elles sont utilisées par le biais d'un service spécifique Service AWS, tel que AWS CloudFormation. Pour plus d’informations, consultez Conditions pour éléments de politique JSON IAM dans le Guide de l’utilisateur IAM.

  • Utilisez IAM Access Analyzer pour valider vos politiques IAM afin de garantir des autorisations sécurisées et fonctionnelles : IAM Access Analyzer valide les politiques nouvelles et existantes de manière à ce que les politiques IAM respectent le langage de politique IAM (JSON) et les bonnes pratiques IAM. IAM Access Analyzer fournit plus de 100 vérifications de politiques et des recommandations exploitables pour vous aider à créer des politiques sécurisées et fonctionnelles. Pour plus d’informations, consultez Validation de politique IAM Access Analyzer dans le Guide de l’utilisateur IAM.

  • Exiger l'authentification multifactorielle (MFA) : si vous avez un scénario qui nécessite des utilisateurs IAM ou un utilisateur root, activez l'authentification MFA pour une sécurité accrue. Compte AWS Pour exiger le MFA lorsque des opérations d’API sont appelées, ajoutez des conditions MFA à vos politiques. Pour plus d’informations, consultez Configuration de l’accès aux API protégé par MFA dans le Guide de l’utilisateur IAM.

Pour plus d’informations sur les bonnes pratiques dans IAM, consultez Bonnes pratiques de sécurité dans IAM dans le Guide de l’utilisateur IAM.

Utilisation de la console CodeDeploy

Si vous utilisez la CodeDeploy console, vous devez disposer d'un ensemble minimal d'autorisations vous permettant de décrire les autres AWS ressources de votre AWS compte. Pour l'utiliser CodeDeploy dans la CodeDeploy console, vous devez disposer des autorisations des services suivants :

  • Amazon EC2 Auto Scaling

  • AWS CodeDeploy

  • Amazon Elastic Compute Cloud

  • Elastic Load Balancing

  • AWS Identity and Access Management

  • Amazon Simple Storage Service

  • Amazon Simple Notification Service

  • Amazon CloudWatch

Si vous créez une politique IAM plus restrictive que les autorisations minimales requises, la console ne fonctionnera pas comme prévu pour les utilisateurs ayant un rôle dans cette politique IAM. Pour garantir que ces utilisateurs peuvent toujours utiliser la CodeDeploy console, associez également la politique AWSCodeDeployReadOnlyAccess gérée au rôle attribué à l'utilisateur, comme décrit dansAWS politiques gérées (prédéfinies) pour CodeDeploy.

Il n'est pas nécessaire d'accorder des autorisations de console minimales aux utilisateurs qui appellent uniquement l'API AWS CLI ou l' CodeDeploy API.

Autorisation accordée aux utilisateurs pour afficher leurs propres autorisations

Cet exemple montre comment créer une politique qui permet aux utilisateurs IAM d’afficher les politiques en ligne et gérées attachées à leur identité d’utilisateur. Cette politique inclut les autorisations permettant d'effectuer cette action sur la console ou par programmation à l'aide de l'API AWS CLI or AWS .

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": ["arn:aws:iam::*:user/${aws:username}"] }, { "Sid": "NavigateInConsole", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers" ], "Resource": "*" } ] }