ArgoCD가 GitHub 저장소의 YAML 파일을 읽어와 GitOps 방식으로 배포하려면
GitHub 접근 토큰(PAT) 이 필요합니다.
이 글에서는 보안적으로 더 안전한 Fine-grained Token 발급 방법을 정리합니다.

1. 어떤 토큰을 선택해야 할까?
GitHub에서는 두 가지 방식의 토큰을 제공합니다.

- 추천: Fine-grained tokens
→ 특정 저장소에만 권한을 줄 수 있는 최신 방식 (보안성 높음) - 간편: Tokens (classic)
→ 계정 전체 저장소에 광범위한 권한을 부여하는 기존 방식
=> 운영 환경에서는 Fine-grained 방식 사용을 권장합니다.
2. Repository 접근 범위 설정
토큰 생성 화면에서 Repository access를 설정합니다.

- 선택: Only select repositories
- 이유:
ArgoCD가 내 GitHub의 모든 프로젝트를 읽을 필요는 없습니다.
현재 GitOps 용도로 사용하는 EKS_GitOps 저장소만 지정하는 것이 보안적으로 안전합니다.
✔ 최소 권한 원칙 (Principle of Least Privilege)을 적용하는 것이 핵심입니다.
3. 필수 권한(Permissions) 설정
ArgoCD는 저장소의 YAML 파일을 읽기만 하면 되기 때문에 쓰기 권한은 필요하지 않습니다.
반드시 설정해야 할 권한

- Contents: Read-only
→ ArgoCD가 Kubernetes 매니페스트(YAML)를 읽어오기 위해 필요 - Metadata: Read-only (기본값 유지)
그 외 권한은 모두 비활성화하는 것을 권장합니다.
보안 주의사항 (중요)
토큰은 비밀번호와 동일합니다.
- GitHub PAT는 절대 블로그, 노션, 코드 저장소에 노출하면 안 됩니다
- 노출 시 즉시 GitHub에서 Revoke(폐기) 해야 합니다
- 가능하면:
- 만료 기간 설정
- ArgoCD에서는 Kubernetes Secret으로 관리
- CI/CD 환경에서는 Secret Manager 사용
ArgoCD와 GitHub 연동 구조 이해하기
ArgoCD는 Git 저장소를 "Single Source of Truth"로 삼습니다.
동작 흐름은 다음과 같습니다:
- GitHub 저장소 (EKS_GitOps)
- ArgoCD가 PAT로 인증 후 YAML 파일 조회
- Kubernetes(EKS)에 자동 반영
이 구조는 Git 변경이 곧 배포가 되는 진정한 GitOps 방식입니다.
운영 환경에서 ArgoCD를 사용할 때 가장 중요한 것은
최소 권한 설정
Fine-grained Token 사용
토큰 철저한 보안 관리GitOps는 자동화만큼이나 보안 설계가 핵심입니다.
처음 설정 단계에서 제대로 구성해두면, 이후 운영이 훨씬 안정적이고 안전해집니다.
'Cloud > CICD' 카테고리의 다른 글
| [CICD] GitOps 환경구축 #1 (Github Actions) (0) | 2026.02.20 |
|---|---|
| [CICD] GitOps 환경구축 (ECR) (0) | 2026.02.15 |
| [CICD] Local GitOps 환경 구축 #2 (0) | 2026.02.14 |
| [CICD] Local GitOps 환경 구축 #1 (0) | 2026.02.13 |