Unterstützung für die Verbesserung dieser Seite beitragen
Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Um zu diesem Benutzerhandbuch beizutragen, wählen Sie den GitHub Link Diese Seite bearbeiten unter, der sich im rechten Bereich jeder Seite befindet.
Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Argo-CD-Berechtigungen konfigurieren
Die von Argo CD verwaltete Funktion ist zur Authentifizierung in AWS Identity Center integriert und verwendet integrierte RBAC-Rollen für die Autorisierung. In diesem Thema wird erklärt, wie Berechtigungen für Benutzer und Teams konfiguriert werden.
Wie funktionieren Berechtigungen mit Argo CD
Die Argo CD-Funktion verwendet AWS Identity Center für die Authentifizierung und bietet drei integrierte RBAC-Rollen für die Autorisierung.
Wenn ein Benutzer auf Argo CD zugreift:
-
Sie authentifizieren sich über das AWS Identity Center (das mit Ihrem Unternehmensidentitätsanbieter verbunden werden kann)
-
AWS Identity Center stellt Benutzer- und Gruppeninformationen für Argo CD bereit
-
Argo CD ordnet Benutzern und Gruppen basierend auf Ihrer Konfiguration RBAC-Rollen zu
-
Benutzer sehen nur die Anwendungen und Ressourcen, auf die sie zugreifen dürfen
Built-in RBAC-Rollen
Die Argo-CD-Funktion bietet drei integrierte Rollen, die Sie AWS Identity Center-Benutzern und -Gruppen zuordnen können. Dabei handelt es sich um global angelegte Rollen, die den Zugriff auf Argo-CD-Ressourcen wie Projekte, Cluster und Repositorys steuern.
Wichtig
Globale Rollen kontrollieren den Zugriff auf Argo CD selbst, nicht auf projektbezogene Ressourcen wie Anwendungen. EDITOR- und VIEWER-Benutzer können Anwendungen standardmäßig nicht sehen oder verwalten — sie benötigen Projektrollen, um auf projektbezogene Ressourcen zugreifen zu können. Einzelheiten Projektrollen und projektbezogener Zugriff zum Gewähren des Zugriffs auf Anwendungen und andere projektbezogene Ressourcen finden Sie unter.
ADMIN
Voller Zugriff auf alle Ressourcen und Einstellungen der Argo-CD:
-
Erstellen, aktualisieren und löschen Sie Anwendungen ApplicationSets in jedem Projekt
-
Verwalten Sie die Argo CD-Konfiguration
-
Registrieren und verwalten Sie die Zielcluster für die Bereitstellung
-
Konfigurieren Sie den Zugriff auf das Repository
-
Projekte erstellen und verwalten
-
Sehen Sie sich den gesamten Bewerbungsstatus und die Historie an
-
Alle Cluster und Repositorys auflisten und darauf zugreifen
HERAUSGEBER
Kann Projekte aktualisieren und Projektrollen konfigurieren, kann aber die globalen Argo-CD-Einstellungen nicht ändern:
-
Bestehende Projekte aktualisieren (Projekte können nicht erstellt oder gelöscht werden)
-
Konfigurieren Sie Projektrollen und Berechtigungen
-
GPG-Schlüssel und Zertifikate anzeigen
-
Die globale Argo-CD-Konfiguration kann nicht geändert werden
-
Cluster oder Repositorys können nicht direkt verwaltet werden
-
Anwendungen ohne Projektrollen können nicht angezeigt oder verwaltet werden
BETRACHTER
Read-only Zugriff auf Argo CD-Ressourcen:
-
Projektkonfigurationen anzeigen
-
Listet alle Projekte auf (einschließlich Projekte, denen der Benutzer nicht zugewiesen ist)
-
GPG-Schlüssel und Zertifikate anzeigen
-
Cluster oder Repositorys können nicht aufgelistet werden
-
Es können keine Änderungen vorgenommen werden
-
Anwendungen ohne Projektrollen können nicht angezeigt oder verwaltet werden
Anmerkung
Um EDITOR- oder VIEWER-Benutzern Zugriff auf Anwendungen zu gewähren, muss ein ADMIN oder EDITOR Projektrollen erstellen, die Identity Center-Gruppen bestimmten Berechtigungen innerhalb eines Projekts zuordnen.
Projektrollen und projektbezogener Zugriff
Globale Rollen (ADMIN, EDITOR, VIEWER) steuern den Zugriff auf Argo CD selbst. Projektrollen steuern den Zugriff auf Ressourcen und Funktionen innerhalb eines bestimmten Projekts, einschließlich:
-
Ressourcen: Anwendungen, ApplicationSets Repository-Anmeldeinformationen, Cluster-Anmeldeinformationen
-
Funktionen: Protokollzugriff, Exec-Zugriff auf Anwendungs-Pods
Grundlegendes zum zweistufigen Berechtigungsmodell:
-
Globaler Geltungsbereich: Built-in Rollen bestimmen, was Benutzer mit Projekten, Clustern, Repositorys und Argo-CD-Einstellungen machen können
-
Projektumfang: Die Projektrollen legen fest, was Benutzer mit den Ressourcen und Funktionen innerhalb eines bestimmten Projekts tun können
Das bedeutet Folgendes:
-
ADMIN-Benutzer können ohne zusätzliche Konfiguration auf alle Projektressourcen und -funktionen zugreifen
-
EDITOR- und VIEWER-Benutzern müssen Projektrollen zugewiesen werden, um auf Projektressourcen und -funktionen zugreifen zu können
-
EDITOR-Benutzer können Projektrollen erstellen, um sich selbst und anderen Zugriff auf Projekte zu gewähren, die sie aktualisieren können
Beispiel für einen Arbeitsablauf:
-
Ein ADMIN ordnet der EDITOR-Rolle global eine Identity Center-Gruppe zu
-
Ein ADMIN erstellt ein Projekt für ein Team
-
Der EDITOR konfiguriert die Projektrollen innerhalb dieses Projekts, um den Teammitgliedern Zugriff auf projektspezifische Ressourcen zu gewähren
-
Teammitglieder (die möglicherweise die globale VIEWER-Rolle innehaben) können jetzt Anwendungen in diesem Projekt auf der Grundlage ihrer Projektrollenberechtigungen sehen und verwalten
Einzelheiten zur Konfiguration von Projektrollen finden Sie unterProject-based Zugriffskontrolle.
Konfigurieren Sie Rollenzuordnungen
Ordnen Sie AWS Identity Center-Benutzer und -Gruppen den Argo-CD-Rollen zu, wenn Sie die Funktion erstellen oder aktualisieren.
Beispiel für eine Rollenzuordnung:
{ "rbacRoleMappings": { "ADMIN": ["AdminGroup", "alice@example.com"], "EDITOR": ["DeveloperGroup", "DevOpsTeam"], "VIEWER": ["ReadOnlyGroup", "bob@example.com"] } }
Anmerkung
Bei Rollennamen wird zwischen Groß- und Kleinschreibung unterschieden und sie müssen in Großbuchstaben geschrieben werden (ADMIN, EDITOR, VIEWER).
Wichtig
Die Integration von EKS Capabilities in AWS Identity Center unterstützt bis zu 1.000 Identitäten pro Argo-CD-Funktion. Eine Identität kann ein Benutzer oder eine Gruppe sein.
Rollenzuordnungen aktualisieren:
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" } ] } ] } } }'
Nutzung des Administratorkontos
Das Admin-Konto ist für die Ersteinrichtung und administrative Aufgaben wie das Registrieren von Clustern und das Konfigurieren von Repositorys konzipiert.
Wenn das Administratorkonto angemessen ist:
-
Erste Einrichtung und Konfiguration der Funktionen
-
Einzelentwicklung oder schnelle Vorführungen
-
Administrative Aufgaben (Cluster-Registrierung, Repository-Konfiguration, Projekterstellung)
Bewährte Methoden für das Administratorkonto:
-
Übergeben Sie Konto-Tokens nicht der Versionskontrolle
-
Rotieren Sie Tokens sofort, wenn sie verfügbar sind
-
Beschränken Sie die Verwendung von Konto-Tokens auf Einrichtungs- und Verwaltungsaufgaben
-
Legen Sie kurze Ablaufzeiten fest (maximal 12 Stunden)
-
Es können jeweils nur 5 Account-Token erstellt werden
Wann sollte stattdessen der projektbasierte Zugriff verwendet werden:
-
Gemeinsame Entwicklungsumgebungen mit mehreren Benutzern
-
Jede Umgebung, die der Produktion ähnelt
-
Wenn Sie Prüfprotokolle darüber benötigen, wer die Aktionen durchgeführt hat
-
Wenn Sie Ressourcenbeschränkungen oder Zugriffsgrenzen durchsetzen müssen
Verwenden Sie für Produktionsumgebungen und Mehrbenutzerszenarien eine projektbasierte Zugriffskontrolle mit dedizierten RBAC-Rollen, die Identity Center-Gruppen zugeordnet sind. AWS
Project-based Zugriffskontrolle
Verwenden Sie Argo CD Projects (AppProject), um Teams eine detaillierte Zugriffskontrolle und Ressourcenisolierung zu bieten.
Wichtig
Bevor Sie Benutzer oder Gruppen projektspezifischen Rollen zuweisen, müssen Sie sie zunächst in der Funktionskonfiguration einer globalen Argo-CD-Rolle (ADMIN, EDITOR oder VIEWER) zuordnen. Benutzer können ohne eine globale Rollenzuordnung nicht auf Argo CD zugreifen, auch wenn ihnen Projektrollen zugewiesen sind.
Erwägen Sie, Benutzer global der VIEWER-Rolle zuzuordnen und dann zusätzliche Berechtigungen über projektspezifische Rollen zu gewähren. Dies bietet grundlegende Zugriffsmöglichkeiten und ermöglicht gleichzeitig eine detaillierte Steuerung auf Projektebene.
Projekte bieten:
-
Quellenbeschränkungen: Beschränken Sie, welche Git-Repositorys verwendet werden können
-
Zielbeschränkungen: Beschränken Sie, welche Cluster und Namespaces als Ziel verwendet werden können
-
Ressourcenbeschränkungen: Beschränken Sie, welche Kubernetes-Ressourcentypen bereitgestellt werden können
-
RBAC-Integration: Ordnen Sie Projekte AWS Identity Center-Gruppen oder Argo-CD-Rollen zu
Beispielprojekt zur Teamisolierung:
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
Quell-Namespaces
Bei Verwendung der EKS-Argo-CD-Funktion ist das spec.sourceNamespaces Feld in Definitionen erforderlich. AppProject Dieses Feld gibt an, welcher Namespace Anwendungen enthalten kann oder ApplicationSets die auf dieses Projekt verweisen.
Wichtig
Die EKS-Argo-CD-Funktion unterstützt nur einen einzigen Namespace für Anwendungen und ApplicationSets — den Namespace, den Sie bei der Erstellung der Fähigkeit angegeben haben (normalerweise). argocd Dies unterscheidet sich von der Open-Source-Argo-CD, die mehrere Namespaces unterstützt.
AppProject Konfiguration
Alle AppProjects müssen den konfigurierten Namespace der Funktion enthalten insourceNamespaces:
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
Anmerkung
Wenn Sie den Namespace der Funktion weglassensourceNamespaces, können Anwendungen oder ApplicationSets in diesem Namespace nicht auf dieses Projekt verweisen, was zu Bereitstellungsfehlern führt.
Ordnen Sie Benutzern Projekten zu:
Projektrollen gewähren EDITOR- und VIEWER-Benutzern Zugriff auf Projektressourcen (Anwendungen ApplicationSets, Repository- und Cluster-Anmeldeinformationen) und Funktionen (Logs, Exec). Ohne Projektrollen können diese Benutzer nicht auf diese Ressourcen zugreifen, auch wenn sie globalen Rollenzugriff haben.
ADMIN-Benutzer haben Zugriff auf alle Anwendungen, ohne Projektrollen zu benötigen.
Beispiel: Teammitgliedern Zugriff auf Anwendungen gewähren
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
Anmerkung
Fügen Sie Rollen clusters, get, *, allow in das Projekt ein, damit Benutzer Clusternamen in der Benutzeroberfläche sehen können. Ohne diese Berechtigung wird der Zielcluster als „unbekannt“ angezeigt.
Grundlegendes zu den Richtlinien für Projektrollen:
Das Richtlinienformat lautet: p, proj:<project>:<role>, <resource>, <action>, <object>, <allow/deny>
Richtlinien für Ressourcen:
-
applications, , team-a/, allow- Voller Zugriff auf alle Anwendungen im Team-a-Projekt -
applications, get, team-a/*, allow- Read-only Zugriff auf Anwendungen -
applications, sync, team-a/*, allow- Kann Anwendungen synchronisieren, aber nicht create/delete -
applications, delete, team-a/*, allow- Kann Anwendungen löschen (mit Vorsicht verwenden) -
applicationsets, , team-a/, allow- Voller Zugriff auf ApplicationSets -
repositories, *, *, allow- Zugriff auf Repository-Anmeldeinformationen -
clusters, *, *, allow- Zugriff auf Cluster-Anmeldeinformationen
Richtlinien für Fähigkeiten:
-
logs, , team-a/, allow- Zugriff auf Anwendungsprotokolle -
exec, , team-a/, allow- Zugriff von Führungskräften auf Anwendungs-Pods
Anmerkung
EDITOR-Benutzer können Projektrollen erstellen, um sich selbst und anderen Berechtigungen für Projekte zu gewähren, die sie aktualisieren können. Auf diese Weise können Teamleiter den Zugriff auf projektbezogene Ressourcen für ihr Team kontrollieren, ohne dass ein ADMINISTRATOR eingreifen muss.
Anmerkung
Verwenden Sie Identity Center-Gruppen-IDs (keine Gruppennamen) in dem Feld. groups Sie können Identity Center-Benutzer-IDs auch für den individuellen Benutzerzugriff verwenden. Suchen Sie diese IDs in der AWS Identity Center-Konsole oder mithilfe der AWS CLI.
Allgemeine Berechtigungsmuster
Muster 1: Admin-Team mit vollem Zugriff
{ "rbacRoleMappings": { "ADMIN": ["PlatformTeam", "SRETeam"] } }
ADMIN-Benutzer können alle projektbezogenen Ressourcen ohne zusätzliche Konfiguration sehen und verwalten.
Muster 2: Teamleiter verwalten Projekte, Entwickler greifen über Projektrollen darauf zu
{ "rbacRoleMappings": { "ADMIN": ["PlatformTeam"], "EDITOR": ["TeamLeads"], "VIEWER": ["AllDevelopers"] } }
-
ADMIN erstellt Projekte für jedes Team
-
Teamleiter (EDITOR) konfigurieren Projektrollen, um ihren Entwicklern Zugriff auf Projektressourcen (Anwendungen ApplicationSets, Anmeldeinformationen) und Funktionen (Protokolle, Führungskräfte) zu gewähren
-
Entwickler (VIEWER) können nur auf Ressourcen und Funktionen zugreifen, die ihren Projektrollen entsprechen
Muster 3: Team-based Zugriff mit Projektrollen
-
ADMIN erstellt Projekte und ordnet Team-Leads weltweit der Rolle des EDITORS zu
-
Teamleiter (EDITOR) weisen Teammitgliedern Projektrollen innerhalb ihrer Projekte zu
-
Teammitglieder benötigen nur die globale VIEWER-Rolle — Projektrollen bieten Zugriff auf Projektressourcen und -funktionen
{ "rbacRoleMappings": { "ADMIN": ["PlatformTeam"], "EDITOR": ["TeamLeads"], "VIEWER": ["AllDevelopers"] } }
Bewährte Methoden
Verwenden Sie Gruppen statt einzelner Benutzer: Ordnen Sie AWS Identity Center-Gruppen Argo-CD-Rollen statt einzelnen Benutzern zu, um die Verwaltung zu vereinfachen.
Mit den geringsten Rechten beginnen: Beginnen Sie mit VIEWER-Zugriff und gewähren Sie je nach Bedarf EDITOR oder ADMIN.
Verwenden Sie Projekte zur Teamisolierung: Erstellen Sie separate Projekte AppProjects für verschiedene Teams oder Umgebungen, um Grenzen durchzusetzen.
Nutzen Sie den Identity Center-Verbund: Konfigurieren Sie AWS Identity Center so, dass es für eine zentrale Benutzerverwaltung einen Verbund mit Ihrem Unternehmensidentitätsanbieter eingeht.
Regelmäßige Zugriffsprüfungen: Überprüfen Sie regelmäßig die Rollenzuordnungen und Projektzuweisungen, um angemessene Zugriffsebenen sicherzustellen.
Cluster-Zugriff einschränken: Denken Sie daran, dass Argo CD RBAC den Zugriff auf Argo-CD-Ressourcen und -Operationen steuert, aber nicht Kubernetes RBAC entspricht. Benutzer mit Argo CD-Zugriff können Anwendungen auf Clustern bereitstellen, auf die Argo CD Zugriff hat. Beschränken Sie, auf welche Cluster Argo CD zugreifen kann, und steuern Sie mithilfe von Einschränkungen für das Projektziel, wo Anwendungen eingesetzt werden können.
AWS Berechtigungen für Dienste
Um AWS Dienste direkt in Anwendungsressourcen zu verwenden (ohne Repository-Ressourcen zu erstellen), fügen Sie der Capability-Rolle die erforderlichen IAM-Berechtigungen hinzu.
ECR für Helm-Diagramme:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "*" } ] }
CodeCommit Repositorys:
{ "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" } ] }
Einzelheiten Repository-Zugriff konfigurieren zur Verwendung dieser Integrationen finden Sie unter.
Nächste Schritte
-
Arbeiten mit Argo CD- Erfahren Sie, wie Sie Anwendungen erstellen und Bereitstellungen verwalten
-
Argo CD-Konzepte- Verstehen Sie die Konzepte von Argo CD, einschließlich Projekten
-
Sicherheitsüberlegungen für EKS-Funktionen- Überprüfen Sie die bewährten Sicherheitsmethoden im Hinblick auf Funktionen