-
Kubernetes의 역할 및 바인딩 조합 이해K8S 2023. 12. 29. 16:40
쿠버네티스는 RBAC를 통해 리소스에 대한 접근을 관리한다.
그리고 Role과 RoleBinding, ClusterRole과 ClusterRoleBinding에 대한 조합은
쿠버네티스 클러스터 내에서 다르게 적용된다.
1. Role + RoleBinding (네임스페이스 내에서만 사용 가능, 네임스페이스에 적용)
Role은 특정 네임스페이스 내의 리소스에 대한 접근을 제어한다.
그리고 RoleBinding은 해당 Role을 특정 사용자, 그룹, 또는 서비스 어카운트에 연결한다.
예시) 'dev' 네임스페이스에서 파드를 조회하고 생성할 수 있는 권한을 'user1'에게 부여하고자 한다.
Role: 'dev' 네임스페이스에서 파드를 조회하고 생성할 수 있는 권한을 정의한다.
RoleBinding: 생성된 Role을 'user1' 사용자에게 연결한다.
2. ClusterRole + ClusterRoleBinding (클러스터 전체에서 사용 가능, 클러스터에 적용)ClusterRole은 클러스터 전체에 걸쳐 리소스에 대한 접근을 제어한다.
그리고 ClusterRoleBinding을 사용하여 이 역할을 클러스터 전체의 사용자나 그룹에 할당한다.
예시) 클러스터 내의 모든 네임스페이스에서 모든 서비스를 조회할 수 있는 권한을 namespace1에 있는 SA와 namespace2에 있는 SA에 부여한다.
ClusterRole: 클러스터 전체의 서비스를 조회할 수 있는 권한을 정의한다.
ClusterRoleBinding: 해당 ClusterRole을 namespace1에 있는 SA와 namespace2에 있는 SA에 부여한다.
3. ClusterRole + RoleBinding (클러스터 전체에서 사용 가능, 네임스페이스에 적용)ClusterRole은 클러스터 전체에 대한 권한을 정의하지만, RoleBinding을 사용하여 이를 특정 네임스페이스에만 적용할 수 있다.
예시) 클러스터 전체에서 컨피그맵을 조회할 수 있는 권한을 'user2'에게 'prod' 네임스페이스에서만 부여한다.
ClusterRole: 클러스터 전체의 컨피그맵을 조회할 수 있는 권한을 정의한다.
RoleBinding: 'prod' 네임스페이스 내에서만 ClusterRole을 'user2' 사용자에게 연결한다.
4. Role + ClusterRoleBinding (불가능: 네임스페이스 내에서만 사용 가능, 클러스터에 적용)Role은 특정 네임스페이스에 국한된 권한을 정의하므로,
이를 클러스터 전체에 적용하는 ClusterRoleBinding과 함께 사용하는 것은 불가능하다.
반응형'K8S' 카테고리의 다른 글
Kubernetes에서 수동으로 사용자 인증서와 Context 만들기 (0) 2023.12.29 K8S 빠른 CLI 커맨드 정리 (0) 2023.12.29 Kube-bench 정리 및 사용 예시 (0) 2023.12.29 Kubernetes Network Policy 정리 및 예시 (0) 2023.11.26 Nginx를 Istio Gateway로 expose하는 예제 (0) 2023.08.11