반응형
1. 개념
- 쿠버네티스는 네임스페이스 단위에서의 유저 리소스 접근을 핸들링하기 위한 4가지 접근제어 방식이 존재
- Node : 스케줄링 된 파드의 kubelet에서 접근제어
- ABAC : 속성기반 접근제어
- RBAC : 역할기반 접근제어
- Webhook : POST 요청에 대한 접근제어
2. RBAC Role & RoleBinding YAML
- Role
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
namespace: default
name: test-pod-reader
rules:
- apiGroups: [""] # "" means api
resources: ["pods"]
verbs: ["get", "watch", "list"]
resourceNames: ["pod-A", "pod-B"]
- apiGroups: ["apps"]
resources: ["deployment"]
verbs: ["create", "list"]
- 9번 라인 : 핸들링할 API가 포함된 그룹
- 10번 라인 : 핸들링할 API 종류
- 11번 라인 : 핸들링하고자 하는 액션
- 12번 라인 : 핸들링을 허용하고자 하는 특정 리소스
- RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: read-pods
namespace: default
subjects:
- kind: User or Group or ServiceAccount
name: jane
apiGroup: rbac.authorization.k8s.io
roleRef:
kind: Role
name: test-pod-reader
apiGroup: rbac.authorization.k8s.io
- 8 ~ 11번 라인 : 롤을 적용할 유저
- 13 ~ 16번 라인 : 유저에게 적용할 롤
3. API 그룹
- 리소스를 핸들링할 수 있는 API를 각 종류별로 모아놓은 그룹
- apiVersion에 명시한 그것
- 6가지 상위 그룹이 존재
- /metrics
- /healthz
- /version
- /api
- /apis
- /logs
- /api에 포함된 api
- /apis에 포함된 api
- API버전(그룹)을 확인하는 방법 : kubectl api-resources
4. 적용중인 접근제어 종류 확인
- vi /etc/kubernetes/manifests/kube-apiserver.yaml
- authorization-mode 확인
5. RBAC 핸들링
- 롤 목록 확인 : kubectl get role
- 롤 상세 정보 확인 : kubectl describe role [롤_이름]
- 롤 바인딩 목록 확인 : kubectl get rolebindings
- 롤 바인딩 상세 정보 확인 : kubectl describe rolebindings [롤바인딩_이름]
- 권한 가능 여부 확인 : kubectl auth can-i [액션] [리소스] --as [유저]
반응형
'Kubernetes' 카테고리의 다른 글
Kubernetes 서비스어카운트(ServiceAccount) 개념 및 설정1 (0) | 2023.03.16 |
---|---|
Kubernetes 클러스터 롤(ClusterRole) 개념 및 설정 (0) | 2023.03.16 |
Kubernetes kubeconfig 개념 및 설정 (0) | 2023.03.16 |
Kubernetes 리소스 설정(Resource Configuration)과 ETCD 백업 및 복구 (0) | 2023.03.16 |
Kubernetes kubeadm을 활용한 클러스터 업그레이드 (0) | 2023.03.16 |