Permisos predeterminados del Sincronizador de configuración
En esta página, se enumeran los permisos predeterminados que el Sincronizador de configuración y sus componentes necesitan para tener el acceso correcto a nivel de clúster.
Permisos predeterminados
En la siguiente tabla, se enumeran los permisos que el Sincronizador de configuración habilita de forma predeterminada. No debes inhabilitar estos permisos mientras el Sincronizador de configuración esté en uso.
Componente | Espacio de nombres | Cuenta de servicio | Permisos | Descripción |
---|---|---|---|---|
reconciler-manager |
config-management-system |
reconciler-manager |
cluster-admin |
A fin de aprovisionar los conciliadores raíz y crear el ClusterRoleBinding para
los conciliadores raíz, el reconciler-manager debe tener
el permiso cluster-admin . |
root reconcilers |
config-management-system |
El nombre del reconciliador raíz | cluster-admin |
Para aplicar recursos personalizados y con permiso de clúster, los conciliadores raíz deben
tener el permiso cluster-admin . |
namespace reconcilers |
config-management-system |
El nombre del conciliador de espacio de nombres | configsync.gke.io:ns-reconciler |
Para obtener y actualizar los objetos RepoSync y ResourceGroup, y sus
estados, los conciliadores de espacio de nombres necesitan el
permiso configsync.gke.io:ns-reconciler . |
resource-group-controller-manager |
config-management-system |
resource-group-sa |
Para verificar el estado del objeto y habilitar la elección de líder, resource-group-controller-manager necesita las funciones resource-group-manager-role y resource-group-leader-election-role . |
|
admission-webhook |
config-management-system |
admission-webhook |
cluster-admin |
Para rechazar solicitudes a cualquier objeto en el clúster, el webhook de admisión debe
tener los permisos cluster-admin . |
importer |
config-management-system |
importer |
cluster-admin |
Para establecer permisos de RBAC, importer debe tener permiso de administrador de clúster. |
Permisos específicos del Sincronizador de configuración
En las siguientes secciones, se detallan los permisos configsync.gke.io:ns-reconciler
y resource-group-manager-role resource-group-leader-election-role
que se enumeran en la tabla anterior.
El Sincronizador de configuración aplica automáticamente estos permisos mediante la inclusión de los siguientes ClusterRoles en los manifiestos del Conciliador de espacios de nombres y del controlador de grupos de recursos.
RBAC para conciliadores de espacio de nombres
El siguiente ClusterRole muestra los permisos de control de acceso basados en funciones para los conciliadores de espacios de nombres:
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 para el controlador de grupos de recursos
El siguiente ClusterRole muestra los permisos de control de acceso basados en funciones para el controlador de grupo de recursos:
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:
- '*'