Notice
Recent Posts
Recent Comments
Link
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Archives
Today
Total
관리 메뉴

전공공부

[K8S - CKA] Cluster Role & Role Binding 본문

Study/K8S

[K8S - CKA] Cluster Role & Role Binding

monitor 2024. 1. 11. 22:17

이전 내용에서는 사용자를 네임스페이스 리소스(Pod,Deployments,...)에 인증하는 방법을 알아보았습니다. 우리는 그것에 Roles 및 RoleBindings을 사용했구요. 그러나, 사용자에게 Node 또는 PV와 같은 클러스터 범위의 리소스에 권한을 부여하려면 어떻게 해야 할까요? 

 

해결법은 Cluster Roles Cluster Role Bindings을 쓰면 됩니다.

 

클러스터 롤 (Cluster Roles) 

 

클러스터 롤은 롤과 매우 유사하지만 클러스터 범위의 리소스를 위한 것입니다. 예를 들어 클러스터 관리자 롤을 만들어 클러스터 관리자에게 클러스터 내의 노드를 보거나 만들거나 삭제할 수 있는 권한을 부여할 수 있습니다. 마찬가지로 스토리지 관리자 롤을 만들어 스토리지 관리자에게 PV, PVC를 만들 수 있는 권한을 부여할 수 있습니다. 클러스터 롤 정의 파일을 만들고 apiVersion을 rbac.authorization.k8s.io/v1로 설정하고 kind를 ClusterRole로 설정합니다. 나머지는 Role 만들 듯이 하면 됩니다.

 

apiVersion: rbac.authorization.k8s.io/v1 
kind: ClusterRole 
metadata:
   namespace: default
   name: cluster-administrator
rules:
- apiGroups: [""] # "" indicates the core API group  
  resources: ["nodes"]
  verbs: ["get", "list", "create", "delete"]

 

클러스터 롤 바인딩 (Cluster Role Binding)

 

 이제 해당 사용자를 해당 클러스터 롤에 연결하는 해봅시다. 이를 위해 Cluster Role Binding이라는 다른 객체를 만듭니다. 여기서는 클러스터 관리자 롤 바인딩이라는 이름을 사용합니다.

 

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: cluster-admin-role-binding
  namespace: default
subjects:
- kind: User
  name: cluster-admin 
  apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: ClusterRole 
  name: cluster-administrator
  apiGroup: rbac.authorization.k8s.io

 

아래 명령어로 개체를 만듭니다.

$ kubectl create -f cluster-admin-role-binding.yaml

 

TIP

 

클러스터 롤으로 유저를 만들고 네임스페이스 스코프 리소스에 대한 개체로 만들면 어떻게 될까요? 해당 네임스페이스 스코프 리소스 개체는 다른 네임스페이스에서도 해당 유저가 접속 할 수 있겠죠.

'Study > K8S' 카테고리의 다른 글

[K8S - CKA] Image Security  (0) 2024.01.16
[K8S - CKA] ServiceAccounts  (0) 2024.01.14
[K8S - CKA] Role Based Access Controls  (1) 2024.01.10
[K8S - CKA] Authorization  (0) 2024.01.09
[K8S - CKA] API Groups  (1) 2024.01.08