기본 구성 동기화 권한

이 페이지에서는 구성 동기화 및 해당 구성요소가 클러스터 수준에서 올바르게 액세스할 수 있게 하는 기본 권한을 보여줍니다.

기본 권한

다음 표에서는 구성 동기화가 기본적으로 사용 설정하는 권한을 보여줍니다. 구성 동기화가 사용 중인 동안에는 이러한 권한을 사용 중지하면 안 됩니다.

구성요소 네임스페이스 서비스 계정 권한 Description(설명)
reconciler-manager config-management-system reconciler-manager cluster-admin 루트 조정자를 프로비저닝하고 루트 조정자에 대한 ClusterRoleBinding을 만들려면 reconciler-managercluster-admin 권한이 있어야 합니다.
root reconcilers config-management-system 루트 조정자 이름 cluster-admin 클러스터 범위 및 커스텀 리소스를 적용하려면 루트 조정자에게 cluster-admin 권한이 있어야 합니다.
namespace reconcilers config-management-system 네임스페이스 조정자 이름 configsync.gke.io:ns-reconciler RepoSync 및 ResourceGroup 객체 및 해당 상태를 가져오고 업데이트하려면 네임스페이스 조정자에게 configsync.gke.io:ns-reconciler 권한이 필요합니다.
resource-group-controller-manager config-management-system resource-group-sa 객체 상태를 확인하고 리더 선택을 사용 설정하려면 resource-group-controller-managerresource-group-manager-roleresource-group-leader-election-role 역할이 필요합니다.
admission-webhook config-management-system admission-webhook cluster-admin 클러스터에서 객체에 대한 요청을 거부하려면 허용 웹훅에 cluster-admin 권한이 있어야 합니다.
importer config-management-system importer cluster-admin RBAC 권한을 설정하려면 importer에 클러스터 관리자 권한이 있어야 합니다.

구성 동기화 관련 권한

다음 섹션에서는 위의 표에 나열된 configsync.gke.io:ns-reconcilerresource-group-manager-role resource-group-leader-election-role 권한을 자세히 설명합니다.

구성 동기화는 네임스페이스 조정자 및 리소스 그룹 컨트롤러 매니페스트에 다음 ClusterRole을 포함하여 자동으로 이러한 권한을 자동으로 적용합니다.

네임스페이스 조정자용 RBAC

다음 ClusterRole은 네임스페이스 조정자에 대한 역할 기반 액세스 제어 권한을 보여줍니다.

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

다음 ClusterRole은 리소스 그룹 컨트롤러에 대한 역할 기반 액세스 제어 권한을 보여줍니다.

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