Config Sync-Standardberechtigungen
Auf dieser Seite werden die Standardberechtigungen aufgelistet, die Config Sync und seine Komponenten benötigen, um korrekten Zugriff auf Clusterebene zu haben.
Standardberechtigungen
In der folgenden Tabelle sind die Berechtigungen aufgeführt, die Config Sync standardmäßig aktiviert. 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 |
Zum Bereitstellen der Root-Abgleiche und zum Erstellen des ClusterRoleBinding-Objekts für die Root-Abgleicher muss reconciler-manager die Berechtigung cluster-admin haben. |
root reconcilers |
config-management-system |
Der Name des Root-Abgleichers | cluster-admin |
Zum Anwenden von clusterbezogenen und benutzerdefinierten Ressourcen müssen die Stammabgleiche die Berechtigung cluster-admin haben. |
namespace reconcilers |
config-management-system |
Der Name des Namespace-Abgleichs | configsync.gke.io:ns-reconciler |
Zum Abrufen und Aktualisieren der RepoSync- und ResourceGroup-Objekte sowie ihrer Status benötigen die Namespace-Abgleicher die Berechtigung configsync.gke.io:ns-reconciler . |
resource-group-controller-manager |
config-management-system |
resource-group-sa |
Zum Prüfen des Objektstatus und Aktivieren der Leader-Auswahl 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 |
Zum Ablehnen von Anfragen an ein Objekt im Cluster muss der Zulassungs-Webhook die Berechtigung cluster-admin haben. |
importer |
config-management-system |
importer |
cluster-admin |
Zum Festlegen von RBAC-Berechtigungen muss der importer die Berechtigung „cluster-admin“ haben. |
Spezifische Berechtigungen für Config Sync
In den folgenden Abschnitten werden die Berechtigungen configsync.gke.io:ns-reconciler
und resource-group-manager-role resource-group-leader-election-role
beschrieben, die in der vorherigen Tabelle aufgeführt sind.
Config Sync wendet diese Berechtigungen automatisch an, indem es die folgenden ClusterRoles in die Manifeste für den Namespace-Abgleich und den Ressourcengruppen-Controller einfügt.
RBAC für Namespace-Abgleiche
Die folgende ClusterRole zeigt die rollenbasierten Zugriffssteuerungsberechtigungen für Namespace-Abgleiche:
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 Ressourcengruppencontroller:
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:
- '*'