❤️
악분의 ArgoCD 공부기록
  • Home
  • Argo CD 소개
    • 실습자료
    • 컨셉과 장단점
    • 설치
    • 아키텍처
  • ArgoCD CLI 설치
    • 설치
    • login
  • ARGO CD HelloWorld
    • nginx pod, service 배포
  • ARGO CD 단위
    • 소개
    • Applicaiton
    • Project
  • Sync 설정
    • 소개
    • Refresh Period
    • 수동 Refresh
    • Sync와 Sync Policy
    • Sync Status
    • Health Status
    • Prune
    • Directory Recurse
    • Self healing
    • Ignore Difference
    • Non Cascade 삭제
    • ArgoCD로 관리되는지 확인
    • 기존 리소스 연결
    • helm chart
    • kustomize
  • Sync LifeCycle
    • Phases
  • private repository
    • 소개
    • git private repo 관리
  • User 관리
    • 소개
    • Argo CD user
    • Built-in user
    • Local user 생성
    • 권한(Role) 관리
  • Argo CD Project
    • Project란?
    • Project 생성 예제
    • Project 설정
    • Project 설정 예제
    • Project 권한(Role)과 예제
  • App of Apps
    • App of Apps 패턴
  • Multi cluster 관리
    • 클러스터 추가
  • 모니터링
    • 소개
    • Argo CD Metrics 추가
    • Prometheus Operator 설치
Powered by GitBook
On this page
  • 개념
  • 사용 목적
  • 생성 방법
  • Policy 설정
  • JWT 생성
  • JWT 사용 예
  1. Argo CD Project

Project 권한(Role)과 예제

PreviousProject 설정 예제NextApp of Apps 패턴

Last updated 2 years ago

개념

Project Role은 특정 Project에만 유효한 Role입니다. 예를 들어 test1 Project에 생성한 Role은 test1에만 유효하고 다른 Project에는 사용할 수 없습니다. 그리고 web UI로그인은 못하고 JWT방식만 지원합니다.

사용 목적

Argo CD전체 관리 권한보다는 Project만 관리할 수 있는 제한된 권한을 설정할 때 적합합니다.

생성 방법

web UI, Argo CD CLI, appproject CRD 모두 가능합니다.

web UI에서는 Project화면 왼쪽 위에 생성버튼이 있습니다.

Role이름과 설명을 입력하면 Role을 생성할 수 있습니다.

생성된 Role은 Project Role탭에서 확인할 수 있습니다.

Policy 설정

지금 생성한 Role은 권한설정이 안되어 있어 권한이 아무것도 없습니다. 권한 설정은 Project를 설정 후에 Global Role(권한(Role) 관리)처럼 설정하면 됩니다.

JWT 생성

Project Role은 곧바로 Project에 적용되어 사용되지 않고 JWT를 발급받아 사용할 수 있습니다. JWT는 Project Role설정 화면에서 생성할 수 있습니다. 성성된 JWT는 설정화면이 닫힌 후에 알 수 없으므로 잘 보관해야 합니다.

JWT 사용 예

JWT는 WEB UI에 사용할 수 없고 Argo CLI 또는 REST API, SDK에서 사용할 수 있습니다. 저는 Argo CD CLI 사용 예를 소개드릴게요.

먼저 생성한 JWT를 환경변수에 설정합니다.

TOKEN=<TOKEN>

argocd account can-i로 test1 Project의 Application 조회(get)이 가능한지 확인할 수 있습니다. Argo CD login을 하지 않아도 TOKEN으로 인증과 인가가 가능해졌습니다!.

argocd account can-i get applications 'test1/*' --auth-token $TOKENl

test1 Project에 Application 생성 권한이 있는지 확인해볼까요? 당연히 create application Policy를 추가하지 않았으므로 No 메세지가 나옵니다.

argocd account can-i create applications 'test1/*' --auth-token $TOKEN

WEB UI에서 test1 Project의 Appliction을 생성할 수 있도록 create Policy를 추가합니다.

그리고 다시 Application 생성 권한을 검사하면 yes가 나옵니다.

argocd account can-i create  applications 'test1/*' --auth-token $TOKEN