All Products
Search
Document Center

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

Last Updated:Mar 27, 2026

ACK One GitOps mendukung kolaborasi multi-pengguna. Sebagai administrator, Anda dapat membuat pengguna, menetapkan izin Role-Based Access Control (RBAC) Argo CD, serta mengelola akses tingkat aplikasi melalui proyek Argo CD.

Jenis pengguna

ACK One GitOps mendukung dua jenis pengguna:

Jenis pengguna Deskripsi Paling cocok untuk
Local user Dibuat langsung di Argo CD. Mendukung login UI dan pembuatan API key untuk otomatisasi. Tim kecil atau pipeline CI/CD terotomatisasi yang tidak memerlukan SSO, riwayat login, atau akses berbasis kelompok
RAM user atau RAM role Identitas Alibaba Cloud. ACK One GitOps mendukung single sign-on (SSO) secara default, sehingga RAM user dapat login ke UI Argo CD atau CLI Argo CD tanpa memasukkan username dan password terpisah. Tim yang sudah menggunakan RAM untuk manajemen identitas, atau saat Anda memerlukan akses berbasis kelompok, riwayat login, atau kontrol izin detail halus

Buat local user

Prasyarat

Sebelum memulai, pastikan Anda telah memiliki:

Tambahkan pengguna lokal

  1. Edit ConfigMap argocd-cm.

    kubectl edit cm argocd-cm -n argocd
  2. Tambahkan local user di bawah bidang data. Contoh berikut menambahkan pengguna bernama localuser1.

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

    Setiap akun mendukung dua kemampuan:

    • login — memungkinkan pengguna login ke UI Argo CD dan CLI Argo CD

    • apiKey — memungkinkan pengguna menghasilkan token autentikasi 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 untuk pengguna tersebut.

    # 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 memungkinkan Anda mengontrol pengguna dan kelompok mana yang dapat mengakses resource tertentu. Konfigurasi disimpan dalam ConfigMap argocd-rbac-cm dan mengikuti sintaks berbasis kebijakan.

Peran bawaan

Argo CD menyertakan dua peran bawaan:

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 juga didukung.

Sintaks 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> — entitas yang menerima izin (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 local user ke suatu peran. Contoh berikut memetakan localuser1 ke peran bawaan 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 yang dibatasi pada proyek dan aplikasi tertentu.

    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 RAM user atau RAM role

Secara default, RAM user yang merupakan administrator instans Fleet secara otomatis menerima izin admin Argo CD melalui SSO. RAM user biasa memerlukan pemberian izin eksplisit.

Untuk RAM user 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 RAM user ke suatu peran. Contoh berikut memberikan izin role:admin kepada RAM user 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 RAM user 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 Argo CD termasuk dalam suatu proyek. Gunakan proyek Argo CD untuk memberikan izin aplikasi berbeda kepada RAM user atau RAM role yang berbeda.

Proyek Argo CD mendukung kontrol akses berikut:

  • Batas repositori Git — mengontrol repositori Git mana yang dapat digunakan untuk men-deploy aplikasi

  • Batas kluster dan namespace — menentukan kluster dan namespace tempat aplikasi dapat di-deploy

  • Batas tipe objek — membatasi tipe resource Kubernetes yang dapat di-deploy (misalnya, RBAC, Custom Resource Definitions (CRDs), DaemonSets, dan NetworkPolicies)

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

Untuk memberikan izin aplikasi kepada RAM user:

  1. Login ke Konsol RAM menggunakan Akun Alibaba Cloud atau akun administrator Anda. Di panel navigasi kiri, klik Users atau Roles. Di halaman detail pengguna atau peran tersebut, salin UID atau Role ID.

  2. Masuk ke Konsol ACK One. Di panel navigasi kiri, pilih Fleet > Multi-cluster GitOps, lalu klik GitOps Console untuk membuka UI Argo CD.

  3. Di panel navigasi kiri konsol Argo CD, buka Settings > Projects. Klik + NEW PROJECT untuk membuat proyek, atau buka proyek yang sudah ada.

  4. Klik + ADD ROLE, isi bidang-bidang berikut, lalu klik CREATE.

    • GENERAL — konfigurasikan informasi dasar peran

    • POLICY RULES — konfigurasikan izin aplikasi

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

Contoh berikut menunjukkan peran bernama roletest yang memberikan akses read-only (get) kepada RAM user 27***02 untuk semua aplikasi dalam proyek test. Setelah peran dibuat, RAM user tersebut dapat mengklik LOG IN VIA ALIYUN SSO di Konsol ACK One untuk login ke UI Argo CD dan memverifikasi bahwa izin tersebut berlaku.

image