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 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
...
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을 매핑