1.2. 네임스페이스 범위 인스턴스에 대한 사용자 정의 클러스터 역할을 지정하여 공통 클러스터 역할 구성
클러스터 관리자는 argocd.argoproj.io/managed-by
레이블을 사용하여 네임스페이스에 Argo CD에 액세스할 수 있는 경우 Argo CD는 namespace-admin
권한을 가정합니다. 그러면 Red Hat OpenShift GitOps Operator가 다음 GitOps 컨트롤 플레인 구성 요소의 모든 관리 네임스페이스에 대한 역할 바인딩을 자동으로 생성합니다.
- Argo CD 애플리케이션 컨트롤러
- Argo CD 서버
- Argo CD ApplicationSet Controller
예를 들어 개발팀과 같이 관리자가 아닌 사용자에게 네임스페이스를 제공하는 경우 namespace-admin
권한을 사용하여 네트워크 정책과 같은 오브젝트를 수정할 수 있습니다. 이러한 네임스페이스에 Argo CD 인스턴스를 설치하면 개발 팀 관리자
권한이 부여되고 할당된 권한을 간접적으로 완화할 수 있습니다. 이러한 역할은 높은 권한이 있으며 모든 리소스를 삭제할 수 있습니다. 예방 조치로 Operator가 Argo CD 애플리케이션 컨트롤러 및 Argo CD 서버 구성 요소에 대해 생성하는 역할 바인딩에서 모든 관리형 네임스페이스에 대한 공통 클러스터 역할을 구성하여 보안 요구 사항을 충족하도록 보안 요구 사항을 충족하기 위해 축소된 특정 권한 세트를 정의할 수 있습니다.
모든 관리 네임스페이스에 대한 공통 클러스터 역할을 구성하려면 Operator의 Subscription
오브젝트 YAML 파일에서 CONTROLLER_CLUSTER_ROLE
및 SERVER_CLUSTER_ROLE
환경 변수에 대해 사용자 정의 클러스터 역할을 지정할 수 있습니다. 결과적으로 Operator는 기본 관리자
역할을 생성하는 대신 기존 사용자 정의 클러스터 역할을 사용하고 모든 관리 네임스페이스에 대한 역할 바인딩을 생성합니다.
사전 요구 사항
- 관리자로 OpenShift Container Platform 클러스터에 로그인했습니다.
- OpenShift Container Platform 클러스터에 Red Hat OpenShift GitOps Operator를 설치했습니다.
프로세스
-
관리자 관점에서 Administration
CustomResourceDefinitions 로 이동합니다. - Subscription CRD를 찾아 클릭하여 엽니다.
- Instances 탭을 선택하고 openshift-gitops-operator 서브스크립션을 클릭합니다.
YAML 탭을 선택하고 사용자 지정을 만듭니다.
CONTROLLER_CLUSTER_ROLE
및SERVER_CLUSTER_ROLE
환경 변수에 대한 사용자 정의 클러스터 역할을 지정합니다.서브스크립션의 예
apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: openshift-gitops-operator namespace: openshift-gitops-operator spec: config: env: - name: CONTROLLER_CLUSTER_ROLE value: gitops-controller-role 1 - name: SERVER_CLUSTER_ROLE value: gitops-server-role 2
또는 이전 환경 변수를 Operator의 Deployment
오브젝트 YAML 파일에 직접 삽입할 수 있습니다.