Config Sync のデフォルトの権限
このページでは、Config Sync とそのコンポーネントがクラスタレベルで適切なアクセス権を所有するために必要なデフォルトの権限の一覧を示します。
デフォルトの権限
次の表に、Config Sync がデフォルトで有効にする権限の一覧を示します。Config Sync の使用中は、これらの権限を無効にしないでください。
コンポーネント | Namespace | サービス アカウント | 権限 | 説明 |
---|---|---|---|---|
reconciler-manager |
config-management-system |
reconciler-manager |
cluster-admin |
ルート Reconciler をプロビジョニングし、ルート Reconciler の ClusterRoleBinding を作成するには、reconciler-manager に cluster-admin 権限が必要です。 |
root reconcilers |
config-management-system |
ルート Reconciler の名前 | cluster-admin |
クラスタ スコープのリソースとカスタム リソースを適用するには、ルート Reconciler に cluster-admin 権限が必要です。 |
namespace reconcilers |
config-management-system |
Namespace Reconciler の名前 | configsync.gke.io:ns-reconciler |
RepoSync オブジェクトと ResourceGroup オブジェクト、およびそれらのステータスを取得して更新するには、Namespace Reconciler に 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 |
クラスタ上のオブジェクトに対するリクエストを拒否するには、アドミッション Webhook に cluster-admin 権限が必要です。 |
importer |
config-management-system |
importer |
cluster-admin |
RBAC 権限を設定するには、importer に cluster-admin 権限が必要です。 |
Config Sync 固有の権限
以下では、上記の表に示した configsync.gke.io:ns-reconciler
権限と resource-group-manager-role resource-group-leader-election-role
権限の詳細について説明します。
Config Sync は、Namespace Reconciler とリソース グループ コントローラのマニフェストに次の ClusterRole を含めることで、これらの権限を自動的に適用します。
Namespace Reconciler の RBAC
次の ClusterRole は、Namespace Reconciler のロールベースのアクセス制御権限を示しています。
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:
- '*'