5.2. 확장 리소스에 대한 사용자 액세스
클러스터 확장이 설치되고 Operator Lifecycle Manager(OLM) v1에서 관리되면 확장은 클러스터에서 새로운 API 리소스를 노출하는 CustomResourceDefinition
개체(CRD)를 제공하는 경우가 많습니다. 클러스터 관리자는 일반적으로 이러한 리소스에 대한 전체 관리 액세스 권한을 가지고 있는 반면, 클러스터 관리자가 아닌 사용자나 일반 사용자는 충분한 권한이 부족할 수 있습니다.
OLM v1은 설치된 확장 프로그램에서 제공하는 API와 일반 사용자가 상호 작용할 수 있도록 역할 기반 액세스 제어(RBAC)를 자동으로 구성하거나 관리하지 않습니다. 클러스터 관리자는 이러한 사용자에 대한 사용자 정의 리소스(CR)를 생성, 보기 또는 편집하기 위해 필요한 RBAC 정책을 정의해야 합니다.
확장 리소스에 대한 사용자 액세스에 대해 설명된 RBAC 권한은 클러스터 확장 자체의 OLM v1 기반 초기 설치를 활성화하기 위해 서비스 계정에 추가해야 하는 권한과 다릅니다. 확장을 설치하는 동안 RBAC 요구 사항에 대한 자세한 내용은 확장 관리의 "클러스터 확장 권한"을 참조하십시오.
5.2.1. 사용자를 위한 공통 기본 클러스터 역할 링크 복사링크가 클립보드에 복사되었습니다!
설치된 클러스터 확장에는 확장에서 제공하는 API 리소스에 대한 일반 사용자의 역할 기반 액세스 제어(RBAC)를 결정하기 위한 기본 클러스터 역할이 포함될 수 있습니다. 일반적인 클러스터 역할 집합은 다음 정책과 유사할 수 있습니다.
- 클러스터 역할
보기
- 클러스터 전체의 지정된 API 리소스의 모든 사용자 정의 리소스(CR) 개체에 대한 읽기 전용 액세스 권한을 부여합니다. 수정 권한 없이 리소스에 대한 가시성이 필요한 일반 사용자를 대상으로 합니다. 모니터링 목적이나 제한된 접근 권한으로 보기에 이상적입니다.
- 클러스터 역할
편집
- 사용자가 클러스터 내의 모든 CR 오브젝트를 수정할 수 있습니다. 사용자가 리소스를 생성, 업데이트, 삭제할 수 있으므로 리소스를 관리해야 하지만 RBAC를 제어하거나 다른 사람의 권한을 관리해서는 안 되는 팀 구성원에게 적합합니다.
관리자
클러스터 역할-
클러스터 전체의 지정된 API 리소스에 대한 모든 사용자 정의 리소스 개체에 대한
생성
,업데이트
,삭제
동사를 포함한 전체 권한을 제공합니다.
5.2.2. 클러스터 확장에서 노출된 API 그룹 및 리소스 찾기 링크 복사링크가 클립보드에 복사되었습니다!
사용자에게 클러스터 확장 리소스에 대한 액세스 권한을 부여하기 위한 적절한 RBAC 정책을 만들려면 설치된 확장에서 어떤 API 그룹과 리소스가 노출되는지 알아야 합니다. 관리자는 OpenShift CLI( oc
)를 사용하여 클러스터에 설치된 사용자 정의 리소스 정의(CRD)를 검사할 수 있습니다.
사전 요구 사항
- 클러스터에 클러스터 확장이 설치되었습니다.
프로세스
해당 확장에서 소유한 CRD만 찾으려면 이름으로 특정 클러스터 확장을 대상으로 하는 라벨 선택기를 지정하는 동안 설치된 CRD를 나열하려면 다음 명령을 실행합니다.
oc get crds -l 'olm.operatorframework.io/owner-kind=ClusterExtension,olm.operatorframework.io/owner-name=<cluster_extension_name>'
$ oc get crds -l 'olm.operatorframework.io/owner-kind=ClusterExtension,olm.operatorframework.io/owner-name=<cluster_extension_name>'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 또는 설치된 모든 CRD를 검색하여 CRD 이름으로 개별적으로 검사할 수 있습니다.
다음 명령을 실행하여 현재 클러스터에 설치된 모든 사용 가능한 사용자 정의 리소스 정의(CRD)를 나열합니다.
oc get crds
$ oc get crds
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력에서 원하는 CRD를 찾으세요.
다음 명령을 실행하여 개별 CRD를 추가로 검사하여 API 그룹을 찾습니다.
oc get crd <crd_name> -o yaml
$ oc get crd <crd_name> -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.2.3. 사용자 지정 역할 바인딩을 사용하여 확장 리소스에 대한 사용자 액세스 권한 부여 링크 복사링크가 클립보드에 복사되었습니다!
클러스터 관리자는 사용자 지정 역할 바인딩을 사용하여 확장 리소스에 대한 사용자 액세스 권한을 부여하도록 RBAC(역할 기반 액세스 제어) 정책을 수동으로 생성하고 구성할 수 있습니다.
사전 요구 사항
- 클러스터에 클러스터 확장이 설치되어 있습니다.
- "클러스터 확장에 의해 노출되는 API 그룹 및 리소스 찾기"에 설명된 대로 API 그룹 및 리소스 이름 목록이 있습니다.
프로세스
설치된 클러스터 확장에서 기본 클러스터 역할을 제공하지 않는 경우 하나 이상의 역할을 수동으로 생성합니다.
"사용자를 위한 공통 기본 클러스터 역할"에 설명된 역할 세트에 대한 사용 사례를 고려하십시오.
예를 들어 다음
ClusterRole
오브젝트 정의 중 하나 이상을 생성하여 <cluster_extension_api_group
> 및 <cluster_extension_custom_resource
>를 설치된 클러스터 확장에서 제공하는 실제 API 그룹 및 리소스 이름으로 교체합니다.view-custom-resource.yaml
파일 예Copy to Clipboard Copied! Toggle word wrap Toggle overflow edit-custom-resource.yaml
파일 예Copy to Clipboard Copied! Toggle word wrap Toggle overflow admin-custom-resource.yaml
파일의 예Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
동사
에서 와일드카드(*
)를 설정하면 지정된 리소스에 대한 모든 작업을 수행할 수 있습니다.
생성한 YAML 파일에 대해 다음 명령을 실행하여 클러스터 역할을 생성합니다.
oc create -f <filename>.yaml
$ oc create -f <filename>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
클러스터 역할을 특정 사용자 또는 그룹에 연결하여 클러스터 역할을 개별 사용자 또는 그룹 이름에 바인딩하여 리소스에 필요한 권한을 부여합니다.
모든 네임스페이스 또는 특정 네임스페이스 내에서 액세스 권한을 부여할 역할 바인딩에 대한 액세스 권한을 부여하는 클러스터 역할 바인딩에 대한 오브젝트 정의를 생성합니다.
다음 예제 클러스터 역할 바인딩은 모든 네임스페이스의 사용자 정의 리소스에 대한 읽기 전용
보기
액세스 권한을 부여합니다.사용자에 대한
ClusterRoleBinding
오브젝트의 예Copy to Clipboard Copied! Toggle word wrap Toggle overflow 사용자에 대한
ClusterRoleBinding
오브젝트의 예Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 역할 바인딩에서는 특정 네임스페이스에 대한
편집
권한을 제한합니다.사용자에 대한
RoleBinding
오브젝트의 예Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- 오브젝트 정의를 YAML 파일에 저장합니다.
다음 명령을 실행하여 오브젝트를 생성합니다.
oc create -f <filename>.yaml
$ oc create -f <filename>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.2.4. 집계된 클러스터 역할을 사용하여 확장 리소스에 대한 사용자 액세스 권한 부여 링크 복사링크가 클립보드에 복사되었습니다!
클러스터 관리자는 집계된 클러스터 역할을 사용하여 확장 리소스에 대한 사용자 액세스 권한을 부여하도록 역할 기반 액세스 제어(RBAC) 정책을 구성할 수 있습니다.
기존 기본 클러스터 역할을 자동으로 확장하려면 다음 레이블 중 하나 이상을 ClusterRole
개체에 추가하여 aggregation labels을 추가할 수 있습니다.
ClusterRole
오브젝트의 집계 라벨
이를 통해 이미 보기
,편집
또는 관리자
역할이 있는 사용자는 특정 사용자 또는 그룹에 대한 추가 역할 또는 클러스터 역할 바인딩 없이도 ClusterRole
오브젝트에서 지정한 사용자 정의 리소스와 상호 작용할 수 있습니다.
사전 요구 사항
- 클러스터에 클러스터 확장이 설치되었습니다.
- "클러스터 확장에서 노출된 API 그룹 및 리소스 찾기"에 설명된 대로 API 그룹 및 리소스 이름 목록이 있습니다.
프로세스
클러스터 확장에서 제공하는 API 그룹과 리소스를 지정하는 클러스터 역할에 대한 개체 정의를 만들고 하나 이상의 기존 기본 클러스터 역할을 확장하기 위한 집계 레이블을 추가합니다.
집계 레이블이 있는
ClusterRole
개체의 예Copy to Clipboard Copied! Toggle word wrap Toggle overflow create
,update
,delete
와 같은 적절한 동사를 사용하여edit
및admin에
대한 유사한ClusterRole
객체를 만들 수 있습니다. 집계 레이블을 사용하면 사용자 지정 리소스에 대한 권한이 기본 역할에 추가됩니다.- 개체 정의를 YAML 파일에 저장합니다.
다음 명령을 실행하여 객체를 생성합니다.
oc create -f <filename>.yaml
$ oc create -f <filename>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow