Autorisations Config Sync par défaut

Cette page liste les autorisations par défaut dont Config Sync et ses composants ont besoin pour disposer d'un accès approprié au niveau du cluster.

Autorisations par défaut

Le tableau suivant répertorie les autorisations que Config Sync active par défaut. Vous ne devez pas désactiver ces autorisations lorsque Config Sync est utilisé.

Composant Namespace Compte de service Autorisations Description
reconciler-manager config-management-system reconciler-manager cluster-admin Pour provisionner les rapprochements racines et créer le ClusterRoleBinding pour les rapprochements racines, le reconciler-manager doit disposer de l'autorisation cluster-admin.
root reconcilers config-management-system Nom du rapprochement de racines cluster-admin Pour appliquer des ressources personnalisées à l'échelle du cluster, les rapprochements de racines doivent disposer de l'autorisation cluster-admin.
namespace reconcilers config-management-system Nom du rapprochement d'espaces de noms configsync.gke.io:ns-reconciler Pour obtenir et mettre à jour les objets RepoSync et ResourceGroup ainsi que leurs états, les rapprochements d'espaces de noms ont besoin de l'autorisation configsync.gke.io:ns-reconciler.
resource-group-controller-manager config-management-system resource-group-sa Pour vérifier l'état de l'objet et activer l'élection du responsable, resource-group-controller-manager a besoin des rôles resource-group-manager-role et resource-group-leader-election-role.
admission-webhook config-management-system admission-webhook cluster-admin Pour refuser les requêtes sur tout objet du cluster, le webhook d'admission doit disposer des autorisations cluster-admin.
importer config-management-system importer cluster-admin Pour que vous puissiez définir des autorisations RBAC, le compte importer doit disposer de l'autorisation cluster-admin.

Autorisations spécifiques à Config Sync

Les sections suivantes détaillent les autorisations configsync.gke.io:ns-reconciler et resource-group-manager-role resource-group-leader-election-role répertoriées dans le tableau précédent.

Config Sync applique automatiquement ces autorisations en incluant les ClusterRoles suivants dans les fichiers manifestes du rapprochement d'espaces de noms et du contrôleur de groupe de ressources.

RBAC pour les rapprochements d'espaces de noms

Le ClusterRole suivant montre les autorisations de contrôle des accès basées sur les rôles pour les rapprochements d'espaces de noms:

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 pour le contrôleur de groupe de ressources

Le ClusterRole suivant montre les autorisations de contrôle des accès basées sur les rôles pour le contrôleur de groupe de ressources:

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