Certified Kubernetes Administration - 51
2024-06-22
- Kubernetes
- Cloud
Kubernetes Authorization
1. Introduction to Authorization:
-
Authentication: 사용자와 기계가 클러스터에 접근할 수 있는 방법을 배웠습니다.
-
Authorization: 인증 후 사용자나 기계가 할 수 있는 작업을 정의합니다.
2. Why Authorization is Necessary:
-
관리자 권한: 관리자는 클러스터의 모든 작업을 수행할 수 있습니다.
-
다른 사용자: 개발자, 테스터, 외부 애플리케이션 등도 접근할 수 있도록 사용자 계정을 만듭니다.
-
다양한 권한 수준: 모든 사용자에게 동일한 수준의 접근 권한을 부여하지 않습니다.
-
개발자는 클러스터 구성 수정 권한이 없습니다.
-
외부 애플리케이션은 필요한 최소 수준의 접근 권한만 가집니다.
-
-
네임스페이스 분리: 다른 팀이나 조직 간에 클러스터를 공유할 때, 네임스페이스 단위로 접근 권한을 제한합니다.
3. Authorization Mechanisms:
-
Node Authorization:
-
kubelet은 클러스터 내에서 관리 작업을 수행하기 위해 API 서버에 접근합니다.
-
system:node
그룹에 속한 사용자 요청을 처리합니다.
-
-
Attribute-Based Authorization:
-
사용자나 사용자 그룹과 권한 집합을 연결합니다.
-
정책 파일을 생성하여 API 서버에 전달합니다.
-
정책 변경 시 파일을 수동으로 수정하고 API 서버를 재시작해야 합니다.
-
-
Role-Based Access Control (RBAC):
-
직접 사용자와 권한을 연결하는 대신 역할을 정의합니다.
-
역할에 필요한 권한을 설정하고, 사용자를 역할에 연결합니다.
-
사용자 권한 변경 시 역할을 수정하여 일괄적으로 반영할 수 있습니다.
-
-
Webhook Authorization:
-
외부 정책 에이전트와 연동하여 승인 또는 거부를 결정합니다.
-
Kubernetes가 외부 API 호출을 통해 사용자의 접근 권한을 확인합니다.
-
4. Always Allow and Always Deny:
-
Always Allow: 모든 요청을 허용합니다.
-
Always Deny: 모든 요청을 거부합니다.
5. Configuring Authorization Modes:
-
Authorization Mode Option: Kube API Server에서 설정합니다.
-
기본 모드: Always Allow로 설정됩니다.
-
다중 모드: 콤마로 구분된 리스트로 여러 모드를 지정할 수 있습니다.
- 예:
node, rbac, webhook
- 예:
-
체인 방식: 요청이 처음부터 차례로 각 모드에서 승인 또는 거부됩니다.
-
첫 번째 모드에서 거부되면 다음 모드로 넘어갑니다.
-
승인되면 더 이상의 검사는 수행되지 않습니다.
-
Certified ...
Certified ...