Kebijakan keamanan merupakan mekanisme perlindungan sisi klien untuk operasi Alibaba Cloud CLI. Saat diaktifkan, CLI mengevaluasi setiap operasi terhadap aturan yang dikonfigurasi sebelum menjalankan perintah, lalu mengizinkan atau menolak operasi tersebut, atau meminta konfirmasi manual sebelum eksekusi.
Ikhtisar
Kebijakan keamanan mendefinisikan serangkaian aturan. Setiap aturan terdiri dari pola (kriteria pencocokan) dan aksi (jenis respons):
allow(izinkan): Secara eksplisit mengizinkan operasi dan melewati evaluasi aturan selanjutnya. Tempatkan aturanallowsebelum aturandenyatauconfirmyang lebih luas untuk membuat pengecualian bagi operasi tertentu.deny(blokir): Memblokir operasi sepenuhnya. CLI menolak perintah dan tidak mengirim permintaan API.confirm(butuh persetujuan): Di terminal interaktif, CLI akan meminta Anda mengetikyessebelum melanjutkan. Di lingkungan non-interaktif, CLI mengembalikan error beserta instruksi untuk pemanggil.
Kebijakan keamanan berlaku untuk panggilan OpenAPI (RPC dan RESTful) maupun perintah plugin. Kebijakan ini berfungsi sebagai lapisan perlindungan global sisi klien yang melengkapi kontrol akses sisi server (RAM), tetapi tidak menggantikan kebijakan izin RAM.
Skenario
Batas pengaman AI agent: Ketika AI agent menggunakan CLI untuk mengelola sumber daya cloud, kebijakan keamanan dapat mencegat operasi destruktif (seperti operasi hapus) dan meminta konfirmasi manusia atau memblokirnya sepenuhnya. Ini menerapkan mekanisme human-in-the-loop (HITL) untuk skenario AI agent.
Pengaman operasional: Konfigurasikan aturan default untuk lingkungan CLI tim guna mencegah eksekusi tidak disengaja atas operasi destruktif seperti menghapus sumber daya atau menghentikan instans.
Prasyarat
Alibaba Cloud CLI v3.3.14 atau versi lebih baru telah terinstal. Jalankan perintah berikut untuk memeriksa versi saat ini:
aliyun versionKredensial CLI telah dikonfigurasi. Jika Anda belum mengonfigurasi kredensial, jalankan perintah berikut:
aliyun configure
Mengelola kebijakan keamanan
Kebijakan keamanan dikelola melalui keluarga perintah aliyun configure safety-policy.
Lihat kebijakan saat ini
Jalankan perintah berikut untuk melihat konfigurasi lengkap kebijakan keamanan dalam format JSON:
aliyun configure safety-policy showContoh output:
{
"enabled": false,
"rules": []
}Aktifkan dan nonaktifkan
# Aktifkan kebijakan keamanan
aliyun configure safety-policy enable
# Nonaktifkan kebijakan keamanan
aliyun configure safety-policy disableJalankan aliyun configure safety-policy show untuk memverifikasi bahwa bidang enabled bernilai true.
Tambahkan aturan
Sintaks perintah:
aliyun configure safety-policy add --pattern <pattern> --action <deny|confirm>Contoh: Blokir semua operasi hapus di seluruh produk:
aliyun configure safety-policy add --pattern '*:Delete*' --action denyContoh: Minta konfirmasi manusia untuk operasi pembaruan ECS:
aliyun configure safety-policy add --pattern 'ecs:Update*' --action confirmJalankan aliyun configure safety-policy list untuk memverifikasi bahwa aturan telah ditambahkan.
Jika Anda menambahkan aturan dengan pola yang sudah ada, CLI akan memperbarui aksi untuk pola tersebut alih-alih membuat entri duplikat.
Subperintah add hanya menerima nilai aksi deny, confirm, dan forbid. Untuk mengonfigurasi aturan allow, atur variabel lingkungan ALIBABA_CLOUD_SAFETY_POLICY_RULES atau edit langsung file konfigurasi.
Hapus aturan
Tentukan pola yang tepat untuk menghapus aturan:
aliyun configure safety-policy remove --pattern '*:Delete*'Daftar aturan
Jalankan perintah berikut untuk melihat semua aturan dalam daftar terformat:
aliyun configure safety-policy listContoh output:
Safety policy: enabled
Config file: /home/user/.aliyun/safety-policy.json
Rules:
1. *:Delete* -> deny
2. ecs:Update* -> confirmSintaks aturan
Format pola
Parameter --pattern menggunakan format {product}:{operation} dan mendukung wildcard * (mencocokkan urutan karakter apa pun). Pencocokan pola tidak membedakan huruf besar/kecil, artinya *:Delete*, *:DELETE*, dan *:delete* semuanya mencocokkan operasi yang sama.
CLI menyusun pengenal perintah berbeda tergantung gaya API:
Gaya API | Format pola | Contoh |
RPC |
|
|
RESTful |
|
|
Plugin |
|
|
Contoh pola umum:
Pola | Kecocokan |
| Semua operasi yang mengandung "Delete" di seluruh produk (tidak membedakan huruf besar/kecil) |
| Hanya operasi delete-instance ECS |
| Semua operasi ECS yang dimulai dengan "Update" |
| Semua operasi di seluruh produk |
Saat menjalankan perintah di shell, bungkus nilai pola dengan tanda petik tunggal (misalnya, '*:Delete*') untuk mencegah shell melakukan ekspansi wildcard *.
Nilai aksi
Aksi | Perilaku |
| Secara eksplisit mengizinkan operasi. Dalam sistem aturan first-match-wins, tempatkan aturan |
| Memblokir operasi dan mengembalikan error. CLI tidak mengirim permintaan API. |
| Meminta konfirmasi di terminal interaktif. Pengguna harus mengetik |
forbid adalah alias untuk confirm. Keduanya menghasilkan perilaku waktu proses yang identik.
Jika tidak ada aturan yang cocok dengan operasi saat ini, perilaku default-nya adalah mengizinkan eksekusi (implicit allow). Aturan allow eksplisit terutama digunakan untuk membuat pengecualian daftar-putih sebelum aturan deny atau confirm yang lebih luas.
Urutan evaluasi aturan
Aturan dievaluasi dari atas ke bawah sesuai urutan yang dikonfigurasi, menggunakan strategi first-match-wins: aturan pertama yang cocok akan diterapkan dan aturan berikutnya tidak diperiksa. Jika tidak ada aturan yang cocok, perilaku default-nya adalah mengizinkan eksekusi.
Sebagai contoh, diberikan dua aturan berikut:
ecs:Delete*→ confirm*:Delete*→ deny
Saat Anda menjalankan aliyun ecs delete-instance, aturan pertama (ecs:Delete*) cocok, dan aksi confirm diterapkan — bukan aksi deny dari aturan kedua.
Menggunakan allow untuk membuat pengecualian:
ecs:Describe*→ allowecs:*→ deny
Menjalankan aliyun ecs DescribeInstances cocok dengan aturan allow pertama dan operasi berjalan normal. Menjalankan aliyun ecs DeleteInstance cocok dengan aturan kedua dan diblokir.
Urutan aturan sangat penting. Saat menambahkan aturan, pastikan aturan yang lebih spesifik muncul sebelum aturan yang lebih umum.
Mode non-interaktif dan skenario AI agent
Flag --yes
Saat Anda menentukan flag --yes (atau -y), aturan confirm secara otomatis dilewati (dianggap disetujui). Aturan deny tidak terpengaruh dan tetap memblokir eksekusi.
# aturan confirm dilewati, operasi langsung dijalankan
aliyun ecs update-instance --InstanceId i-bp1xxxxx --yes
# aturan deny tidak terpengaruh, operasi tetap diblokir
aliyun ecs delete-instance --InstanceId i-bp1xxxxx --yes
# Output: ERROR: operation blocked by safety policy: ecs delete-instance (rule: *:Delete*)Anda juga dapat mengatur variabel lingkungan ALIBABA_CLOUD_SAFETY_SKIP_CONFIRM ke nilai true untuk menyetujui otomatis semua aturan confirm selama satu sesi, yang setara dengan memberikan flag --yes pada setiap perintah:
export ALIBABA_CLOUD_SAFETY_SKIP_CONFIRM=trueBaik --yes maupun ALIBABA_CLOUD_SAFETY_SKIP_CONFIRM tidak dapat melewati aturan deny. Operasi yang cocok dengan aturan deny selalu diblokir, terlepas dari flag atau variabel lingkungan apa pun.
Perilaku terminal non-interaktif
CLI mendeteksi apakah input standar merupakan perangkat terminal untuk menentukan lingkungan saat ini. Di lingkungan non-interaktif (seperti skrip, pipeline CI/CD, dan waktu proses AI agent), jika suatu operasi cocok dengan aturan confirm dan flag --yes tidak ditentukan, CLI mengembalikan error berikut:
Safety policy requires confirmation for: ecs update-instance
This operation cannot run in non-interactive mode without explicit approval. If you are an agent, ask the user whether this operation is allowed; after they confirm (e.g. reply yes), re-run the same command with --yes.Alur kerja AI agent yang direkomendasikan
Saat AI agent mengelola sumber daya cloud melalui CLI, ikuti langkah-langkah berikut untuk mengonfigurasi dan menggunakan kebijakan keamanan:
Konfigurasikan kebijakan keamanan: Tetapkan
denyuntuk operasi yang benar-benar dilarang, danconfirmuntuk operasi yang memerlukan persetujuan.Tangani prompt konfirmasi: Saat agent menghadapi blokir
confirm, tampilkan detail operasi kepada pengguna dan minta persetujuan.Jalankan ulang dengan persetujuan: Setelah pengguna menyetujui, agent menjalankan ulang perintah dengan flag
--yes.
Contoh konfigurasi: Blokir operasi hapus dan minta konfirmasi manusia untuk operasi pembaruan:
aliyun configure safety-policy enable
aliyun configure safety-policy add --pattern '*:Delete*' --action deny
aliyun configure safety-policy add --pattern '*:Update*' --action confirmVariabel lingkungan
Selain konfigurasi melalui baris perintah, Anda dapat mengontrol kebijakan keamanan melalui variabel lingkungan. Variabel lingkungan memiliki prioritas lebih tinggi daripada file konfigurasi.
Variabel lingkungan | Deskripsi | Contoh |
| Menimpa nilai |
|
| Menimpa daftar aturan dalam file konfigurasi. Gunakan format |
|
| Atur ke |
|
Saat variabel lingkungan ALIBABA_CLOUD_SAFETY_POLICY_RULES diatur, aturan dalam file konfigurasi sepenuhnya diganti, bukan digabung.
File konfigurasi
Konfigurasi kebijakan keamanan disimpan di ~/.aliyun/safety-policy.json. Jika Anda menentukan opsi --config-path, file safety-policy.json berada di direktori kustom yang ditentukan.
Contoh format file:
{
"enabled": true,
"rules": [
{
"pattern": "ecs:Describe*",
"action": "allow"
},
{
"pattern": "*:Delete*",
"action": "deny"
},
{
"pattern": "ecs:Update*",
"action": "confirm"
}
]
}Jika file konfigurasi tidak ada, kebijakan keamanan dinonaktifkan secara default dan daftar aturan kosong. File ini dibuat otomatis saat Anda pertama kali menjalankan subperintah
enableatauadd.
Kebijakan keamanan menggunakan desain fail-open: jika file konfigurasi tidak dapat dimuat (misalnya karena korupsi), CLI melewati pemeriksaan keamanan dan tidak memblokir eksekusi perintah.