Aidez à améliorer cette page
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.
Pour contribuer à ce guide de l'utilisateur, cliquez sur le GitHub lien Modifier cette page qui se trouve dans le volet droit de chaque page.
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.
Configurer les autorisations d'Argo CD
La fonctionnalité gérée d'Argo CD s'intègre à AWS Identity Center pour l'authentification et utilise les rôles RBAC intégrés pour l'autorisation. Cette rubrique explique comment configurer les autorisations pour les utilisateurs et les équipes.
Comment fonctionnent les autorisations avec Argo CD
La fonctionnalité Argo CD utilise AWS Identity Center pour l'authentification et fournit trois rôles RBAC intégrés pour l'autorisation.
Lorsqu'un utilisateur accède à Argo CD :
-
Ils s'authentifient à l'aide AWS d'Identity Center (qui peut être fédéré avec votre fournisseur d'identité d'entreprise)
-
AWS Identity Center fournit des informations sur les utilisateurs et les groupes à Argo CD
-
Argo CD associe les utilisateurs et les groupes aux rôles RBAC en fonction de votre configuration
-
Les utilisateurs ne voient que les applications et les ressources auxquelles ils sont autorisés à accéder
Built-in Rôles RBAC
La fonctionnalité Argo CD fournit trois rôles intégrés que vous associez aux utilisateurs et aux groupes AWS d'Identity Center. Il s'agit de rôles de portée mondiale qui contrôlent l'accès aux ressources Argo CD telles que les projets, les clusters et les référentiels.
Important
Les rôles globaux contrôlent l'accès à Argo CD lui-même, et non à des ressources spécifiques à un projet, telles que les applications. Les utilisateurs EDITOR et VIEWER ne peuvent ni voir ni gérer les applications par défaut. Ils ont besoin de rôles de projet pour accéder aux ressources liées au projet. Voir Rôles du projet et accès limité au projet pour plus de détails sur l'octroi de l'accès aux applications et à d'autres ressources liées au projet.
ADMINISTRATEUR
Accès complet à toutes les ressources et paramètres d'Argo CD :
-
Créez, mettez à jour et supprimez des applications ApplicationSets dans n'importe quel projet
-
Gérer la configuration d'Argo CD
-
Enregistrer et gérer les clusters cibles de déploiement
-
Configuration de l'accès au référentiel
-
Création et gestion de projets
-
Afficher l'état et l'historique de toutes les demandes
-
Répertorier tous les clusters et référentiels et y accéder
RÉDACTEUR
Peut mettre à jour des projets et configurer des rôles de projet, mais ne peut pas modifier les paramètres globaux d'Argo CD :
-
Mettre à jour les projets existants (impossible de créer ou de supprimer des projets)
-
Configurer les rôles et les autorisations du projet
-
Afficher les clés et les certificats GPG
-
Impossible de modifier la configuration globale d'Argo CD
-
Impossible de gérer directement les clusters ou les référentiels
-
Impossible de voir ou de gérer les applications sans rôles de projet
VISIONNEUR
Read-only accès aux ressources d'Argo CD :
-
Afficher les configurations du projet
-
Répertorier tous les projets (y compris les projets auxquels l'utilisateur n'est pas affecté)
-
Afficher les clés et les certificats GPG
-
Impossible de répertorier les clusters ou les référentiels
-
Impossible d'apporter des modifications
-
Impossible de voir ou de gérer les applications sans rôles de projet
Note
Pour accorder aux utilisateurs EDITOR ou VIEWER l'accès aux applications, un ADMINISTRATEUR ou un ÉDITEUR doit créer des rôles de projet qui font correspondre les groupes Identity Center à des autorisations spécifiques au sein d'un projet.
Rôles du projet et accès limité au projet
Les rôles globaux (ADMIN, EDITOR, VIEWER) contrôlent l'accès à Argo CD lui-même. Les rôles de projet contrôlent l'accès aux ressources et aux fonctionnalités d'un projet spécifique, notamment :
-
Ressources : applications, informations d'identification du référentiel ApplicationSets, informations d'identification du cluster
-
Fonctionnalités : accès au journal, accès exec aux pods d'applications
Comprendre le modèle d'autorisation à deux niveaux :
-
Portée globale : Built-in les rôles déterminent ce que les utilisateurs peuvent faire avec les projets, les clusters, les référentiels et les paramètres d'Argo CD
-
Portée du projet : les rôles du projet déterminent ce que les utilisateurs peuvent faire avec les ressources et les fonctionnalités d'un projet spécifique
Autrement dit :
-
Les utilisateurs ADMIN peuvent accéder à toutes les ressources et fonctionnalités du projet sans configuration supplémentaire
-
Les utilisateurs EDITOR et VIEWER doivent se voir attribuer des rôles de projet pour accéder aux ressources et fonctionnalités du projet
-
Les utilisateurs d'EDITOR peuvent créer des rôles de projet pour s'accorder, ainsi qu'à d'autres personnes, l'accès aux projets qu'ils peuvent mettre à jour
Exemple de flux de travail :
-
Un administrateur associe un groupe Identity Center au rôle EDITOR dans le monde entier
-
Un administrateur crée un projet pour une équipe
-
L'ÉDITEUR configure les rôles de projet au sein de ce projet pour permettre aux membres de l'équipe d'accéder aux ressources spécifiques au projet.
-
Les membres de l'équipe (qui peuvent avoir le rôle global VIEWER) peuvent désormais voir et gérer les applications de ce projet en fonction de leurs autorisations de rôle de projet
Pour plus de détails sur la configuration des rôles de projet, consultezProject-based contrôle d'accès.
Configuration des mappages de rôles
Associez les utilisateurs et les groupes AWS Identity Center aux rôles Argo CD lors de la création ou de la mise à jour de la fonctionnalité.
Exemple de mappage des rôles :
{ "rbacRoleMappings": { "ADMIN": ["AdminGroup", "alice@example.com"], "EDITOR": ["DeveloperGroup", "DevOpsTeam"], "VIEWER": ["ReadOnlyGroup", "bob@example.com"] } }
Note
Les noms de rôles distinguent les majuscules et minuscules et doivent être en majuscules (ADMIN, EDITOR, VIEWER).
Important
L'intégration d'EKS Capabilities à AWS Identity Center prend en charge jusqu'à 1 000 identités par capacité Argo CD. Une identité peut être un utilisateur ou un groupe.
Mettez à jour les mappages de rôles :
aws eks update-capability \ --regionus-east-1\ --cluster-namecluster\ --capability-namecapname\ --role-arn"arn:aws:iam::111122223333:role/EKSCapabilityRole"\ --configuration '{ "argoCd": { "rbacRoleMappings": { "addOrUpdateRoleMappings": [ { "role": "ADMIN", "identities": [ { "id": "686103e0-f051-7068-b225-e6392b959d9e", "type": "SSO_USER" } ] } ] } } }'
Utilisation du compte administrateur
Le compte administrateur est conçu pour la configuration initiale et les tâches administratives telles que l'enregistrement de clusters et la configuration de référentiels.
Lorsque le compte administrateur est approprié :
-
Configuration et configuration initiales des fonctionnalités
-
Développement en solo ou démonstrations rapides
-
Tâches administratives (enregistrement du cluster, configuration du référentiel, création de projets)
Meilleures pratiques pour le compte administrateur :
-
Ne validez pas les jetons de compte dans le contrôle de version
-
Faites pivoter les jetons immédiatement s'ils sont exposés
-
Limiter l'utilisation des jetons de compte aux tâches de configuration et d'administration
-
Définissez des délais d'expiration courts (maximum 12 heures)
-
Seuls 5 jetons de compte peuvent être créés à la fois
Quand utiliser plutôt l'accès basé sur les projets :
-
Environnements de développement partagés avec plusieurs utilisateurs
-
Tout environnement qui ressemble à la production
-
Quand vous avez besoin de pistes d'audit pour savoir qui a effectué des actions
-
Lorsque vous devez appliquer des restrictions de ressources ou des limites d'accès
Pour les environnements de production et les scénarios multi-utilisateurs, utilisez un contrôle d'accès basé sur des projets avec des rôles RBAC dédiés mappés aux AWS groupes Identity Center.
Project-based contrôle d'accès
Utilisez Argo CD Projects (AppProject) pour fournir un contrôle d'accès précis et une isolation des ressources aux équipes.
Important
Avant d'affecter des utilisateurs ou des groupes à des rôles spécifiques au projet, vous devez d'abord les mapper à un rôle Argo CD global (ADMIN, EDITOR ou VIEWER) dans la configuration des fonctionnalités. Les utilisateurs ne peuvent pas accéder à Argo CD sans un mappage global des rôles, même s'ils sont affectés à des rôles de projet.
Envisagez de mapper les utilisateurs au rôle VIEWER de manière globale, puis accordez des autorisations supplémentaires via des rôles spécifiques au projet. Cela fournit un accès de référence tout en permettant un contrôle précis au niveau du projet.
Les projets fournissent :
-
Restrictions relatives aux sources : limiter les dépôts Git qui peuvent être utilisés
-
Restrictions de destination : limitez les clusters et les espaces de noms qui peuvent être ciblés
-
Restrictions de ressources : limitez les types de ressources Kubernetes qui peuvent être déployés
-
Intégration RBAC : associez des projets à des groupes AWS Identity Center ou à des rôles Argo CD
Exemple de projet pour isoler les équipes :
apiVersion: argoproj.io/v1alpha1 kind: AppProject metadata: name: team-a namespace: argocd spec: description: Team A applications # Required: Specify which namespaces this project watches for Applications sourceNamespaces: - argocd # Source restrictions sourceRepos: - https://github.com/myorg/team-a-apps # Destination restrictions destinations: - namespace: team-a-* server: arn:aws:eks:us-west-2:111122223333:cluster/production # Resource restrictions clusterResourceWhitelist: - group: '' kind: Namespace namespaceResourceWhitelist: - group: 'apps' kind: Deployment - group: '' kind: Service - group: '' kind: ConfigMap
Espaces de noms sources
Lorsque vous utilisez la fonctionnalité EKS Argo CD, le spec.sourceNamespaces champ est obligatoire dans AppProject les définitions. Ce champ indique quel espace de noms peut contenir des applications ou ApplicationSets qui font référence à ce projet.
Important
La fonctionnalité EKS Argo CD ne prend en charge qu'un seul espace de noms pour les applications et ApplicationSets : l'espace de noms que vous avez spécifié lors de la création de la fonctionnalité (généralement). argocd Cela diffère de l'Argo CD open source qui prend en charge plusieurs espaces de noms.
AppProject configuration
Tous AppProjects doivent inclure l'espace de noms configuré de la fonctionnalité dans sourceNamespaces :
apiVersion: argoproj.io/v1alpha1 kind: AppProject metadata: name: team-a-project namespace: argocd spec: description: Applications for Team A # Required: Specify the capability's configured namespace (configuration.argoCd.namespace) sourceNamespaces: - argocd # Must match your capability's namespace configuration # Source repositories this project can deploy from sourceRepos: - 'https://github.com/my-org/team-a-*' # Destination restrictions destinations: - namespace: 'team-a-*' server: arn:aws:eks:us-west-2:111122223333:cluster/my-cluster
Note
Si vous omettez l'espace de noms de la fonctionnalité danssourceNamespaces, Applications ou ApplicationSets dans cet espace de noms ne peut pas faire référence à ce projet, ce qui entraîne des échecs de déploiement.
Attribuez des utilisateurs à des projets :
Les rôles de projet permettent aux utilisateurs EDITOR et VIEWER d'accéder aux ressources du projet (applications ApplicationSets, référentiel et informations d'identification du cluster) et aux fonctionnalités (journaux, exécution). Sans rôles de projet, ces utilisateurs ne peuvent pas accéder à ces ressources même s'ils disposent d'un accès aux rôles globaux.
Les utilisateurs ADMIN ont accès à toutes les applications sans avoir besoin de rôles de projet.
Exemple : accorder l'accès à l'application aux membres de l'équipe
apiVersion: argoproj.io/v1alpha1 kind: AppProject metadata: name: team-a namespace: argocd spec: # ... project configuration ... sourceNamespaces: - argocd # Project roles grant Application-level access roles: - name: developer description: Team A developers - can manage Applications policies: - p, proj:team-a:developer, applications, *, team-a/*, allow - p, proj:team-a:developer, clusters, get, *, allow # See cluster names in UI groups: - 686103e0-f051-7068-b225-e6392b959d9e # Identity Center group ID - name: viewer description: Team A viewers - read-only Application access policies: - p, proj:team-a:viewer, applications, get, team-a/*, allow - p, proj:team-a:viewer, clusters, get, *, allow # See cluster names in UI groups: - 786203e0-f051-7068-b225-e6392b959d9f # Identity Center group ID
Note
Inclure clusters, get, *, allow dans les rôles du projet pour permettre aux utilisateurs de voir les noms des clusters dans l'interface utilisateur. Sans cette autorisation, le cluster de destination s'affiche comme « inconnu ».
Comprendre les politiques relatives aux rôles du projet :
Le format de la politique est le suivant : p, proj:<project>:<role>, <resource>, <action>, <object>, <allow/deny>
Politiques relatives aux ressources :
-
applications, , team-a/, allow- Accès complet à toutes les applications de l'équipe-projet -
applications, get, team-a/*, allow- Read-only accès aux applications -
applications, sync, team-a/*, allow- Peut synchroniser les applications mais pas create/delete -
applications, delete, team-a/*, allow- Peut supprimer des applications (à utiliser avec prudence) -
applicationsets, , team-a/, allow- Accès complet à ApplicationSets -
repositories, *, *, allow- Accès aux informations d'identification du référentiel -
clusters, *, *, allow- Accès aux informations d'identification du cluster
Politiques relatives aux capacités :
-
logs, , team-a/, allow- Accès aux journaux des applications -
exec, , team-a/, allow- Accès des exécuteurs aux modules d'applications
Note
Les utilisateurs d'EDITOR peuvent créer des rôles de projet pour s'accorder, ainsi qu'à d'autres personnes, des autorisations dans les projets qu'ils peuvent mettre à jour. Cela permet aux chefs d'équipe de contrôler l'accès aux ressources spécifiques au projet pour leur équipe sans nécessiter l'intervention de l'administrateur.
Note
Utilisez les identifiants de groupe Identity Center (et non les noms de groupe) dans le groups champ. Vous pouvez également utiliser les ID utilisateur Identity Center pour l'accès utilisateur individuel. Trouvez ces ID dans la console AWS Identity Center ou à l'aide de l' AWS interface de ligne de commande.
Modèles d'autorisation courants
Modèle 1 : équipe d'administration avec accès complet
{ "rbacRoleMappings": { "ADMIN": ["PlatformTeam", "SRETeam"] } }
Les utilisateurs ADMIN peuvent voir et gérer toutes les ressources liées au projet sans configuration supplémentaire.
Schéma 2 : les chefs d'équipe gèrent les projets, les développeurs y accèdent via des rôles de projet
{ "rbacRoleMappings": { "ADMIN": ["PlatformTeam"], "EDITOR": ["TeamLeads"], "VIEWER": ["AllDevelopers"] } }
-
L'administrateur crée des projets pour chaque équipe
-
Les chefs d'équipe (EDITOR) configurent les rôles de projet pour permettre à leurs développeurs d'accéder aux ressources du projet (applications ApplicationSets, informations d'identification) et aux fonctionnalités (journaux, exécution)
-
Les développeurs (VIEWER) peuvent uniquement accéder aux ressources et aux fonctionnalités autorisées par leurs rôles de projet
Modèle 3 : Team-based accès avec rôles de projet
-
L'administrateur crée des projets et désigne les chefs d'équipe vers le rôle d'ÉDITEUR à l'échelle mondiale
-
Les chefs d'équipe (ÉDITEUR) attribuent aux membres de l'équipe des rôles de projet au sein de leurs projets
-
Les membres de l'équipe n'ont besoin que du rôle global VIEWER : les rôles de projet donnent accès aux ressources et aux fonctionnalités du projet
{ "rbacRoleMappings": { "ADMIN": ["PlatformTeam"], "EDITOR": ["TeamLeads"], "VIEWER": ["AllDevelopers"] } }
Bonnes pratiques
Utilisez des groupes plutôt que des utilisateurs individuels : associez les groupes AWS Identity Center aux rôles Argo CD plutôt qu'aux utilisateurs individuels pour faciliter la gestion.
Commencez avec le minimum de privilèges : commencez par l'accès VIEWER et accordez EDITOR ou ADMIN selon les besoins.
Utilisez des projets pour isoler les équipes : créez des projets distincts AppProjects pour les différentes équipes ou environnements afin de renforcer les limites.
Tirez parti de la fédération Identity Center : configurez AWS Identity Center pour qu'il soit fédéré avec votre fournisseur d'identité d'entreprise afin de centraliser la gestion des utilisateurs.
Révisions d'accès régulières : passez régulièrement en revue les mappages de rôles et les attributions de projets pour garantir des niveaux d'accès appropriés.
Limiter l'accès au cluster : n'oubliez pas qu'Argo CD RBAC contrôle l'accès aux ressources et aux opérations d'Argo CD, mais ne correspond pas au RBAC Kubernetes. Les utilisateurs ayant accès à Argo CD peuvent déployer des applications sur des clusters auxquels Argo CD a accès. Limitez les clusters auxquels Argo CD peut accéder et utilisez les restrictions de destination du projet pour contrôler où les applications peuvent être déployées.
AWS autorisations de service
Pour utiliser AWS les services directement dans les ressources de l'application (sans créer de ressources de référentiel), associez les autorisations IAM requises au rôle de capacité.
ECR pour les cartes Helm :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "*" } ] }
CodeCommit référentiels :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codecommit:GitPull" ], "Resource": "arn:aws:codecommit:region:account-id:repository-name" } ] }
CodeConnections (GitHub GitLab, Bitbucket) :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codeconnections:UseConnection" ], "Resource": "arn:aws:codeconnections:region:account-id:connection/connection-id" } ] }
Consultez Configuration de l'accès au référentiel la section pour en savoir plus sur l'utilisation de ces intégrations.
Étapes suivantes
-
Travailler avec Argo CD- Apprenez à créer des applications et à gérer les déploiements
-
Concepts d'Argo CD- Comprendre les concepts d'Argo CD, y compris les projets
-
Considérations relatives à la sécurité pour les fonctionnalités EKS- Passez en revue les meilleures pratiques de sécurité en matière de fonctionnalités