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

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 ve project-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.

Read more

Systemd ile Kendi Servisini Yaz: Flask ve Yedekleme Script’i Üzerinden Uygulamalı Rehber

Systemd ile Kendi Servisini Yaz: Flask ve Yedekleme Script’i Üzerinden Uygulamalı Rehber

Linux’ta çalışan bir script ya da uygulamayı sürekli aktif halde tutmak, hata durumunda yeniden başlatmak veya sistemi yeniden başlattığınızda otomatik olarak ayağa kaldırmak istiyorsanız systemd tam aradığınız şey. Bu rehberde hem bir Flask uygulamasını, hem de günlük çalışan basit bir yedekleme script’ini systemd servislerine dönüştüreceğiz. Gereksiz terimler yok,