Tüm Ürünler
Search
Belge Merkezi

Container Service for Kubernetes:Create and authorize users in ACK One GitOps

Son Güncelleme:Oct 06, 2026

Yerel veya RAM kullanıcıları oluşturun ve uygulama düzeyinde erişim kontrolü için Argo CD RBAC yapılandırın.

Kullanıcı türleri

ACK One GitOps, çok kullanıcılı ekip iş birliğini destekler. Yöneticiler kullanıcı oluşturabilir veya silebilir; kullanıcı başına Argo CD RBAC izinlerini ve Argo CD Uygulama izinlerini yapılandırabilir. Aşağıdaki iki kullanıcı türü desteklenir:

Kullanıcı türü Açıklama En uygun olduğu durum
Yerel kullanıcı Argo CD'de oluşturulur. Kullanıcı arayüzü oturum açmayı ve API anahtarı oluşturmayı destekler. Tek oturum açma (SSO), oturum açma geçmişi veya grup tabanlı erişime ihtiyaç duymayan küçük ekipler veya otomatik CI/CD işlem hatları
RAM kullanıcısı veya RAM rolü Alibaba Cloud kimliği. RAM kullanıcıları SSO üzerinden oturum açar; ayrı kimlik bilgisi gerekmez. Kimlik yönetimi için RAM kullanan ekipler veya grup tabanlı erişim, oturum açma geçmişi ya da ayrıntılı izinler gerektiren ekipler

Yerel kullanıcı oluşturma

Ön koşullar

Aşağıdakilerin sağlandığından emin olun:

Yerel kullanıcı ekleme

  1. argocd-cm ConfigMap dosyasını düzenleyin.

    kubectl edit cm argocd-cm -n argocd
  2. data alanı altına yerel kullanıcıyı ekleyin. Bu örnekte localuser1 adlı bir kullanıcı eklenmektedir.

    data:
      accounts.localuser1: login,apiKey    # Grants UI login and API key generation
      accounts.localuser1.enabled: "true"  # Enables the user

    Her hesap iki özelliği destekler:

    • login — Argo CD kullanıcı arayüzüne ve CLI'a oturum açma

    • apiKey — API erişimi için kimlik doğrulama belirteçleri oluşturma

  3. Kullanıcının oluşturulduğunu doğrulayın.

    argocd account list

    Beklenen çıktı:

    NAME        ENABLED  CAPABILITIES
    admin       true     login
    localuser1  true     login,apiKey
  4. Parola ayarlayın ve bir belirteç oluşturun.

    # Set a password
    argocd account update-password \
      --account localuser1 \
      --current-password <admin-password> \
      --new-password <localuser1-password>
    
    # Generate an API key token
    argocd account generate-token --account localuser1
    eyJhb......

Argo CD RBAC izinlerini yapılandırma

Argo CD RBAC, kullanıcıların ve grupların kaynaklara erişimini kontrol eder. İlkeler, argocd-rbac-cm ConfigMap dosyasında tanımlanır.

Önceden tanımlanmış roller

İzin vermek için önce bir role izin atayın, ardından bir SSO grubunu veya yerel kullanıcıyı bu role eşleyin. Özel roller desteklenir ve aşağıdaki yerleşik roller kullanılabilir:

Rol İzinler
role:readonly Tüm Argo CD kaynakları için salt okunur (get) erişim
role:admin Tüm Argo CD kaynakları için tam erişim

Ayrıntılı izinlere sahip özel roller desteklenir.

İlke sözdizimi

Tüm ilkeler, argocd-rbac-cm içindeki .data.policy.csv alanında tanımlanır.

Bir izin atama (p kuralı):

p, <role/user/group>, <resource>, <action>, <object>

Bir proje içindeki kaynaklar için:

p, <role/user/group>, <resource>, <action>, <appproject>/<object>

Burada:

  • <rol/kullanıcı/grup> — bir rol adı, yerel kullanıcı adı veya SSO grubu/KIMLIK NO'su

  • <kaynak> — Argo CD kaynak türü

  • <eylem> — izin verilecek işlem

  • <nesne> — belirli kaynak örneği veya tümü için *

Bir kullanıcıyı veya grubu bir role eşleme (g kuralı):

g, <user/group>, <role>

Desteklenen kaynaklar ve eylemler

Argo CD aşağıdaki kaynakları destekler: clusters, projects, applications, applicationsets, repositories, certificates, accounts, gpgkeys, logs, exec ve extensions.

Aşağıdaki eylemler desteklenir: get, create, update, delete, sync, override ve action/<api-group>/<Kind>/<action-name>.

sync , override ve action/<api-group>/<Kind>/<action-name> yalnızca applications kaynağı için geçerlidir.

Yerel kullanıcıya izin verme

  1. argocd-rbac-cm ConfigMap dosyasını düzenleyin.

    kubectl edit cm argocd-rbac-cm -n argocd
  2. Yerel kullanıcıyı bir role eşlemek için bir g kuralı ekleyin. Bu örnekte localuser1 kullanıcısı role:admin rolüne eşlenir.

    • Tüm Argo CD kaynaklarına tam erişim sağlamak için localuser1 kullanıcısını role:admin rolüne eşleyin.

    • Proje kapsamındaki erişim için localuser1 kullanıcısını özel rol project-admin ile eşleyin (yorum satırı olarak bırakılmıştır).

    Önemli

    ConfigMap içindeki diğer mevcut yapılandırmaları değiştirmeyin.

    data:
      policy.csv: |
    ##  p, role:project-admin, applications, *, */*, allow
    ##  p, role:project-admin, projects, *, *, allow
    
          g, "14***01", role:admin          # Keep the current setting.
          g, localuser1, role:admin         # Map localuser1 to role:admin.
    ##    g, localuser1, role:project-admin # Alternative: map to a custom role.
        scopes: '[uid]'                     # Keep the current setting.

    Bu örnek iki senaryoyu destekler:

RAM kullanıcılarına veya RAM rollerine izin verme

ACK One GitOps, Argo CD kullanıcı arayüzünü ve Argo CD CLI'ı varsayılan olarak Alibaba Cloud RAM SSO kimlik doğrulamasıyla entegre eder. Alibaba Cloud konsolunda oturum açtıktan sonra, kimlik bilgilerini yeniden girmeden SSO aracılığıyla Argo CD kullanıcı arayüzüne veya Argo CD CLI'a erişebilirsiniz. Fleet örneği yöneticileri otomatik olarak Argo CD yönetici izinlerini alır. Normal RAM kullanıcılarının izin alması için fleet yöneticisinin izin vermesi gerekir.

Normal bir RAM kullanıcısı için hem aşağıdakileri verin:

  1. argocd-rbac-cm içinde Argo CD RBAC izinleri

  2. Argo CD projeleri aracılığıyla uygulama düzeyinde izinler

Argo CD RBAC izinleri verme

  1. argocd-rbac-cm ConfigMap dosyasını düzenleyin.

    kubectl edit cm argocd-rbac-cm -n argocd
  2. RAM kullanıcısının KIMLIK NO'sunu bir role eşlemek için bir g kuralı ekleyin. Bu örnekte 27***02 kullanıcısına role:admin rolü verilir.

    data:
      policy.csv: |
    ##  p, role:project-admin, applications, *, */*, allow
    ##  p, role:project-admin, projects, *, *, allow
    
          g, "14***01", role:admin          # Keep the current setting.
          g, "27***02", role:admin          # Grant role:admin to RAM user 27***02.
    ##    g, "27***02", role:project-admin  # Alternative: map to a custom role.
        scopes: '[uid]'                     # Keep the current setting.

Argo CD uygulama izinleri verme

Her uygulama bir projeye aittir. Farklı RAM kullanıcılarına veya rollerine uygulama izinleri atamak için projeleri kullanın.

Projeler şu erişim kontrollerini destekler:

  • Git deposu sınırı — dağıtım için izin verilen Git depolarını kısıtlar

  • Küme ve ad alanı sınırı — dağıtım için hedef kümeleri ve ad alanlarını kısıtlar

  • Nesne türü sınırı — dağıtılabilen Kubernetes kaynak türlerini kısıtlar (örneğin, RBAC, CRD'ler, DaemonSet'ler ve NetworkPolicy'ler)

  • Uygulama düzeyinde RBAC — proje rollerini OpenID Connect (OIDC) gruplarına ve JSON Web Belirteçlerine (JWT) bağlayarak RAM kullanıcılarına veya rollerine uygulama başına izinler verir

Bir RAM kullanıcısına uygulama izni vermek için:

  1. RAM root hesabını veya bir izin yöneticisi hesabını kullanarak RAM konsolunda oturum açın. Users veya Roles seçeneğini tıklayın, hedef kullanıcıyı veya rolü açın ve UID veya Role ID değerini kopyalayın.

  2. ACK One konsolunda oturum açın. Fleet > Multi-cluster GitOps seçeneğini seçin, ardından GitOps Console seçeneğini tıklayın.

  3. Settings > Projects bölümüne gidin. + NEW PROJECT seçeneğini tıklayın veya mevcut bir projeyi açın.

  4. + ADD ROLE seçeneğini tıklayın, aşağıdakileri yapılandırın ve CREATE seçeneğini tıklayın.

    • GENERAL — temel rol ayarları

    • POLICY RULES — uygulama izinlerini yapılandırın

    • GROUPS — 1. adımda kopyalanan UID veya Role ID değerini girin, ardından ADD GROUP seçeneğini tıklayın

Bu örnekte, test projesindeki tüm uygulamalara salt okunur (get) erişimi veren roletest adlı bir rol oluşturulur ve 27***02 kullanıcısına atanır. Rolü oluşturduktan sonra, oturum açıp izinleri doğrulamak için LOG IN VIA ALIYUN SSO seçeneğini tıklayın.

image