2.3. OpenShift 4.x에서 Fuse Console에 대한 역할 기반 액세스 제어
Fuse 콘솔은 OpenShift에서 제공하는 사용자 권한에 따라 액세스를 유추하는 RBAC(역할 기반 액세스 제어)를 제공합니다. Fuse 콘솔에서 RBAC는 Pod에서 Cryostat 작업을 수행할 수 있는 사용자의 기능을 결정합니다.
OpenShift 권한 부여에 대한 자세한 내용은 Using RBAC to define and apply permissions section of the OpenShift documentation에서 참조하십시오.
Operator를 사용하여 OpenShift에 Fuse Console을 설치할 때 역할 기반 액세스는 기본적으로 활성화됩니다.
템플릿으로 설치하여 Fuse Console에 대한 역할 기반 액세스를 구현하려면 명령줄을 사용하여 Fuse Console 설치 및 배포에 설명된 대로 RBAC(fuse-console-cluster-rbac.yml
또는 fuse-console-namespace-rbac.yml
)로 구성할 수 있는 템플릿 중 하나를 사용해야 합니다.
Fuse Console RBAC는 OpenShift의 Pod 리소스에 대한 사용자 동사 액세스를 활용하여 Fuse Console에서 Pod의 작업에 대한 사용자의 액세스 권한을 결정합니다. 기본적으로 Fuse Console의 사용자 역할은 다음 두 가지가 있습니다.
admin
사용자가 OpenShift에서 포드를 업데이트할 수 있는 경우 사용자는 Fuse Console의 admin 역할을 유추합니다. 사용자는 Pod에 대해 Fuse Console에서 write Cryostat 작업을 수행할 수 있습니다.
뷰어
사용자가 OpenShift에서 포드를 가져올 수 있는 경우 사용자는 Fuse Console의 뷰어 역할을 유추합니다. 사용자는 Pod에 대해 Fuse Console에서 읽기 전용 작업을 수행할 수 있습니다.
비 RBAC 템플릿을 사용하여 Fuse 콘솔을 설치한 경우 Pod 리소스에 update 동사가 부여된 OpenShift 사용자만 Fuse Console Cryostats 작업을 수행할 수 있습니다. Pod 리소스에 get 동사가 부여된 사용자는 포드를 볼 수 있지만 Fuse Console 작업을 수행할 수 없습니다.
추가 리소스
2.3.1. OpenShift 4.x에서 Fuse Console에 대한 액세스 역할 확인
Fuse Console 역할 기반 액세스 제어는 Pod에 대한 사용자의 OpenShift 권한에서 유추됩니다. 특정 사용자에게 부여된 Fuse Console 액세스 역할을 확인하려면 Pod의 사용자에게 부여된 OpenShift 권한을 받으십시오.
사전 요구 사항
- 사용자 이름을 알고 있습니다.
- Pod의 이름을 알고 있습니다.
프로세스
사용자에게 Pod에 대한 Fuse Console admin 역할이 있는지 확인하려면 다음 명령을 실행하여 OpenShift에서 Pod를 업데이트할 수 있는지 확인합니다.
oc auth can-i update pods/<pod> --as <user>
응답이
yes
인 경우 사용자에게 포드에 대한 Fuse Console admin 역할이 있습니다. 사용자는 Pod에 대해 Fuse Console에서 write Cryostat 작업을 수행할 수 있습니다.사용자에게 Pod에 대한 Fuse Console 뷰어 역할이 있는지 확인하려면 다음 명령을 실행하여 OpenShift에서 Pod를 가져올 수 있는지 확인합니다.
oc auth can-i get pods/<pod> --as <user>
응답이
yes
인 경우 사용자에게 포드에 대한 Fuse Console viewer 역할이 있습니다. 사용자는 Pod에 대해 Fuse Console에서 읽기 전용 작업을 수행할 수 있습니다. 상황에 따라 Fuse Console은 옵션을 비활성화하거나 사용자가 쓰기를 시도할 때 "operation not allowed for this user" 메시지를 표시하여 뷰어 역할의 사용자가 쓰기를 수행하지 못하도록 합니다.응답이
없는
경우 사용자는 Fuse Console 역할에 바인딩되지 않으며 사용자는 Fuse Console의 포드를 볼 수 없습니다.
2.3.2. OpenShift 4.x의 Fuse Console에 대한 역할 기반 액세스 사용자 정의
OperatorHub를 사용하여 Fuse 콘솔을 설치하는 경우 OpenShift 4.x의 Fuse Console에 대한 역할 기반 액세스 제어에 설명된 대로 기본적으로 역할 기반 액세스 제어 (RBAC)가 활성화됩니다. Fuse Console을 배포하기 전에 Fuse Console RBAC 동작을 사용자 지정하려면 ConfigMap 파일을 제공해야 합니다(사용자 정의 RBAC 동작을 정의함). Fuse Console Operator를 설치한 동일한 네임스페이스에 사용자 정의 ConfigMap 파일을 배치해야 합니다.
명령줄 템플릿을 사용하여 Fuse 콘솔을 설치하는 경우 deployment-cluster-rbac.yml
및 deployment-namespace-rbac.yml
템플릿은 구성 파일( ACLs.yml )이 포함된 ConfigMap을 생성합니다.
구성 파일은 Cryostat 작업에 허용되는 역할을 정의합니다.
사전 요구 사항
-
OperatorHub를 사용하거나 Fuse Console RBAC 템플릿 중 하나를 사용하여 Fuse 콘솔을 설치했습니다(
deployment-cluster-rbac.yml
또는deployment-namespace-rbac.yml
)
프로세스
Fuse Console RBAC 역할을 사용자 지정하려면 다음을 수행합니다.
명령줄을 사용하여 Fuse 콘솔을 설치한 경우 설치 템플릿에 기본 ConfigMap 파일이 포함되어 있으므로 다음 단계로 건너뛸 수 있습니다.
OperatorHub를 사용하여 Fuse 콘솔을 설치한 경우 Fuse 콘솔을 배포하기 전에 RBAC ConfigMap을 생성합니다.
현재 OpenShift 프로젝트가 Fuse Console을 설치할 프로젝트인지 확인합니다. 예를 들어 fusetest 프로젝트에 Fuse Console을 설치하려면 다음 명령을 실행합니다.
oc project fusetest
템플릿에서 Fuse Console RBAC ConfigMap 파일을 생성하려면 다음 명령을 실행합니다.
oc process -f {sb2-templates-base-url}/fuse-console-operator-rbac.yml -p APP_NAME=fuse-console | oc create -f -
다음 명령을 실행하여 편집기에서 ConfigMap을 엽니다.
oc edit cm $APP_NAME-rbac
예를 들면 다음과 같습니다.
oc edit cm fuse-console-rbac
- 파일을 편집합니다.
- 파일을 저장하여 변경 사항을 적용합니다. OpenShift는 Fuse Console 포드를 자동으로 다시 시작합니다.
2.3.3. OpenShift 4.x에서 Fuse Console에 대한 역할 기반 액세스 제어 비활성화
명령줄을 사용하여 Fuse 콘솔을 설치하고 Fuse Console RBAC 템플릿 중 하나를 지정한 경우 Fuse 콘솔의 HAWTIO_ONLINE_RBAC_ACL
환경 변수는 OpenShift 서버에 역할 기반 액세스 제어(RBAC) ConfigMap 구성 파일 경로를 전달합니다. HAWTIO_ONLINE_RBAC_ACL
환경 변수가 지정되지 않은 경우 RBAC 지원이 비활성화되고 Pod 리소스(OpenShift의)에 대한 업데이트 동사가 부여된 사용자만 Fuse Console의 Pod에서 Cryostat 작업을 호출할 수 있습니다.
OperatorHub를 사용하여 Fuse Console을 설치할 때 역할 기반 액세스는 기본적으로 활성화되어 있으며 HAWTIO_ONLINE_RBAC_ACL
환경 변수가 적용되지 않습니다.
사전 요구 사항
명령줄을 사용하여 Fuse Console을 설치하고 Fuse Console RBAC 템플릿(deployment-cluster-rbac.yml
또는 deployment-namespace-rbac.yml
) 중 하나를 지정했습니다.
프로세스
Fuse Console에 대한 역할 기반 액세스를 비활성화하려면 다음을 수행합니다.
- OpenShift에서 Fuse Console의 Deployment Config 리소스를 편집합니다.
전체
HAWTIO_ONLINE_RBAC_ACL
환경 변수 정의를 삭제합니다.(값만 지우는 것만으로는 충분하지 않습니다.)
- 파일을 저장하여 변경 사항을 적용합니다. OpenShift는 Fuse Console 포드를 자동으로 다시 시작합니다.