Section 7-3. Authorization
udemy의 Certified Kubernetes Administrator (CKA) with Practice Tests 강의 및 쿠버네티스 인 액션 (마르코 룩샤)를 참고하여 정리한 글입니다.
Section07. Security
Authorization
- 클러스터에 필요한 작업에 대한 접근만 제공하기 위해 Authorization을 지원하며 그 때의 인증 메커니즘은 Node, ABAC(Attribute-Based Access Control), RBAC(Role-Based Access Control), Webhook 등이 있다.
Node
- kube-apiserver는 관리 목적으로 사용자나 kubelet에 의해 액세스되며 kubelet은 kube-apiserver에 액세스해 서비스, 포인트, 노드, 파드에 관한 정보를 읽고 노드에 대한 상태 정보를 보고한다.
- kubelet의 요청은 node Authorizer에 의해 처리되는데 이 때 kubelet은 system:node 그룹의 일부이며 이름 앞에
system:node
를 붙여 요청하면 node Authorizer가 이를 보고 승인하여 권한을 부여한다.
ABAC
- 속성 기반 접근 제어 ABAC이란 속성과 결합한 정책의 사용을 통해 사용자에게 접근 권한을 부여하는 접근 제어 패러다임이다.
- 즉 사용자나 사용자 그룹을 권한 모음으로 연결하는 것이다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
+===========================================+ | # 그룹 # 권한 | | | | dev-user =====> Can view Pods | | Can create Pods | | Can Delete Pods | | | | dev-users =====> Can view Pods | | Can create Pods | | Can Delete Pods | | | | security-1 =====> Can view CSR | | Can approve CSR | +===========================================+ {"kind": "Policy, "spec": {"user": "dev-user", "namespace: "*", "resource": "pods", "apiGroup": "*"}} {"kind": "Policy, "spec": {"user": "dev-users", "namespace: "*", "resource": "pods", "apiGroup": "*"}} {"kind": "Policy, "spec": {"user": " security-1", "namespace: "*", "resource": "csr", "apiGroup": "*"}}
- 각각의 사용자나 그룹에 대해 인접 형식으로 정의된 Policy 파일을 생성하고 kube-api server에 이 파일을 넘겨야 한다.
- 보안을 추가하거나 변경해야 할 때마다 Policy 파일을 수동으로 수정하고 kube-api server를 재시작해야하므로 ABAC은 관리하기 어렵다.
RBAC
- 역할 기반 접근 제어 RBAC이란 사용자의 역할을 기반으로 컴퓨터나 네트워크 리소스에 대한 접근을 규제하는 방식이다.
- 즉 요구되는 권한 집합으로 역할을 생성하고 해당 역할이 필요한 사용자에게 그 역할을 연결한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
+===============================================+ | # 그룹 # 권한 모음 | | +------------------+ | | dev-user =====> | Can view Pods | | | | Can create Pods | | | dev-users =====> | Can Delete Pods | | | | | | | | Developer | | | +------------------+ | | | | +------------------+ | | security-1 =====> | Can View Csr | | | | Can approve CSR | | | | | | | | Security | | | +------------------+ | | | +===============================================+
- 외부에서 권한 관리를 하고자할 경우 사용할 수 있다.
This post is licensed under CC BY 4.0 by the author.