ArgoCD RBAC 관리

Lee Jinwook·2024년 3월 4일
0
post-thumbnail

1. ArgoCD 유저 관리

  • ArgoCD 설치 시 admin role을 가진 admin 유저가 생성됩니다.
  • ArgoCD의 유저 종류엔 Local User(ArgoCD 서버 관리), SSO(OKTA) 연동 user로 나뉩니다.
  • ArgoCD 유저 관련 명령어
	argocd account list # To list all the users
    argocd account get <username> # To get specific user details
    argocd account update-password --account <username> --new-password

2. Local User 관리

(1) Local User 생성 방법

  • ArgoCD admin 유저 로그인
argocd login <argocdIP:port>
# 콘솔에 username:admin, 비밀번호:초기값 입력

  • argocd-cm 설정 내용을 yaml 파일로 저장
	kubectl get cm argocd-cm -n argocd -o yaml > argocd-cm.yaml 
  • argocd-cm 설정 내용을 yaml에 추가
apiVersion: v1
data:
  accounts.ccoe: apiKey, login
  accounts.devops: apiKey, login
  accounts.developer: apiKey,login
  ...
  • argocd-cm.yaml 반영
kubectl apply -f argocd-cm.yaml
  • 유저 목록 확인
argocd account list

(2) Local User 비밀번호 설정

  • 유저별 비밀번호 설정
argocd account update-password --account ccoe
argocd account update-password --account devops
argocd account update-password --account developer

(3) Local User 권한(Role) 설정

  • ArgoCD role을 관리하는 argocd-rabc-cm을 yaml파일로 저장
kubectl get cm -n argocd argocd-rbac-cm -o yaml > argocd-rbac-cm.yaml
  • role-policy 및 유저에 role 할당
apiVersion: v1
kind: ConfigMap
data:
  policy.csv: |
    p, role:ccoe-role, *, *, *, allow
    p, role:devops-role, applications, *, *, allow
    p, role:devops-role, clusters, *, *, allow
    p, role:devops-role, repositories, *, *, allow
    p, role:developer-role, applications, get, *, allow
    p, role:developer-role, clusters, get, *, allow
    p, role:developer-role, repositories, get, *, allow
    g, ccoe, role:ccoe-role
    g, devops, role:devops-role
    g, developer, role:developer-role
...

3. Okta User 관리

  • ArgoCD 설치 시, Dex가 함께 설치됨, Dex는 인증 서비스로, 다른 서비스 간에 인증 작업을 수행한다.
  • Dex는 Okta, SAML, OIDC, LDAP 연동 등을 지원한다.

(1) Okta에 ArgoCD 등록 방법

  • Okta 페이지에서, Applications -> Applications 이동
  • Create App Integration 선택
  • SAML 2.0 -> Next 선택
  • App name: ArgoCD ~~ 입력
  • SAML 설정,
    -> SSO URL: ArgoCD URL/api/dex/callback
    - 서비스별 ArgoCD 생성 마다, Okta에서 유저그룹을 ArgoCD에 매핑해주는 작업이 필요함

(2) ArgoCD에 Okta 인증 정보 등록

  • Okta에 Argocd 등록 후, url/certificate를 argocd-cm에 등록
dex.config: |
 connectors:
  - type: saml
    id: okta
    name: Okta
    config:
      ssoURL: <okta sso url>
      caData: |
        <x.509 certificate>
      usernameAttr: name
      emailAttr: email
      groupsAttr: groups

  • argocd-rbac-cm에 okta user group에 role을 매핑

0개의 댓글