멀티 테넌트 Kubernetes 클러스터에서 안정적인 Argo CD 접근 문의

Argo CD RBAC 또는 Kubernetes 자체의 Role/RoleBinding을 활용해야 할 것 같은데, 실제로 멀티 테넌트 환경에서 Argo CD를 안전하게 운영하는 방법에 대해 실무적인 조언을 듣고 싶습니다.

  • Argo CD RBAC 설정
    Argo CD 자체의 RBAC 정책을 수정해서, 사용자 또는 그룹 단위로 권한을 제한할 수 있습니다. 예를 들면:
g, team-a, role:team-a-role
g, team-b, role:team-b-role
p, role:team-a-role, applications, get, team-a-*, allow
p, role:team-b-role, applications, get, team-b-*, allow
  • Argo CD 프로젝트 사용
    각 팀별로 별도의 Project를 만들어, 그 Project 내에서만 Application을 생성/관리할 수 있도록 합니다. Project에는 소스 리포지토리, 대상 클러스터, 네임스페이스 등을 명시적으로 제한할 수 있습니다.

  • Kubernetes Namespace 및 RoleBinding
    Kubernetes 레벨에서도 각 팀별 네임스페이스를 따로 만들고, 네임스페이스에 Role/RoleBinding을 적용해, 팀원이 자신의 네임스페이스만 관리할 수 있도록 해야 합니다.

  • SSO 통합 및 Group 매핑
    Argo CD를 SSO(예: OIDC, SAML)와 통합하고, 인증된 사용자 그룹에 기반해 RBAC을 동적으로 적용하는 것도 매우 효과적입니다.

도움이 되셨길 …