Certificated 도전/CKA - Kubernetes

[CKA] Role , RoleBinding 이해하기 - 단골 문제

지추월자 2023. 12. 4. 17:39
반응형

Role은 특정 네임스페이스 내에서 사용자 또는 그룹에게 허용되는 권한을 정의합니다. Role은 해당 네임스페이스 내의 리소스에 대한 접근 권한을 제어합니다.Role을 사용하여 특정 리소스(예: 파드, 서비스 등)에 대한 CRUD(Create, Read, Update, Delete) 작업을 수행할 수 있는 권한을 정의합니다.

예시를 들어서 바로 이해해봅시다.

apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  namespace: mynamespace
  name: pod-reader
rules:
- apiGroups: [""]
  resources: ["pods"]
  verbs: ["get", "watch", "list"]

RoleBinding은 특정 Role을 사용자, 그룹 또는 서비스 어카운트에 연결하는데 사용됩니다. 이를 통해 그들이 Role에 정의된 권한을 실제로 사용할 수 있게 됩니다. RoleBinding을 통해 특정 사용자나 그룹에게 Role에서 정의한 권한을 실제로 할당합니다.

# 예시 RoleBinding 정의
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: read-pods
  namespace: mynamespace
subjects:
- kind: User
  name: "johndoe" # "name" is case sensitive
  apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: Role
  name: pod-reader
  apiGroup: rbac.authorization.k8s.io

해당 예시를 보면 Role은 mynamespace 네임스페이스에서 파드를 조회할 권한을 정의하고, RoleBinding은 사용자 johndoe에게 이 Role을 할당하여 실제로 해당 권한을 사용할 수 있게 합니다.

관련해서 참고해서 추가적인 공부를 희망 하신다면, https://kubernetes.io/docs/reference/access-authn-authz/rbac/

 

Using RBAC Authorization

Role-based access control (RBAC) is a method of regulating access to computer or network resources based on the roles of individual users within your organization. RBAC authorization uses the rbac.authorization.k8s.io API group to drive authorization decis

kubernetes.io

 

반응형