기본 구성 동기화 권한
이 페이지에는 구성 동기화 및 해당 구성요소가 클러스터 수준에서 올바른 액세스 권한을 가져야 하는 기본 권한이 나와 있습니다.
기본 권한
다음 표에는 구성 동기화가 기본적으로 사용 설정하는 권한이 나와 있습니다. 구성 동기화가 사용되는 동안에는 이러한 권한을 사용 중지하면 안 됩니다.
이러한 권한은 Anthos Config Management 버전 1.11.1 이상에 적용됩니다.
구성요소 | 네임스페이스 | 서비스 계정 | 권한 | 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 에 cluster-admin 권한이 있어야 합니다. |
구성 동기화 관련 권한
다음 섹션에서는 앞의 표에 나열된 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:
- '*'