프로젝트와 RBAC

지원 버전: ArgoCD v2.9+ 마지막 업데이트: 2026년 2월 22일

목차

AppProject 개요

AppProject는 ArgoCD에서 Application을 논리적으로 그룹화하고 접근 제어를 설정하는 리소스입니다.

spinner

기본 프로젝트 vs 커스텀 프로젝트

기본 프로젝트 (default):

  • 모든 소스 저장소 허용

  • 모든 대상 클러스터/네임스페이스 허용

  • 모든 리소스 유형 허용

  • 프로덕션 환경에서는 권장하지 않음

커스텀 프로젝트:

  • 소스 저장소 제한

  • 대상 클러스터/네임스페이스 제한

  • 배포 가능한 리소스 유형 제한

  • 역할 및 권한 정의

프로젝트 구성

AppProject CRD 전체 스펙

환경별 프로젝트 예시

개발 환경:

스테이징 환경:

프로덕션 환경:

RBAC 정책

ArgoCD RBAC은 Casbin 기반이며, argocd-rbac-cm ConfigMap에서 구성합니다.

RBAC 정책 구문

리소스 (Resource):

  • applications: Application 리소스

  • applicationsets: ApplicationSet 리소스

  • clusters: 클러스터

  • projects: 프로젝트

  • repositories: 저장소

  • certificates: 인증서

  • accounts: 계정

  • gpgkeys: GPG 키

  • logs: 로그

  • exec: Pod exec

액션 (Action):

  • get: 읽기

  • create: 생성

  • update: 수정

  • delete: 삭제

  • sync: 동기화

  • override: 오버라이드

  • action/<action-name>: 커스텀 액션

효과 (Effect):

  • allow: 허용

  • deny: 거부

argocd-rbac-cm ConfigMap

세분화된 RBAC 예시

역할 정의

내장 역할

역할
설명

role:readonly

모든 리소스 읽기 전용

role:admin

전체 관리자 권한

커스텀 역할

프로젝트 내 역할:

전역 역할 (argocd-rbac-cm):

SSO 그룹 바인딩

OIDC 그룹 매핑

SAML 그룹 매핑

Azure AD 그룹 매핑

JWT 토큰

CI/CD 파이프라인에서 ArgoCD API를 호출할 때 JWT 토큰을 사용합니다.

프로젝트 토큰 생성

선언적 토큰 정의

GitHub Actions에서 사용

API 직접 호출

멀티테넌시 패턴

패턴 1: 팀별 프로젝트

spinner

패턴 2: 환경별 프로젝트

패턴 3: 테넌트별 격리

다음 단계

  1. 보안: SSO 통합과 시크릿 관리를 설정하세요.

  2. 알림: RBAC 이벤트에 대한 알림을 구성하세요.

  3. 모범 사례: 멀티테넌시 모범 사례를 학습하세요.

참고 자료

퀴즈

이 장에서 배운 내용을 테스트하려면 프로젝트와 RBAC 퀴즈를 풀어보세요.

마지막 업데이트