RBAC에 대하여

Yu Sang Min·2025년 8월 26일

CKA

목록 보기
108/110
post-thumbnail
Let's talk a little about RBAC resources:

A ClusterRole|Role defines a set of permissions and where it is available, in the whole cluster or just a single Namespace.

A ClusterRoleBinding|RoleBinding connects a set of permissions with an account and defines where it is applied, in the whole cluster or just a single Namespace.

Because of this there are 4 different RBAC combinations and 3 valid ones:

1. Role + RoleBinding (available in single Namespace, applied in single Namespace)
2. ClusterRole + ClusterRoleBinding (available cluster-wide, applied cluster-wide)
3. ClusterRole + RoleBinding (available cluster-wide, applied in single Namespace)
4. Role + ClusterRoleBinding (NOT POSSIBLE: available in single Namespace, applied cluster-wide)

ClusterRole / Role은 권한 집합과 해당 권한이 사용 가능한 범위를 정의

  • 전체 클러스터에서 사용할 수 있거나 단일 네임스페이스에서만 사용

ClusterRoleBinding|RoleBinding은 권한 집합을 계정과 연결하고 해당 권한이 적용되는 범위를 정의

  • 전체 클러스터에 적용되거나 단일 네임스페이스에만 적용됩니다.
  • 이로 인해 4가지 서로 다른 RBAC 조합이 있으며, 그 중 3가지가 유효합니다:
  1. Role + RoleBinding
  • 단일 네임스페이스에서 사용 가능, 단일 네임스페이스에 적용
  1. ClusterRole + ClusterRoleBinding
  • 클러스터 전체에서 사용 가능, 클러스터 전체에 적용
  1. ClusterRole + RoleBinding
  • 클러스터 전체에서 사용 가능, 단일 네임스페이스에 적용
  1. Role + ClusterRoleBinding
  • 불가능: 단일 네임스페이스에서 사용 가능하지만 클러스터 전체에 적용하려고 함

나의 경우

💡 clusterrole을 rolebinding 하여 사용하려다 보니 단일 네임스페이스에 적용이 되어 수작업으로 모든 ns에 rolebinding을 하는 예제를 풀었다. 비효율적인것 같다

profile
React, Node.js, AWS, Git, Github, Github Action, Docker, K8S

0개의 댓글