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:
  - '*'