이 페이지에서는 구성 동기화 및 해당 구성요소가 클러스터 수준에서 올바르게 액세스할 수 있게 하는 기본 권한을 보여줍니다.
기본 권한
다음 표에서는 구성 동기화가 기본적으로 사용 설정하는 권한을 보여줍니다. 구성 동기화가 사용 중인 동안에는 이러한 권한을 사용 중지하면 안 됩니다.
| 구성요소 | 네임스페이스 | 서비스 계정 | 권한 | Description(설명) |
|---|---|---|---|---|
reconciler-manager |
config-management-system |
reconciler-manager |
cluster-admin |
루트 조정자를 프로비저닝하고 루트 조정자에 대한 ClusterRoleBinding을 만들려면 reconciler-manager에 cluster-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-manager에 resource-group-manager-role 및 resource-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-reconciler 및 resource-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:
- '*'