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 deben tener 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.
Estos permisos se aplican a la versión 1.11.1 y posterior de Anthos Config Management.
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, reconciler-manager debe tener el permiso cluster-admin . |
root reconcilers |
config-management-system |
El nombre del conciliador raíz | cluster-admin |
Para aplicar recursos personalizados y con alcance de clúster, los conciliadores raíz deben tener el permiso cluster-admin . |
namespace reconcilers |
config-management-system |
El nombre del conciliador de espacios 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 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 estos permisos de forma automática mediante la inclusión de los siguientes ClusterRoles en el manifiesto 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 espacio 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 grupos 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:
- '*'