1.2. 다중 클러스터 엔진 Operator 역할 기반 액세스 제어
RBAC는 콘솔 수준 및 API 수준에서 검증됩니다. 콘솔의 작업은 사용자 액세스 역할 권한에 따라 활성화하거나 비활성화할 수 있습니다. 제품의 특정 라이프사이클에 대한 RBAC에 대한 자세한 내용은 다음 섹션을 참조하십시오.
1.2.1. 역할 개요
일부 제품 리소스는 클러스터 전체이며 일부는 네임스페이스 범위입니다. 일관된 액세스 제어를 위해 사용자에게 클러스터 역할 바인딩 및 네임스페이스 역할 바인딩을 적용해야 합니다. 지원되는 다음 역할 정의의 표 목록을 확인합니다.
1.2.1.1. 역할 정의 표
Role | 정의 |
---|---|
|
OpenShift Container Platform 기본 역할입니다. |
|
|
|
|
|
|
|
|
|
|
|
admin, edit, view는 OpenShift Container Platform 기본 역할입니다. 이러한 역할에 대한 네임스페이스 범위 바인딩이 있는 사용자는 특정 네임스페이스의 |
중요:
- 모든 사용자는 OpenShift Container Platform에서 프로젝트를 생성할 수 있으므로 네임스페이스에 대한 관리자 역할 권한이 부여됩니다.
-
사용자에게 클러스터에 대한 역할 액세스 권한이 없는 경우 클러스터 이름이 표시되지 않습니다. 클러스터 이름은 다음 기호와 함께 표시됩니다.
-
.
RBAC는 콘솔 수준 및 API 수준에서 검증됩니다. 콘솔의 작업은 사용자 액세스 역할 권한에 따라 활성화하거나 비활성화할 수 있습니다. 제품의 특정 라이프사이클에 대한 RBAC에 대한 자세한 내용은 다음 섹션을 참조하십시오.
1.2.2. 클러스터 라이프사이클 RBAC
다음 클러스터 라이프사이클 RBAC 작업을 확인합니다.
모든 관리 클러스터에 대한 클러스터 역할 바인딩을 생성하고 관리합니다. 예를 들어 다음 명령을 입력하여 클러스터 역할
open-cluster-management:cluster-manager-admin
에 대한 클러스터 역할 바인딩을 생성합니다.oc create clusterrolebinding <role-binding-name> --clusterrole=open-cluster-management:cluster-manager-admin --user=<username>
이 역할은 모든 리소스 및 작업에 액세스할 수 있는 슈퍼유저입니다. 클러스터 범위의
관리 클러스터
리소스, 관리 클러스터를 관리하는 리소스의 네임스페이스, 이 역할이 있는 네임스페이스의 리소스를 생성할 수 있습니다. 권한 오류를 방지하기 위해 역할연결이 필요한 ID의 사용자 이름을
추가해야 할 수 있습니다.다음 명령을 실행하여
cluster-name
이라는 관리 클러스터의 클러스터 역할 바인딩을 관리합니다.oc create clusterrolebinding (role-binding-name) --clusterrole=open-cluster-management:admin:<cluster-name> --user=<username>
이 역할에는 클러스터 범위의
managedcluster
리소스에 대한 읽기 및 쓰기 권한이 있습니다. 이는managedcluster
가 네임스페이스 범위 리소스가 아닌 클러스터 범위 리소스이므로 필요합니다.다음 명령을 입력하여 클러스터 역할
admin
에 대한 네임스페이스 역할 바인딩을 생성합니다.oc create rolebinding <role-binding-name> -n <cluster-name> --clusterrole=admin --user=<username>
이 역할에는 관리 클러스터의 네임스페이스의 리소스에 대한 읽기 및 쓰기 권한이 있습니다.
open-cluster-management:view:<cluster-name
> 클러스터 역할에 대한 클러스터 역할 바인딩을 생성하여cluster-name
이라는 관리 클러스터를 확인합니다.oc create clusterrolebinding <role-binding-name> --clusterrole=open-cluster-management:view:<cluster-name> --user=<username>
이 역할은 클러스터 범위의
managedcluster
리소스에 대한 읽기 액세스 권한이 있습니다. 이는managedcluster
가 클러스터 범위 리소스이므로 필요합니다.다음 명령을 입력하여 클러스터 역할
뷰에 대한
네임스페이스 역할 바인딩을 생성합니다.oc create rolebinding <role-binding-name> -n <cluster-name> --clusterrole=view --user=<username>
이 역할에는 관리 클러스터의 네임스페이스의 리소스에 대한 읽기 전용 권한이 있습니다.
다음 명령을 입력하여 액세스할 수 있는 관리 클러스터 목록을 확인합니다.
oc get managedclusters.clusterview.open-cluster-management.io
이 명령은 클러스터 관리자 권한이 없는 관리자와 사용자가 사용합니다.
다음 명령을 입력하여 액세스할 수 있는 관리 클러스터 세트 목록을 확인합니다.
oc get managedclustersets.clusterview.open-cluster-management.io
이 명령은 클러스터 관리자 권한이 없는 관리자와 사용자가 사용합니다.
1.2.2.1. 클러스터 풀 RBAC
다음 클러스터 풀 RBAC 작업을 확인합니다.
클러스터 관리자는 관리 클러스터 세트를 생성하고 그룹에 역할을 추가하여 관리자 권한을 부여하여 클러스터 풀 프로비저닝 클러스터를 사용합니다. 다음 예제를 확인합니다.
다음 명령을 사용하여
server-foundation-clusterset
관리 클러스터 세트에관리자
권한을 부여합니다.oc adm policy add-cluster-role-to-group open-cluster-management:clusterset-admin:server-foundation-clusterset server-foundation-team-admin
다음 명령을 사용하여
server-foundation-clusterset
관리 클러스터 세트에보기
권한을 부여합니다.oc adm policy add-cluster-role-to-group open-cluster-management:clusterset-view:server-foundation-clusterset server-foundation-team-user
클러스터 풀
server-foundation-clusterpool
의 네임스페이스를 만듭니다. 역할 권한을 부여하려면 다음 예제를 확인합니다.다음 명령을 실행하여 server-foundation-
team-
에 부여합니다.admin
에 대한 관리자 권한을server-foundation-
clusterpooloc adm new-project server-foundation-clusterpool oc adm policy add-role-to-group admin server-foundation-team-admin --namespace server-foundation-clusterpool
팀 관리자로 클러스터 세트 레이블
cluster.open-cluster-management.io/clusterset=server-foundation-clusterset
를 사용하여ocp46-aws-clusterpool
이라는 클러스터 풀을 생성합니다.-
server-foundation-webhook
는 클러스터 풀에 클러스터 세트 레이블이 있는지, 사용자가 클러스터 세트에 클러스터 풀을 생성할 수 있는 권한이 있는지 확인합니다. -
server-foundation-controller
는server-foundation-team-user
의server-foundation-clusterpool
네임스페이스에 대한보기
권한을 부여합니다.
-
클러스터 풀이 생성되면 클러스터 풀이
클러스터 배포를
생성합니다. 자세한 내용은 계속 읽으십시오.-
server-foundation-controller
는server-foundation-team-
의admin
clusterdeployment
네임스페이스에 대한 관리자 권한을 부여합니다. server-foundation-controller
는server-foundation-team-user
에 대한보기
권한클러스터 배포
네임스페이스를 부여합니다.참고:
team-admin
및team-user
로clusterpool
,clusterdeployment
,clusterclaim
에 대한관리자
권한이 있습니다.
-
1.2.2.2. 클러스터 라이프사이클을 위한 콘솔 및 API RBAC 테이블
클러스터 라이프사이클에 대해 다음 콘솔 및 API RBAC 테이블을 확인합니다.
리소스 | 관리자 | edit | view |
---|---|---|---|
클러스터 | 읽기, 업데이트, 삭제 | - | 읽기 |
클러스터 세트 | get, update, bind, join | 언급되지 않은 편집 역할 | get |
관리형 클러스터 | 읽기, 업데이트, 삭제 | 언급된 편집 역할 없음 | get |
공급자 연결 | 생성, 읽기, 업데이트 및 삭제 | - | 읽기 |
API | 관리자 | edit | view |
---|---|---|---|
이 API의 명령에 | 생성, 읽기, 업데이트, 삭제 | 읽기, 업데이트 | 읽기 |
이 API의 명령에서 | 읽기 | 읽기 | 읽기 |
| 업데이트 | 업데이트 | |
이 API의 명령에 | 생성, 읽기, 업데이트, 삭제 | 읽기, 업데이트 | 읽기 |
| 읽기 | 읽기 | 읽기 |
이 API의 명령에 | 생성, 읽기, 업데이트, 삭제 | 읽기, 업데이트 | 읽기 |
| 생성, 읽기, 업데이트, 삭제 | 읽기, 업데이트 | 읽기 |
| 생성, 읽기, 업데이트, 삭제 | 읽기, 업데이트 | 읽기 |
| 생성, 읽기, 업데이트, 삭제 | 읽기, 업데이트 | 읽기 |
| 생성, 읽기, 업데이트, 삭제 | 읽기, 업데이트 | 읽기 |
| 생성, 읽기, 업데이트, 삭제 | 읽기, 업데이트 | 읽기 |
| 생성, 읽기, 업데이트, 삭제 | 읽기, 업데이트 | 읽기 |
| 생성, 읽기, 업데이트, 삭제 | 읽기, 업데이트 | 읽기 |
1.2.2.3. 인증 정보 역할 기반 액세스 제어
인증 정보에 대한 액세스는 Kubernetes에서 제어합니다. 인증 정보는 Kubernetes 시크릿으로 저장되고 보호됩니다. 다음 권한은 Red Hat Advanced Cluster Management for Kubernetes의 보안에 적용됩니다.
- 네임스페이스에서 보안을 생성할 수 있는 액세스 권한이 있는 사용자는 인증 정보를 생성할 수 있습니다.
- 네임스페이스에서 시크릿 읽기에 대한 액세스 권한이 있는 사용자는 인증 정보를 볼 수도 있습니다.
-
admin
의 Kubernetes 클러스터 역할이 있는 사용자는 시크릿을 생성하고편집할
수 있습니다. -
Kubernetes 클러스터 역할의 사용자는 시크릿 내용을 읽을 수 없으므로 시크릿을
볼
수 없습니다. 서비스 계정 자격 증명에 액세스할 수 있기 때문입니다.