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 sur 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 par Argo CD s'intègre à AWS Identity Center pour l'authentification et utilise des 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é auprès de 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
Rôles RBAC intégrés
La fonctionnalité Argo CD fournit trois rôles intégrés que vous pouvez associer aux utilisateurs et aux groupes AWS d'Identity Center.
ADMINISTRATEUR
Accès complet à toutes les applications et à tous les paramètres :
-
Créez, mettez à jour et supprimez des applications et ApplicationSets
-
Gérer la configuration d'Argo CD
-
Enregistrez et gérez les clusters cibles de déploiement
-
Configuration de l'accès au référentiel
-
Gérez des projets
-
Afficher l'état et l'historique de toutes les demandes
RÉDACTEUR
Peut créer et modifier des applications, mais ne peut pas modifier les paramètres d'Argo CD :
-
Créez et mettez à jour des applications et ApplicationSets
-
Synchronisation et actualisation des applications
-
Afficher l'état et l'historique de la demande
-
Impossible de supprimer des applications
-
Impossible de modifier la configuration d'Argo CD
-
Impossible de gérer les clusters ou les référentiels
SPECTATEUR
Accès en lecture seule aux applications :
-
Afficher l'état et l'historique de la demande
-
Afficher les manifestes et les ressources des applications
-
Impossible d'apporter des modifications
-
Impossible de synchroniser ou d'actualiser les applications
Configuration des mappages de rôles
Associez les utilisateurs et les groupes AWS d'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 :
{ "rbacRoleMapping": { "ADMIN": ["AdminGroup", "alice@example.com"], "EDITOR": ["DeveloperGroup", "DevOpsTeam"], "VIEWER": ["ReadOnlyGroup", "bob@example.com"] } }
Note
Les noms de rôles distinguent les majuscules des 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 fonctionnalité Argo CD. Une identité peut être un utilisateur ou un groupe.
Mettre à jour les mappages de rôles :
aws eksfe update-capability \ --regionus-east-1\ --cluster-namecluster\ --capability-namecapname\ --endpoint "https://eks.ap-northeast-2.amazonaws.com" \ --role-arn "arn:aws:iam::[.replaceable]111122223333:role/[.replaceable]`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)
Bonnes pratiques pour le compte administrateur :
-
Ne confiez pas les jetons de compte au contrôle de version
-
Faites pivoter les jetons immédiatement s'ils sont exposés
-
Limitez 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 le projet :
-
Environnements de développement partagés avec plusieurs utilisateurs
-
Tout environnement similaire à celui de la production
-
Lorsque 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 le contrôle d'accès basé sur le projet avec des rôles RBAC dédiés mappés aux groupes Identity Center. AWS
Contrôle d'accès basé sur le projet
Utilisez Argo CD Projects (AppProject) pour fournir un contrôle d'accès précis et une isolation des ressources aux équipes.
Les projets fournissent :
-
Restrictions relatives aux sources : limite les référentiels Git pouvant être utilisés
-
Restrictions de destination : limitez les clusters et les espaces de noms pouvant être ciblés
-
Restrictions de ressources : limitez les types de ressources Kubernetes pouvant être déployés
-
Intégration RBAC : associez les projets à des groupes AWS Identity Center ou à des rôles Argo CD
Exemple de projet pour isoler une équipe :
apiVersion: argoproj.io/v1alpha1 kind: AppProject metadata: name: team-a namespace: argocd spec: description: Team A applications # 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
Affecter des utilisateurs à des projets :
Les utilisateurs dotés de rôles EDITOR ou VIEWER peuvent être limités à des projets spécifiques. Les utilisateurs ADMIN ont accès à tous les projets.
apiVersion: argoproj.io/v1alpha1 kind: AppProject metadata: name: team-a spec: # ... project configuration ... # Map Identity Center groups to project roles roles: - name: developer description: Team A developers policies: - p, proj:team-a:developer, applications, *, team-a/*, allow groups: - TeamADevelopers - name: viewer description: Team A viewers policies: - p, proj:team-a:viewer, applications, get, team-a/*, allow groups: - TeamAViewers
Modèles d'autorisation courants
Modèle 1 : équipe d'administration avec accès complet
{ "rbacRoleMapping": { "ADMIN": ["PlatformTeam", "SRETeam"] } }
Schéma 2 : les développeurs peuvent déployer, les autres peuvent visualiser
{ "rbacRoleMapping": { "ADMIN": ["PlatformTeam"], "EDITOR": ["DevelopmentTeam", "DevOpsTeam"], "VIEWER": ["AllEmployees"] } }
Schéma 3 : isolement basé sur l'équipe avec les projets
-
Associer tous les développeurs au rôle d'ÉDITEUR
-
Créez une solution distincte AppProjects pour chaque équipe
-
Utilisez les rôles de projet pour restreindre l'accès aux applications spécifiques à l'équipe
{ "rbacRoleMapping": { "ADMIN": ["PlatformTeam"], "EDITOR": ["AllDevelopers"] } }
Créez ensuite des projets avec des restrictions et des mappages de rôles spécifiques à l'équipe.
Bonnes pratiques
Utilisez des groupes plutôt que des utilisateurs individuels : associez des groupes AWS Identity Center à des rôles Argo CD plutôt qu'à des utilisateurs individuels pour faciliter la gestion.
Commencez avec le moins 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 Argo CD, mais ne correspond pas au RBAC Kubernetes. Les utilisateurs disposant d'un 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 les AWS 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 pour plus de détails 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é relatives aux fonctionnalités EKS- Passez en revue les meilleures pratiques en matière de sécurité en termes de fonctionnalités