All Products
Search
Document Center

Container Service for Kubernetes:Buat dan otorisasi pengguna di ACK One GitOps

Last Updated:Jun 18, 2026

Buat pengguna lokal atau pengguna RAM, lalu konfigurasikan RBAC Argo CD untuk kontrol akses tingkat aplikasi.

Jenis pengguna

ACK One GitOps mendukung kolaborasi tim multi-pengguna. Administrator dapat membuat atau menghapus pengguna serta mengonfigurasi izin RBAC Argo CD dan izin Aplikasi Argo CD per pengguna. Dua jenis pengguna berikut didukung:

Jenis pengguna Deskripsi Paling cocok untuk
Local user Dibuat di Argo CD. Mendukung login UI dan pembuatan API key. Tim kecil atau pipeline CI/CD otomatis yang tidak memerlukan SSO, riwayat login, atau akses berbasis kelompok
RAM user atau RAM role Identitas Alibaba Cloud. Pengguna RAM login melalui SSO—tidak memerlukan kredensial terpisah. Tim yang menggunakan RAM untuk manajemen identitas, atau memerlukan akses berbasis kelompok, riwayat login, atau izin detail halus

Buat local user

Prasyarat

Pastikan hal-hal berikut:

Tambahkan local user

  1. Edit ConfigMap argocd-cm.

    kubectl edit cm argocd-cm -n argocd
  2. Tambahkan pengguna lokal di bawah bidang data. Contoh ini menambahkan pengguna bernama localuser1.

    data:
      accounts.localuser1: login,apiKey    # Memberikan izin login UI dan pembuatan API key
      accounts.localuser1.enabled: "true"  # Mengaktifkan pengguna

    Setiap akun mendukung dua kemampuan:

    • login — login ke UI dan CLI Argo CD

    • apiKey — menghasilkan token otentikasi untuk akses API

  3. Verifikasi bahwa pengguna telah dibuat.

    argocd account list

    Output yang diharapkan:

    NAME        ENABLED  CAPABILITIES
    admin       true     login
    localuser1  true     login,apiKey
  4. Tetapkan kata sandi dan hasilkan token.

    # Tetapkan kata sandi
    argocd account update-password \
      --account localuser1 \
      --current-password <admin-password> \
      --new-password <localuser1-password>
    
    # Hasilkan token API key
    argocd account generate-token --account localuser1
    eyJhb......

Konfigurasikan izin RBAC Argo CD

RBAC Argo CD mengontrol akses pengguna dan kelompok ke resource. Kebijakan didefinisikan dalam ConfigMap argocd-rbac-cm.

Peran yang telah ditentukan

Untuk memberikan izin, pertama-tama tetapkan izin ke suatu peran, lalu petakan kelompok SSO atau pengguna lokal ke peran tersebut. Peran kustom didukung, dan peran bawaan berikut tersedia:

Peran Izin
role:readonly Akses read-only (get) ke semua resource Argo CD
role:admin Akses penuh ke semua resource Argo CD

Peran kustom dengan izin detail halus didukung.

Sintaksis kebijakan

Semua kebijakan didefinisikan dalam bidang .data.policy.csv dari argocd-rbac-cm.

Tetapkan izin (`p` rule):

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

Untuk resource dalam proyek:

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

Di mana:

  • <role/user/group> — nama peran, username lokal, atau kelompok/UID SSO

  • <resource> — tipe resource Argo CD

  • <action> — operasi yang diizinkan

  • <object> — instance resource spesifik, atau * untuk semua

Petakan pengguna atau kelompok ke peran (`g` rule):

g, <user/group>, <role>

Resource dan aksi yang didukung

Argo CD mendukung resource berikut: clusters, projects, applications, applicationsets, repositories, certificates, accounts, gpgkeys, logs, exec, dan extensions.

Aksi berikut didukung: get, create, update, delete, sync, override, dan action/<api-group>/<Kind>/<action-name>.

sync, override, dan action/<api-group>/<Kind>/<action-name> hanya berlaku untuk resource applications.

Berikan izin kepada local user

  1. Edit ConfigMap argocd-rbac-cm.

    kubectl edit cm argocd-rbac-cm -n argocd
  2. Tambahkan aturan g untuk memetakan pengguna lokal ke suatu peran. Contoh ini memetakan localuser1 ke role:admin.

    • Petakan localuser1 ke role:admin untuk akses penuh ke semua resource Argo CD.

    • Petakan localuser1 ke peran kustom project-admin (dikomentari) untuk akses terbatas pada proyek.

    Penting

    Jangan mengubah konfigurasi lain yang sudah ada dalam ConfigMap.

    data:
      policy.csv: |
    ##  p, role:project-admin, applications, *, */*, allow
    ##  p, role:project-admin, projects, *, *, allow
    
          g, "14***01", role:admin          # Pertahankan pengaturan saat ini.
          g, localuser1, role:admin         # Petakan localuser1 ke role:admin.
    ##    g, localuser1, role:project-admin # Alternatif: petakan ke peran kustom.
        scopes: '[uid]'                     # Pertahankan pengaturan saat ini.

    Contoh ini mendukung dua skenario:

Berikan izin kepada pengguna RAM atau peran RAM

ACK One GitOps secara default mengintegrasikan UI Argo CD dan CLI Argo CD dengan otentikasi SSO Alibaba Cloud RAM. Setelah Anda login ke konsol Alibaba Cloud, Anda dapat mengakses UI Argo CD atau CLI Argo CD melalui SSO tanpa memasukkan kredensial lagi. Administrator instans Fleet secara otomatis menerima izin admin Argo CD. Pengguna RAM biasa memerlukan administrator fleet untuk memberikan izin.

Untuk pengguna RAM biasa, berikan keduanya:

  1. Izin RBAC Argo CD dalam argocd-rbac-cm

  2. Izin tingkat aplikasi melalui proyek Argo CD

Berikan izin RBAC Argo CD

  1. Edit ConfigMap argocd-rbac-cm.

    kubectl edit cm argocd-rbac-cm -n argocd
  2. Tambahkan aturan g untuk memetakan UID pengguna RAM ke suatu peran. Contoh ini memberikan peran role:admin kepada 27***02.

    data:
      policy.csv: |
    ##  p, role:project-admin, applications, *, */*, allow
    ##  p, role:project-admin, projects, *, *, allow
    
          g, "14***01", role:admin          # Pertahankan pengaturan saat ini.
          g, "27***02", role:admin          # Berikan role:admin kepada pengguna RAM 27***02.
    ##    g, "27***02", role:project-admin  # Alternatif: petakan ke peran kustom.
        scopes: '[uid]'                     # Pertahankan pengaturan saat ini.

Berikan izin aplikasi Argo CD

Setiap aplikasi termasuk dalam suatu proyek. Gunakan proyek untuk memberikan izin aplikasi kepada pengguna atau peran RAM yang berbeda.

Proyek mendukung kontrol akses berikut:

  • Batas repositori Git — membatasi repositori Git yang diizinkan untuk penerapan

  • Batas kluster dan namespace — membatasi kluster target dan namespace untuk penerapan

  • Batas tipe objek — membatasi tipe resource Kubernetes yang dapat diterapkan (misalnya, RBAC, CRDs, DaemonSets, dan NetworkPolicies)

  • RBAC tingkat aplikasi — memberikan izin per-aplikasi kepada pengguna atau peran RAM dengan mengikat peran proyek ke kelompok OpenID Connect (OIDC) dan Token Web JSON (JWT)

Untuk memberikan izin aplikasi kepada pengguna RAM:

  1. Gunakan akun root RAM atau akun administrator izin untuk login ke konsol RAM. Klik Users atau Roles, buka pengguna atau peran target, lalu salin UID atau Role ID.

  2. Login ke Konsol ACK One. Pilih Fleet > Multi-cluster GitOps, lalu klik GitOps Console.

  3. Buka Settings > Projects. Klik + NEW PROJECT atau buka proyek yang sudah ada.

  4. Klik + ADD ROLE, konfigurasikan hal berikut, lalu klik CREATE.

    • GENERAL — pengaturan dasar peran

    • POLICY RULES — konfigurasikan izin aplikasi

    • GROUPS — masukkan UID atau Role ID yang disalin pada langkah 1, lalu klik ADD GROUP

Contoh ini membuat peran roletest yang memberikan akses read-only (get) kepada 27***02 untuk semua aplikasi dalam proyek test. Setelah membuat peran, klik LOG IN VIA ALIYUN SSO untuk login dan memverifikasi izin.

image