4.8. 비 클러스터 관리자가 Operator를 설치하도록 허용
클러스터 관리자는 Operator 그룹을 사용하여 일반 사용자가 Operator 를 설치할 수 있도록 허용할 수 있습니다.
4.8.1. Operator 설치 정책 이해 링크 복사링크가 클립보드에 복사되었습니다!
Operator를 실행하는 데 광범위한 권한이 필요할 수 있으며 필요한 권한이 버전에 따라 다를 수 있습니다. OLM(Operator Lifecycle Manager)은 cluster-admin 권한으로 실행됩니다. 기본적으로 Operator 작성자는 CSV(클러스터 서비스 버전)에서 권한 세트를 지정할 수 있으며 OLM은 이를 Operator에 부여합니다.
Operator가 클러스터 범위 권한을 달성할 수 없고 사용자가 OLM을 사용하여 권한을 에스컬레이션할 수 없도록 클러스터 관리자는 클러스터에 추가되기 전에 Operator를 수동으로 감사할 수 있습니다. 클러스터 관리자에게는 서비스 계정을 사용하여 Operator를 설치 또는 업그레이드하는 동안 수행할 수 있는 작업을 결정하고 제한하는 툴도 제공됩니다.
클러스터 관리자는 일련의 권한이 부여된 서비스 계정과 Operator group을 연결할 수 있습니다. 서비스 계정은 RBAC(역할 기반 액세스 제어) 규칙을 사용하여 사전 정의된 범위 내에서만 실행되도록 Operator에 정책을 설정합니다. 결과적으로 Operator는 해당 규칙에서 명시적으로 허용하지 않는 작업을 수행할 수 없습니다.
Operator 그룹을 사용하면 충분한 권한이 있는 사용자는 범위가 제한된 Operator를 설치할 수 있습니다. 결과적으로 더 많은 사용자가 더 많은 Operator 프레임워크 툴을 안전하게 사용할 수 있어 Operator를 사용하여 애플리케이션을 빌드할 수 있는 풍부한 환경을 제공할 수 있습니다.
Subscription 오브젝트에 대한 RBAC(역할 기반 액세스 제어)는 네임스페이스에서 edit 또는 admin 역할이 있는 모든 사용자에게 자동으로 부여됩니다. 그러나 OperatorGroup 오브젝트에 RBAC가 존재하지 않습니다. 이 경우 일반 사용자가 Operator를 설치하지 못하도록 합니다. Operator group을 사전 설치하는 것은 효과적으로 설치 권한을 부여하는 것입니다.
Operator 그룹을 서비스 계정과 연결할 때 다음 사항에 유의하십시오.
-
APIService및CustomResourceDefinition리소스는 항상cluster-admin역할을 사용하여 OLM에 의해 생성됩니다. Operator group과 연결된 서비스 계정에는 이러한 리소스를 작성할 수 있는 권한을 부여해서는 안 됩니다. - 이제 Operator group에 연결된 모든 Operator의 권한이 지정된 서비스 계정에 부여된 권한으로 제한됩니다. Operator에서 서비스 계정 범위를 벗어나는 권한을 요청하면 클러스터 관리자가 문제를 해결하고 해결할 수 있도록 적절한 오류와 함께 설치에 실패합니다.
4.8.1.1. 설치 시나리오 링크 복사링크가 클립보드에 복사되었습니다!
Operator를 클러스터에서 설치하거나 업그레이드할 수 있는지 결정하는 경우 OLM(Operator Lifecycle Manager)은 다음 시나리오를 고려합니다.
- 클러스터 관리자가 새 Operator group을 생성하고 서비스 계정을 지정합니다. 이 Operator group과 연결된 모든 Operator가 설치되고 서비스 계정에 부여된 권한에 따라 실행됩니다.
- 클러스터 관리자가 새 Operator group을 생성하고 서비스 계정을 지정하지 않습니다. OpenShift Container Platform은 이전 버전과의 호환성을 유지하므로 기본 동작은 그대로 유지되면서 Operator 설치 및 업그레이드가 허용됩니다.
- 서비스 계정을 지정하지 않는 기존 Operator group의 경우 기본 동작은 그대로 유지되면서 Operator 설치 및 업그레이드가 허용됩니다.
- 클러스터 관리자가 기존 Operator group을 업데이트하고 서비스 계정을 지정합니다. OLM을 사용하면 현재 권한을 사용하여 기존 Operator를 계속 실행될 수 있습니다. 이러한 기존 Operator에서 업그레이드를 수행하면 기존 Operator가 새 Operator와 같이 서비스 계정에 부여된 권한에 따라 다시 설치되어 실행됩니다.
- 권한을 추가하거나 제거함으로써 Operator group에서 지정하는 서비스 계정이 변경되거나 기존 서비스 계정을 새 서비스 계정과 교체합니다. 기존 Operator에서 업그레이드를 수행하면 기존 Operator가 새 Operator와 같이 업데이트된 서비스 계정에 부여된 권한에 따라 다시 설치되어 실행됩니다.
- 클러스터 관리자는 Operator group에서 서비스 계정을 제거합니다. 기본 동작은 유지되고 Operator 설치 및 업그레이드는 허용됩니다.
4.8.1.2. 설치 워크플로 링크 복사링크가 클립보드에 복사되었습니다!
Operator group이 서비스 계정에 연결되고 Operator가 설치 또는 업그레이드되면 OLM(Operator Lifecycle Manager)에서 다음과 같은 워크플로를 사용합니다.
-
OLM에서 지정된
Subscription오브젝트를 선택합니다. - OLM에서 이 서브스크립션에 연결된 Operator group을 가져옵니다.
- OLM에서 Operator group에 서비스 계정이 지정되었는지 확인합니다.
- OLM에서 서비스 계정에 대한 클라이언트 범위를 생성하고 범위가 지정된 클라이언트를 사용하여 Operator를 설치합니다. 이렇게 하면 Operator에서 요청한 모든 권한이 항상 Operator group 서비스 계정의 권한으로 제한됩니다.
- OLM은 CSV에 지정된 권한 세트를 사용하여 새 서비스 계정을 생성하고 Operator에 할당합니다. Operator는 할당된 서비스 계정으로 실행됩니다.