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