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:
-
kubectl terhubung ke instans Fleet dengan kubeconfig dari Konsol ACK One.
-
GitOps diaktifkan untuk instans Fleet.
-
Kata sandi administrator Argo CD. Lihat Akses Argo CD menggunakan CLI Argo CD.
Tambahkan local user
-
Edit ConfigMap
argocd-cm.kubectl edit cm argocd-cm -n argocd -
Tambahkan pengguna lokal di bawah bidang
data. Contoh ini menambahkan pengguna bernamalocaluser1.data: accounts.localuser1: login,apiKey # Memberikan izin login UI dan pembuatan API key accounts.localuser1.enabled: "true" # Mengaktifkan penggunaSetiap akun mendukung dua kemampuan:
-
login— login ke UI dan CLI Argo CD -
apiKey— menghasilkan token otentikasi untuk akses API
-
-
Verifikasi bahwa pengguna telah dibuat.
argocd account listOutput yang diharapkan:
NAME ENABLED CAPABILITIES admin true login localuser1 true login,apiKey -
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, danaction/<api-group>/<Kind>/<action-name>hanya berlaku untuk resourceapplications.
Berikan izin kepada local user
-
Edit ConfigMap
argocd-rbac-cm.kubectl edit cm argocd-rbac-cm -n argocd -
Tambahkan aturan
guntuk memetakan pengguna lokal ke suatu peran. Contoh ini memetakanlocaluser1kerole:admin.-
Petakan
localuser1kerole:adminuntuk akses penuh ke semua resource Argo CD. -
Petakan
localuser1ke peran kustomproject-admin(dikomentari) untuk akses terbatas pada proyek.
PentingJangan 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:
-
Izin RBAC Argo CD dalam
argocd-rbac-cm -
Izin tingkat aplikasi melalui proyek Argo CD
Berikan izin RBAC Argo CD
-
Edit ConfigMap
argocd-rbac-cm.kubectl edit cm argocd-rbac-cm -n argocd -
Tambahkan aturan
guntuk memetakan UID pengguna RAM ke suatu peran. Contoh ini memberikan peranrole:adminkepada27***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:
-
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.
-
Login ke Konsol ACK One. Pilih Fleet > Multi-cluster GitOps, lalu klik GitOps Console.
-
Buka Settings > Projects. Klik + NEW PROJECT atau buka proyek yang sudah ada.
-
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.