ArgoCD Üzerinde Yeni Kullanıcı Oluşturma ve Yetkilendirme

ArgoCD, GitOps temelli uygulama yönetimi için oldukça güçlü bir araç. Tek bir admin
hesabıyla tüm sistemi yönetmek bazen pratik görünse de, ekip büyüdükçe yetki yönetimi şart hale gelir. ArgoCD üzerinde kullanıcı bazlı erişim kontrolü (RBAC) kurarak kim hangi uygulamayı görebilir, senkronize edebilir ya da rollback yapabilir, rahatça tanımlayabilirsiniz.
Bu yazıda örnek bir kullanıcı (john-dev
) üzerinden, ArgoCD’ye nasıl yeni kullanıcı ekleyeceğimizi, bu kullanıcıya nasıl proje ve uygulama erişim yetkisi vereceğimizi adım adım anlatacağım.
1. Kullanıcıyı ArgoCD’ye Tanıtma
ArgoCD, kullanıcıları argocd-cm
adlı bir ConfigMap içinden tanır. Bu nedenle öncelikle bu dosyayı düzenlememiz gerekiyor.
kubectl edit configmap argocd-cm -n devops-tools
Açılan editörde data
altına aşağıdaki satırı ekleyin:
data:
accounts.john-dev: login
Bu, john-dev
adında bir kullanıcının ArgoCD login ekranından giriş yapmasına izin verir. Ancak şu anda bu kullanıcının hiçbir yetkisi yok. Sadece giriş izni var.
2. RBAC (Yetki) Tanımlama
Şimdi, bu kullanıcıya ArgoCD üzerinde ne yapabileceğini söylememiz gerekiyor. Bunun için argocd-rbac-cm
adlı başka bir ConfigMap dosyasını düzenleyeceğiz.
kubectl edit configmap argocd-rbac-cm -n devops-tools
İçeriğine şu RBAC tanımlarını ekleyelim:
data:
policy.csv: |
# Belirli uygulamalara erişim izni
p, role:dev-user, applications, get, default/project-webapp, allow
p, role:dev-user, applications, get, default/project-api, allow
# Operasyon yetkileri (sync, rollback, restart vs.)
p, role:dev-user, applications, sync, default/*, allow
p, role:dev-user, applications, rollback, default/*, allow
p, role:dev-user, applications, action/restart, default/*, allow
p, role:dev-user, applications, resource, default/*, allow
p, role:dev-user, applications, health, default/*, allow
p, role:dev-user, applications, operation, default/*, allow
# Kullanıcı ile rol eşleştirme
g, john-dev, role:dev-user
Buradaki yetkilerle john-dev
kullanıcısı:
project-webapp
veproject-api
adlı uygulamaları görüntüleyebilir- Bu uygulamalarda sync, rollback, restart ve benzeri operasyonları yapabilir
RBAC mantığı Casbin tabanlıdır.p
policy,g
ise grup/rol eşlemesidir.
3. Kullanıcının Şifresini Belirleme
Şimdi john-dev
kullanıcısı giriş yapabilir ama henüz bir şifresi yok. ArgoCD CLI ile admin hesabı üzerinden bu kullanıcıya bir parola atayalım.
a) ArgoCD CLI ile admin olarak giriş yap:
argocd login argocd-server.devops-tools \
--username admin \
--password P@ssw0rd123
b) Kullanıcının şifresini belirle:
argocd account update-password --account john-dev
CLI sizden yeni şifreyi iki kez isteyecek. Bu işlemle birlikte kullanıcı aktif hale gelir.
4. Giriş Testi
Tarayıcıdan şu adrese git:
https://argocd.example.com
- Kullanıcı Adı:
john-dev
- Şifre: (az önce belirlediğiniz parola)
Eğer RBAC kuralları doğruysa, yalnızca kendisine izin verilmiş uygulamaları görmesi gerekir. Diğer uygulamalar gizlenir.
Artık ArgoCD’ye yeni kullanıcılar ekleyebilir, uygulama bazlı erişim yönetimi sağlayabilir ve her kullanıcıya ihtiyacı olan kadar yetki tanımlayabilirsiniz. Bu yapı özellikle büyük ekiplerde hem güvenlik hem de operasyonel sadelik sağlar.