Kro-Berechtigungen konfigurieren - Amazon EKS

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.

Kro-Berechtigungen konfigurieren

Im Gegensatz zu ACK und Argo CD benötigt kro keine IAM-Berechtigungen. kro arbeitet vollständig in Ihrem Kubernetes-Cluster und führt keine API-Aufrufe durch. AWS Steuern Sie den Zugriff auf Kro-Ressourcen mithilfe des Standard-Kubernetes-RBAC.

Wie funktionieren Berechtigungen mit Kro

kro verwendet zwei Arten von Kubernetes-Ressourcen mit unterschiedlichen Bereichen:

ResourceGraphDefinitions: Ressourcen im Clusterbereich, die benutzerdefinierte definieren. APIs In der Regel von Plattformteams verwaltet, die organisatorische Standards entwerfen und einhalten.

Instanzen: Benutzerdefinierte Ressourcen mit Namespace-Gültigkeitsbereich, die aus erstellt wurden. ResourceGraphDefinitions Kann von Anwendungsteams mit entsprechenden RBAC-Berechtigungen erstellt werden.

Standardmäßig verfügt die KRO-Funktion über die Zugriffsrichtlinie über Berechtigungen zum Verwalten ResourceGraphDefinitions und Verwalten ihrer Instanzen. AmazonEKSKROPolicy Für Kro sind jedoch zusätzliche Berechtigungen erforderlich, um die zugrunde liegenden Kubernetes-Ressourcen zu erstellen und zu verwalten, die in Ihrem System definiert sind ResourceGraphDefinitions (z. B. Bereitstellungen, Dienste oder ACK-Ressourcen). Sie müssen diese Berechtigungen über Zugriffsrichtlinien oder Kubernetes RBAC gewähren. Einzelheiten zur Erteilung dieser Berechtigungen finden Sie unter Kro Arbitrary Resource Permissions.

Berechtigungen für Plattformteams

Plattformteams benötigen Berechtigungen zum Erstellen und Verwalten ResourceGraphDefinitions.

Beispiel ClusterRole für Plattformteams:

apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: kro-platform-admin rules: - apiGroups: ["kro.run"] resources: ["resourcegraphdefinitions"] verbs: ["*"]

Binden Sie sich an Mitglieder des Plattform-Teams:

apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: platform-team-kro-admin subjects: - kind: Group name: platform-team apiGroup: rbac.authorization.k8s.io roleRef: kind: ClusterRole name: kro-platform-admin apiGroup: rbac.authorization.k8s.io

Berechtigungen des Anwendungsteams

Anwendungsteams benötigen Berechtigungen, um Instanzen benutzerdefinierter Ressourcen in ihren Namespaces zu erstellen.

Beispielrolle für Anwendungsteams:

apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: kro-app-developer namespace: my-app rules: - apiGroups: ["kro.run"] resources: ["webapps", "databases"] verbs: ["create", "get", "list", "update", "delete", "patch"]

An Mitglieder des Anwendungsteams binden:

apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: app-team-kro-developer namespace: my-app subjects: - kind: Group name: app-team apiGroup: rbac.authorization.k8s.io roleRef: kind: Role name: kro-app-developer apiGroup: rbac.authorization.k8s.io
Anmerkung

Die API-Gruppe in der Rolle (kro.runin diesem Beispiel) muss der in Ihrem ResourceGraphDefinition Schema apiVersion definierten entsprechen.

Schreibgeschützter Zugriff

Gewähren Sie schreibgeschützten Zugriff auf Ansicht ResourceGraphDefinitions und Instanzen ohne Änderungsberechtigungen.

Schreibgeschützt: ClusterRole

apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: kro-viewer rules: - apiGroups: ["kro.run"] resources: ["resourcegraphdefinitions"] verbs: ["get", "list", "watch"]

Schreibgeschützte Rolle für Instanzen:

apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: kro-instance-viewer namespace: my-app rules: - apiGroups: ["kro.run"] resources: ["webapps", "databases"] verbs: ["get", "list", "watch"]

Zugriff auf mehrere Namespaces

Gewähren Sie Anwendungsteams mithilfe von with Zugriff auf mehrere Namespaces. ClusterRoles RoleBindings

ClusterRole für den Zugriff auf mehrere Namespaces:

apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: kro-multi-namespace-developer rules: - apiGroups: ["kro.run"] resources: ["webapps"] verbs: ["create", "get", "list", "update", "delete"]

An bestimmte Namespaces binden:

apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: app-team-dev-access namespace: development subjects: - kind: Group name: app-team apiGroup: rbac.authorization.k8s.io roleRef: kind: ClusterRole name: kro-multi-namespace-developer apiGroup: rbac.authorization.k8s.io --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: app-team-staging-access namespace: staging subjects: - kind: Group name: app-team apiGroup: rbac.authorization.k8s.io roleRef: kind: ClusterRole name: kro-multi-namespace-developer apiGroup: rbac.authorization.k8s.io

Best Practices

Prinzip der geringsten Rechte: Erteilen Sie nur die Mindestberechtigungen, die für die jeweiligen Aufgaben der einzelnen Teams erforderlich sind.

Verwenden Sie Gruppen statt einzelner Benutzer: Binden Sie Rollen eher an Gruppen als an einzelne Benutzer, um die Verwaltung zu vereinfachen.

Getrennte Plattform- und Anwendungsaspekte: Plattformteams verwalten ResourceGraphDefinitions, Anwendungsteams verwalten Instanzen.

Namespace-Isolierung: Verwenden Sie Namespaces, um verschiedene Teams oder Umgebungen zu isolieren, wobei RBAC den Zugriff auf jeden Namespace steuert.

Schreibgeschützter Zugriff für Auditzwecke: Gewähren Sie Sicherheits- und Compliance-Teams zu Prüfungszwecken nur Lesezugriff.

Nächste Schritte