1.2. 멀티 테넌시 모델을 채택할 때 중요한 고려 사항
다중 테넌트 클러스터 관리 권한을 부여하면 테넌트에서 Argo CD에서 애플리케이션에 부여된 권한을 사용하여 권한을 승격할 수 있으므로 멀티 테넌시 작업 및 권한 제한을 우회할 수 있습니다. 이러한 상황을 방지하려면 Red Hat OpenShift GitOps Operator를 통해 설치된 Argo CD의 권한 모델과 애플리케이션 제공을 위해 OpenShift GitOps를 성공적으로 사용하는 방법을 이해해야 합니다.
1.2.1. Argo CD 역할 기반 액세스 제어(RBAC)
Red Hat OpenShift GitOps의 액세스 제어는 다음과 같이 두 가지 수준으로 관리합니다.
- Kubernetes 수준에서 GitOps Argo CD 애플리케이션 컨트롤러는 하나 이상의 클러스터와 상호 작용하여 클러스터당 단일 Kubernetes 서비스 계정을 사용하여 다양한 리소스를 배포합니다. 이 서비스 계정에는 Argo CD의 이 인스턴스에서 관리하는 모든 테넌트 및 사용 사례에 대한 리소스를 배포할 수 있는 충분한 권한이 있어야 합니다.
- Argo CD 수준에서 GitOps Argo CD 애플리케이션 컨트롤러에는 Kubernetes와 독립적인 자체 RBAC 권한 모델이 포함되어 있습니다. 사용자 수준 액세스를 관리하려면 기본 Kubernetes 권한과 독립적으로 이 RBAC 모델을 사용할 수 있습니다. 이 기능을 사용하여 사용자가 순수 Kubernetes 관점에서 액세스할 수 없는 Argo CD 애플리케이션에 대한 액세스 권한을 제공할 수 있습니다.
이 두 액세스 제어와 구성 요소 간의 상호 작용은 고유하고 분리되어 있기 때문에 Argo CD로 다중 테넌트 솔루션을 설계할 때 권한 상승이 우려됩니다. 권한 에스컬레이션은 테넌트에서 애플리케이션 컨트롤러 서비스 계정의 증가된 권한을 활용하여 일반적으로 수행할 수 없는 작업을 수행할 수 있는 경우입니다. Argo CD RBAC 또는 Argo CD의 별도의 인스턴스를 사용하여 Argo CD 인스턴스에서 권한 에스컬레이션을 완화할 수 있습니다.
1.2.2. Argo CD 프로젝트
OpenShift Container Platform 프로젝트와 혼동되지 않도록 Argo CD 프로젝트는 애플리케이션을 그룹화하는 방법을 제공합니다. Argo CD 프로젝트를 사용하면 배포할 수 있는 리소스와 배포할 수 있는 위치와 관련하여 애플리케이션에 대한 제한을 지정할 수 있습니다. 또한 Argo CD CR(사용자 정의 리소스)의 글로벌 수준 대비 프로젝트 수준에서 보다 세밀하게 정의하여 Argo CD 역할 기반 액세스 제어(RBAC) 규칙 및 권한을 활성화할 수 있습니다.
Operator의 Argo CD CR에서 테넌트 RBAC를 전역적으로 정의할 수는 있지만 AppProject
CR의 제한과 함께 테넌트 RBAC를 정의해야 합니다.
테넌트 수가 많은 경우 글로벌 RBAC를 사용하여 모든 테넌트를 관리하려고 하면 많은 반복이 발생할 수 있습니다.
테넌트의 여러 인스턴스가 있는 경우 테넌트 프로젝트에서 일부 프로젝트 구성이 일반적일 수 있습니다. 중복을 줄이고 유지 관리를 최소화하려면 공통 구성에 글로벌 프로젝트를 사용하고 테넌트 프로젝트에서 상속합니다.
항상 프로젝트를 정의하고 Operator에서 Argo CD 설치로 생성된 기본 프로젝트를 사용하지 마십시오.