Kubernetes

Kubernetes RBAC 알아보기

DevelopC 2022. 9. 22. 21:01
728x90

Kubernetes RBAC 알아보기

kubernetes의 권한 설정은 RBAC 방식으로 설정할 수 있습니다. 자세한 설명은 공식문서를 참고해주세요. 아래의 목록은 Kubernetes에서 기본으로 제공하는 ClusterRole입니다. 기본으로 제공하는 ClusterRole을 활용하면, 복잡한 권한 설정을 하지 않고 쉽게 권한 설정을 할 수 있습니다.

ClusterRole Description
cluster-admin kubernetes의 모든 리소스를 제한없이 접근할 수 있는 권한입니다. 최고관리자 권한설정입니다.
admin RoleBinding 을 사용하여 네임스페이스 관리자 권한을 설정합니다.
edit Role / RoleBinding을 제외하고, 네임스페이스 안에 있는 리소스에 대한 읽기/쓰기 권한을 설정합니다.
view 네임스페이스 안에 있는 리소스에 대한 읽기 권한을 설정합니다

Aggregated ClusterRoles

Kubernetes 운영시 필요한 어플리케이션 설치로 인해 Custom Resource가 생기면서 권한 관리를 해야 하는 일이 빈번하게 발생하는데요. 이럴 때 aggregate 방식을 사용하여, Cluster Role에 포함시킬 수 있습니다. 아래의 예제처럼 ClusterRole을 생성하여 labels을 추가해주면 됩니다.

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: aggregate-cron-tabs-edit
  labels:
    # Add these permissions to the "admin" and "edit" default roles.
    rbac.authorization.k8s.io/aggregate-to-admin: "true"
    rbac.authorization.k8s.io/aggregate-to-edit: "true"
rules:
- apiGroups: ["stable.example.com"]
  resources: ["crontabs"]
  verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: aggregate-cron-tabs-view
  labels:
    # Add these permissions to the "view" default role.
    rbac.authorization.k8s.io/aggregate-to-view: "true"
rules:
- apiGroups: ["stable.example.com"]
  resources: ["crontabs"]
  verbs: ["get", "list", "watch"]

 

728x90