Auf dieser Seite werden die Standardberechtigungen aufgeführt, die Config Sync und seine Komponenten für den korrekten Zugriff auf Clusterebene benötigen.
Standardberechtigungen
In der folgenden Tabelle sind die Berechtigungen aufgeführt, die von Config Sync standardmäßig aktiviert werden. Sie sollten diese Berechtigungen nicht deaktivieren, während Config Sync verwendet wird.
| Komponente | Namespace | Dienstkonto | Berechtigungen | Beschreibung |
|---|---|---|---|---|
reconciler-manager |
config-management-system |
reconciler-manager |
cluster-admin |
Damit die Root-Abgleicher bereitgestellt und die ClusterRoleBinding für die Root-Abgleicher erstellt werden kann, muss der reconciler-manager die Berechtigung cluster-admin haben. |
root reconcilers |
config-management-system |
Der Name des Root-Abgleichers | cluster-admin |
Die Root-Abgleicher müssen die Berechtigung cluster-admin haben, um clusterbezogene und benutzerdefinierte Ressourcen anwenden zu können. |
namespace reconcilers |
config-management-system |
Der Name des Namespace-Abgleichers | configsync.gke.io:ns-reconciler |
Zum Abrufen und Aktualisieren der RepoSync- und ResourceGroup-Objekte und deren Status benötigen die Namespace-Abgleicher die Berechtigung configsync.gke.io:ns-reconciler. |
resource-group-controller-manager |
config-management-system |
resource-group-sa |
Um den Objektstatus zu prüfen und die Leader-Auswahl zu aktivieren, benötigt resource-group-controller-manager die Rollen resource-group-manager-role und resource-group-leader-election-role. |
|
admission-webhook |
config-management-system |
admission-webhook |
cluster-admin |
Um Anfragen an jedes Objekt im Cluster ablehnen zu können, muss der Zulassungs-Webhook cluster-admin-Berechtigungen haben. |
importer |
config-management-system |
importer |
cluster-admin |
Zum Festlegen von RBAC-Berechtigungen muss der importer die Berechtigung „Clusteradministrator“ haben. |
Config Sync-spezifische Berechtigungen
In den folgenden Abschnitten werden die in der vorherigen Tabelle aufgeführten Berechtigungen configsync.gke.io:ns-reconciler und resource-group-manager-role resource-group-leader-election-role näher beschrieben.
Config Sync wendet diese Berechtigungen automatisch an, indem die folgenden ClusterRoles in die Manifeste von Namespace Reconciler und Resource Group Controller aufgenommen werden.
RBAC für Namespace-Abgleicher
Die folgende ClusterRole zeigt die Berechtigungen für die rollenbasierte Zugriffssteuerung für Namespace-Abgleicher:
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: configsync.gke.io:ns-reconciler
labels:
configmanagement.gke.io/system: "true"
configmanagement.gke.io/arch: "csmr"
rules:
- apiGroups: ["configsync.gke.io"]
resources: ["reposyncs"]
verbs: ["get"]
- apiGroups: ["configsync.gke.io"]
resources: ["reposyncs/status"]
verbs: ["get","list","update"]
- apiGroups: ["kpt.dev"]
resources: ["resourcegroups"]
verbs: ["*"]
- apiGroups: ["kpt.dev"]
resources: ["resourcegroups/status"]
verbs: ["*"]
- apiGroups:
- policy
resources:
- podsecuritypolicies
resourceNames:
- acm-psp
verbs:
- use
RBAC für Resource Group Controller
Die folgende ClusterRole zeigt die rollenbasierten Zugriffssteuerungsberechtigungen für den Resource Group Controller:
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
creationTimestamp: null
labels:
configmanagement.gke.io/arch: "csmr"
configmanagement.gke.io/system: "true"
name: resource-group-manager-role
rules:
# This permission is needed to get the status for managed resources
- apiGroups:
- '*'
resources:
- '*'
verbs:
- get
- list
- watch
# This permission is needed to watch/unwatch types as they are registered or removed.
- apiGroups:
- apiextensions.k8s.io
resources:
- customresourcedefinitions
verbs:
- get
- list
- watch
# This permission is needed so that the ResourceGroup Controller can reconcile a ResourceGroup CR
- apiGroups:
- kpt.dev
resources:
- resourcegroups
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
# This permission is needed so that the ResourceGroup Controller can update the status of a ResourceGroup CR
- apiGroups:
- kpt.dev
resources:
- resourcegroups/status
verbs:
- get
- patch
- update
# This permission is needed so that the ResourceGroup Controller can work on a cluster with PSP enabled
- apiGroups:
- policy
resourceNames:
- acm-psp
resources:
- podsecuritypolicies
verbs:
- use
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
labels:
configmanagement.gke.io/arch: "csmr"
configmanagement.gke.io/system: "true"
name: resource-group-leader-election-role
namespace: resource-group-system
rules: // The following permissions are needed so that the leader election can work
- apiGroups:
- ""
resources:
- configmaps
verbs:
- get
- list
- watch
- create
- update
- patch
- delete
- apiGroups:
- ""
resources:
- configmaps/status
verbs:
- get
- update
- patch
- apiGroups:
- ""
resources:
- events
verbs:
- create
- apiGroups:
- coordination.k8s.io
resources:
- leases
verbs:
- '*'