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 auf, 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 verwaltete Funktion von Argo CD 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 mithilfe von AWS Identity Center (das eine Verbindung zu Ihrem Corporate Identity Provider herstellen kann)
-
AWS Identity Center stellt Benutzer- und Gruppeninformationen für Argo CD bereit
-
Argo CD ordnet Benutzer und Gruppen basierend auf Ihrer Konfiguration RBAC-Rollen zu
-
Benutzer sehen nur die Anwendungen und Ressourcen, für deren Zugriff sie berechtigt sind
Integrierte RBAC-Rollen
Die Argo-CD-Funktion bietet drei integrierte Rollen, die Sie AWS Identity Center-Benutzern und -Gruppen zuordnen. Dabei handelt es sich um Rollen mit globalem Geltungsbereich, 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 zur Gewährung des Zugriffs auf Anwendungen und andere projektbezogene Ressourcen finden Sie unter.
ADMINISTRATOR
Voller Zugriff auf alle Ressourcen und Einstellungen von Argo CD:
-
Anwendungen in beliebigen Projekten erstellen, aktualisieren und ApplicationSets löschen
-
Verwalten Sie die Argo-CD-Konfiguration
-
Registrieren und verwalten Sie Bereitstellungszielcluster
-
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, aber die globalen Argo-CD-Einstellungen nicht ändern:
-
Bestehende Projekte aktualisieren (Projekte können nicht erstellt oder gelöscht werden)
-
Projektrollen und -berechtigungen konfigurieren
-
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
Nur-Lese-Zugriff auf Argo-CD-Ressourcen:
-
Projektkonfigurationen anzeigen
-
Listet alle Projekte auf (einschließlich Projekten, 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, darunter:
-
Ressourcen: Anwendungen ApplicationSets, Repository-Anmeldeinformationen, Cluster-Anmeldeinformationen
-
Funktionen: Protokollzugriff, Zugriff für Führungskräfte auf Anwendungs-Pods
Grundlegendes zum zweistufigen Berechtigungsmodell:
-
Globaler Geltungsbereich: Integrierte Rollen bestimmen, was Benutzer mit Projekten, Clustern, Repositorys und Argo-CD-Einstellungen tun können
-
Projektumfang: Projektrollen bestimmen, was Benutzer mit Ressourcen und Fähigkeiten 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 Rolle EDITOR weltweit eine Identity Center-Gruppe zu
-
Ein ADMIN erstellt ein Projekt für ein Team
-
Der EDITOR konfiguriert die Projektrollen innerhalb dieses Projekts, um Teammitgliedern Zugriff auf projektbezogene Ressourcen zu gewähren
-
Teammitglieder (die möglicherweise die globale VIEWER-Rolle haben) können nun Anwendungen in diesem Projekt auf der Grundlage ihrer Projektrollenberechtigungen sehen und verwalten
Einzelheiten zur Konfiguration von Projektrollen finden Sie unterProjektbasierte Zugriffskontrolle.
Konfigurieren Sie Rollenzuordnungen
Ordnen Sie AWS Identity Center-Benutzer und -Gruppen bei der Erstellung oder Aktualisierung der Funktion den Argo-CD-Rollen zu.
Beispiel für eine Rollenzuweisung:
{ "rbacRoleMapping": { "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\ --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" } ] } ] } } }'
Nutzung des Admin-Kontos
Das Administratorkonto ist für die Ersteinrichtung und administrative Aufgaben wie die Registrierung von Clustern und die Konfiguration von Repositorys konzipiert.
Wenn das Administratorkonto geeignet ist:
-
Erstmalige Einrichtung und Konfiguration der Funktionen
-
Einzelentwicklung oder schnelle Vorführungen
-
Administrative Aufgaben (Clusterregistrierung, Repository-Konfiguration, Projekterstellung)
Bewährte Methoden für Administratorkonten:
-
Übergeben Sie Konto-Tokens nicht der Versionskontrolle
-
Wechseln Sie Tokens sofort, wenn sie offengelegt werden
-
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 Konto-Tokens 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 Aktionen ausgeführt hat
-
Wenn Sie Ressourcen- oder Zugriffsbeschränkungen durchsetzen müssen
Verwenden Sie für Produktionsumgebungen und Szenarien mit mehreren Benutzern eine projektbasierte Zugriffskontrolle mit speziellen RBAC-Rollen, die Identity Center-Gruppen zugeordnet sind. AWS
Projektbasierte Zugriffskontrolle
Verwenden Sie Argo CD Projects (AppProject), um Teams eine detaillierte Zugriffskontrolle und Ressourcenisolierung zu bieten.
Wichtig
Bevor Sie Benutzern oder Gruppen projektspezifischen Rollen zuweisen, müssen Sie sie zunächst einer globalen Argo-CD-Rolle (ADMIN, EDITOR oder VIEWER) in der Funktionskonfiguration zuordnen. Benutzer können ohne eine globale Rollenzuweisung nicht auf Argo CD zugreifen, selbst wenn sie 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 Basiszugriff und ermöglicht gleichzeitig eine detaillierte Steuerung auf Projektebene.
Projekte bieten:
-
Quellenbeschränkungen: Beschränken Sie, welche Git-Repositorys verwendet werden können
-
Zieleinschränkungen: Beschränken Sie, welche Cluster und Namespaces als Ziel ausgewählt werden können
-
Ressourceneinschrä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 für die Isolierung von Teams:
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
Wenn Sie die EKS Argo CD-Funktion verwenden, 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 Funktion angegeben haben (normalerweise). argocd Dies unterscheidet sich von der Open-Source-Version von Argo CD, die mehrere Namespaces unterstützt.
AppProject Konfiguration
Alle AppProjects müssen den konfigurierten Namespace der Fähigkeit 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 Fähigkeit weglassensourceNamespaces, können Anwendungen oder ApplicationSets in diesem Namespace nicht auf dieses Projekt verweisen, was zu Bereitstellungsfehlern führt.
Weisen Sie Benutzer 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, selbst wenn sie globalen Rollenzugriff haben.
ADMIN-Benutzer haben Zugriff auf alle Anwendungen, ohne Projektrollen zu benötigen.
Beispiel: Teammitgliedern Anwendungszugriff 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>
Ressourcenrichtlinien:
-
applications, , team-a/, allow- Voller Zugriff auf alle Anwendungen im Team-A-Projekt -
applications, get, team-a/*, allow- Nur-Lese-Zugriff auf Anwendungen -
applications, sync, team-a/*, allow- Kann Anwendungen synchronisieren, aber nicht erstellen/löschen -
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
Fähigkeitsrichtlinien:
-
logs, , team-a/, allow- Zugriff auf Anwendungsprotokolle -
exec, , team-a/, allow- Zugriff für Führungskräfte auf Anwendungs-Pods
Anmerkung
EDITOR-Benutzer können Projektrollen erstellen, um sich selbst und anderen Berechtigungen innerhalb von Projekten 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 Eingreifen durch den Administrator erforderlich ist.
Anmerkung
Verwenden Sie die Identity Center-Gruppe IDs (keine Gruppennamen) im Feld. groups Sie können den Identity Center-Benutzer auch IDs für den individuellen Benutzerzugriff verwenden. Sie finden diese IDs in der AWS Identity Center-Konsole oder mithilfe der AWS CLI.
Allgemeine Berechtigungsmuster
Muster 1: Admin-Team mit vollem Zugriff
{ "rbacRoleMapping": { "ADMIN": ["PlatformTeam", "SRETeam"] } }
ADMIN-Benutzer können alle projektbezogenen Ressourcen ohne zusätzliche Konfiguration einsehen und verwalten.
Muster 2: Teamleiter verwalten Projekte, Entwickler greifen über Projektrollen zu
{ "rbacRoleMapping": { "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 (Logs, Exec) zu gewähren
-
Entwickler (VIEWER) können nur auf Ressourcen und Funktionen zugreifen, die ihren Projektrollen entsprechen
Muster 3: Teambasierter Zugriff mit Projektrollen
-
ADMIN erstellt Projekte und ordnet Teamleiter der Rolle EDITOR weltweit 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
{ "rbacRoleMapping": { "ADMIN": ["PlatformTeam"], "EDITOR": ["TeamLeads"], "VIEWER": ["AllDevelopers"] } }
Best Practices
Verwenden Sie Gruppen statt einzelner Benutzer: Ordnen Sie AWS Identity Center-Gruppen Argo-CD-Rollen statt einzelnen Benutzern zu, um die Verwaltung zu vereinfachen.
Beginnen Sie mit den geringsten Rechten: 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 eine Verbindung mit Ihrem Corporate Identity Provider herstellt.
Regelmäßige Zugriffsprüfungen: Überprüfen Sie regelmäßig die Rollenzuordnungen und Projektzuweisungen, um sicherzustellen, dass die Zugriffsebenen angemessen sind.
Clusterzugriff einschränken: Denken Sie daran, dass Argo CD RBAC den Zugriff auf Argo CD-Ressourcen und -Operationen kontrolliert, 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 kontrollieren Sie anhand von Beschränkungen für Projektziele, wo Anwendungen bereitgestellt werden können.
AWS Serviceberechtigungen
Um AWS Dienste direkt in Anwendungsressourcen zu verwenden (ohne Repository-Ressourcen zu erstellen), fügen Sie der Capability Role 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 Repositorien:
{ "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 Projekte
-
Sicherheitsüberlegungen für EKS-Funktionen- Informieren Sie sich über bewährte Sicherheitsmethoden für Funktionen