5.9. Dex를 사용하여 Argo CD에 대한 SSO 구성

Red Hat OpenShift GitOps Operator가 설치되면 Argo CD에서 admin 권한이 있는 사용자를 자동으로 생성합니다. 클러스터 관리자는 여러 사용자를 관리하기 위해 Argo CD를 사용하여 SSO(Single Sign-On)를 구성할 수 있습니다.

5.9.1. Dex OpenShift OAuth 커넥터 활성화

DEX는 플랫폼에서 제공하는 OAuth 서버를 확인하여 OpenShift 내에 정의된 사용자와 그룹을 사용합니다. 다음 예제에서는 예제 구성과 함께 Dex의 속성을 보여줍니다.

apiVersion: argoproj.io/v1alpha1
kind: ArgoCD
metadata:
  name: example-argocd
  labels:
    example: openshift-oauth
spec:
  dex:
    openShiftOAuth: true 1
    groups:2
     - default
  rbac:3
    defaultPolicy: 'role:readonly'
    policy: |
      g, cluster-admins, role:admin
    scopes: '[groups]'
1
openShiftOAuth 속성은 값이 true 로 설정된 경우 기본 제공 OpenShift OAuth 서버를 자동으로 구성하도록 Operator를 트리거합니다.
2
groups 속성을 사용하면 지정된 그룹의 사용자가 로그인할 수 있습니다.
3
RBAC 정책 속성은 Argo CD 클러스터의 admin 역할을 OpenShift cluster-admins 그룹의 사용자에게 할당합니다.

5.9.1.1. 특정 역할에 사용자 매핑

Argo CD는 직접 ClusterRoleBinding 역할이 있는 경우 사용자를 특정 역할에 매핑할 수 없습니다. OpenShift를 통해 SSO에서 role:admin으로 역할을 수동으로 변경할 수 있습니다.

프로세스

  1. cluster-admins 라는 그룹을 만듭니다.

    $ oc adm groups new cluster-admins
  2. 사용자를 그룹에 추가합니다.

    $ oc adm groups add-users cluster-admins USER
  3. cluster-admin ClusterRole 을 그룹에 적용합니다.

    $ oc adm policy add-cluster-role-to-group cluster-admin cluster-admins

5.9.2. Dex 비활성화

DEX는 Operator에서 생성한 모든 Argo CD 인스턴스에 기본적으로 설치됩니다. Dex를 비활성화할 수 있습니다.

프로세스

  • Operator의 YAML 리소스에서 환경 변수 DISABLE_DEX 를 true로 설정합니다.

      spec:
      config:
        env:
        - name: DISABLE_DEX
          value: "true"