Tüm Ürünler
Search
Belge Merkezi

Alibaba Cloud CLI:Safety policy

Son Güncelleme:Oct 06, 2026

Güvenlik ilkeleri, Alibaba Cloud CLI işlemleri için istemci tarafı koruma sağlar. Etkinleştirildiğinde CLI, her komutu yapılandırılmış kurallarla karşılaştırarak işleme izin verir, reddeder veya manuel onay gerektirir.

Genel bakış

Güvenlik ilkeleri bir dizi kural tanımlar. Her kural bir kalıptan (eşleşme ölçütleri) ve bir eylemden (yanıt türü) oluşur:

  • allow (izin ver): İşlemi açıkça izin verir ve sonraki kural değerlendirmelerini atlar. Belirli işlemler için istisnalar oluşturmak amacıyla daha genel deny veya confirm kurallarından önce bir allow kuralı yerleştirin.

  • deny (engelle): İşlemi tamamen engeller. CLI komutu reddeder ve API isteğini göndermez.

  • confirm (onay gerektir): Etkileşimli bir terminalde CLI, devam etmeden önce yes yazmanızı ister. Etkileşimli olmayan bir ortamda CLI, çağrı yapan kişiye talimatlar içeren bir hata döndürür.

Güvenlik ilkeleri hem OpenAPI çağrılarına (RPC ve RESTful) hem de eklenti komutlarına uygulanır. Sunucu tarafı erişim kontrolünü (RAM) tamamlar ancak RAM izin ilkelerinin yerine geçmez.

Senaryolar

  • YZ aracı güvenlik sınırlamaları: Bir YZ aracı cloud kaynaklarını yönetmek için CLI'yı kullandığında, güvenlik ilkesi yıkıcı işlemleri (silme işlemleri gibi) engelleyebilir ve insan onayı gerektirebilir ya da tamamen engelleyerek insan döngüsünde (HITL) bir mekanizma sağlar.

  • Operasyonel korumalar: Kaynakları silme veya örnekleri durdurma gibi yıkıcı işlemlerin yanlışlıkla çalıştırılmasını önlemek için ekip CLI ortamları için varsayılan kurallar yapılandırın.

Ön koşullar

  • Alibaba Cloud CLI v3.3.14 veya üzeri yüklüdür. Mevcut sürümünüzü kontrol etmek için aşağıdaki komutu çalıştırın:

    aliyun version
  • CLI kimlik bilgileri yapılandırılmıştır. Kimlik bilgilerini henüz yapılandırmadıysanız aşağıdaki komutu çalıştırın:

    aliyun configure

Güvenlik ilkelerini yönetin

Güvenlik ilkeleri aliyun configure safety-policy komut ailesi aracılığıyla yönetilir.

Mevcut ilkeyi görüntüleyin

Güvenlik ilkesi yapılandırmasını JSON biçiminde görüntülemek için aşağıdaki komutu çalıştırın:

aliyun configure safety-policy show

Örnek çıktı:

{
  "enabled": false,
  "rules": []
}

Etkinleştirin ve devre dışı bırakın

# Enable safety policy
aliyun configure safety-policy enable

# Disable safety policy
aliyun configure safety-policy disable

enabled alanının true olduğunu doğrulamak için aliyun configure safety-policy show komutunu çalıştırın.

Kuralları ekleyin

Komut sözdizimi:

aliyun configure safety-policy add --pattern <pattern> --action <deny|confirm>

Örnek: Tüm ürünlerdeki tüm silme işlemlerini engelleyin:

aliyun configure safety-policy add --pattern '*:Delete*' --action deny

Örnek: ECS güncelleme işlemleri için insan onayı gerektirin:

aliyun configure safety-policy add --pattern 'ecs:Update*' --action confirm

Kuralın eklendiğini doğrulamak için aliyun configure safety-policy list komutunu çalıştırın.

Not

Zaten var olan bir kalıpla bir kural eklerseniz CLI, yinelenen bir giriş oluşturmak yerine o kalıp için eylemi günceller.

Not

add alt komutu, eylem değerleri olarak yalnızca deny, confirm ve forbid kabul eder. Bir allow kuralı yapılandırmak için ALIBABA_CLOUD_SAFETY_POLICY_RULES ortam değişkenini ayarlayın veya yapılandırma dosyasını doğrudan düzenleyin.

Kuralları kaldırın

Bir kuralı kaldırmak için tam kalıbı belirtin:

aliyun configure safety-policy remove --pattern '*:Delete*'

Kuralları listeleyin

Tüm kuralları biçimlendirilmiş bir listede görüntülemek için aşağıdaki komutu çalıştırın:

aliyun configure safety-policy list

Örnek çıktı:

Safety policy: enabled
Config file: /home/user/.aliyun/safety-policy.json

Rules:
  1. *:Delete* -> deny
  2. ecs:Update* -> confirm

Kural sözdizimi

Kalıp biçimi

--pattern parametresi {product}:{operation} biçimini kullanır ve herhangi bir karakter dizisini eşleştirmek için * joker karakterini destekler. Kalıp eşleştirme büyük/küçük harfe duyarlı değildir: *:Delete*, *:DELETE* ve *:delete* aynı işlemlerin tümünü eşleştirir.

CLI, API stiline bağlı olarak farklı komut tanımlayıcıları oluşturur:


API stili


Kalıp biçimi


Örnek


RPC


{product}:{ApiName}


ecs:DeleteInstance


RESTful


{product}:{HTTP_METHOD}/path


cs:DELETE/clusters


Eklenti


{product}:{subcommand}


fc:delete-function

Yaygın kalıp örnekleri:


Kalıp


Eşleşmeler


*:Delete*


Tüm ürünlerde "Delete" içeren tüm işlemler (büyük/küçük harfe duyarlı değil)


ecs:delete-instance


Yalnızca ECS delete-instance işlemi


ecs:Update*


"Update" ile başlayan tüm ECS işlemleri


*:*


Tüm ürünlerdeki tüm işlemler

Not

Kabukta komutları çalıştırırken, kabuğun * joker karakterini genişletmesini önlemek için kalıp değerlerini tek tırnak içine alın (örneğin, '*:Delete*').

Eylem değerleri


Eylem


Davranış


allow


İşlemi açıkça izin verir. İlk eşleşmenin kazandığı bir kural sisteminde, belirli işlemler için istisnalar oluşturmak amacıyla daha genel deny veya confirm kurallarından önce bir allow kuralı yerleştirin.


deny


İşlemi engeller ve bir hata döndürür. CLI API isteğini göndermez.


confirm


Etkileşimli bir terminalde onay ister. Kullanıcının devam etmek için yes yazması gerekir.

forbid, confirm için bir takma addır. Aynı çalışma zamanı davranışını üretirler.

Hiçbir kural eşleşmezse, işlem varsayılan olarak izin verilir (örtük izin). Açık allow kuralları, daha genel deny veya confirm kurallarından önce istisnalar oluşturmak için kullanılır.

Kural değerlendirme sırası

Kurallar, yapılandırılan sırada yukarıdan aşağıya doğru, ilk eşleşmenin kazandığı stratejiyle değerlendirilir: ilk eşleşen kural geçerli olur ve sonraki kurallar kontrol edilmez. Hiçbir kural eşleşmezse, varsayılan olarak yürütmeye izin verilir.

Örneğin, aşağıdaki iki kural verildiğinde:

  1. ecs:Delete* → confirm

  2. *:Delete* → deny

aliyun ecs delete-instance komutunu çalıştırdığınızda, ilk kural (ecs:Delete*) eşleşir ve ikinci kuralın deny eylemi yerine confirm eylemi uygulanır.

İstisnalar oluşturmak için allow kullanımı:

  1. ecs:Describe* → allow

  2. ecs:* → deny

aliyun ecs DescribeInstances çalıştırıldığında ilk allow kuralıyla eşleşir ve işlem normal şekilde devam eder. aliyun ecs DeleteInstance çalıştırıldığında ise ikinci kural eşleşir ve işlem engellenir.

Önemli

Kural sırası önemlidir. Kuralları eklerken, daha spesifik kuralların daha genel kurallardan önce geldiğinden emin olun.

Etkileşimli olmayan mod ve YZ aracı senaryoları

--yes bayrağı

--yes (veya -y) bayrağını belirttiğinizde, confirm kuralları otomatik olarak atlanır (onaylanmış olarak kabul edilir). deny kuralları etkilenmez ve yürütmeyi engellemeye devam eder.

# confirm rules are skipped, operation executes directly
aliyun ecs update-instance --InstanceId i-bp1xxxxx --yes

# deny rules are not affected, operation is still blocked
aliyun ecs delete-instance --InstanceId i-bp1xxxxx --yes
# Output: ERROR: operation blocked by safety policy: ecs delete-instance (rule: *:Delete*)

Bir oturum boyunca tüm confirm kurallarını otomatik olarak onaylamak, yani her komutta --yes geçmekle eşdeğer olmak için ALIBABA_CLOUD_SAFETY_SKIP_CONFIRM ortam değişkenini true olarak ayarlayabilirsiniz:

export ALIBABA_CLOUD_SAFETY_SKIP_CONFIRM=true
Uyarı

Ne --yes ne de ALIBABA_CLOUD_SAFETY_SKIP_CONFIRM, deny kurallarını atlayabilir. Bir deny kuralıyla eşleşen işlemler, bayraklardan veya ortam değişkenlerinden bağımsız olarak her zaman engellenir.

Etkileşimli olmayan terminal davranışı

CLI, geçerli ortamı belirlemek için standart girdinin bir terminal cihazı olup olmadığını algılar. Betikler, CI/CD işlem hatları ve YZ aracı çalışma zamanları gibi etkileşimli olmayan ortamlarda, bir işlem bir confirm kuralıyla eşleşir ve --yes bayrağı belirtilmezse CLI aşağıdaki hatayı döndürür:

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.

Önerilen YZ aracı iş akışı

Bir YZ aracı CLI aracılığıyla cloud kaynaklarını yönetirken, güvenlik ilkelerini yapılandırmak ve kullanmak için şu adımları izleyin:

  1. Güvenlik ilkelerini yapılandırın: Tamamen yasaklanması gereken işlemler için deny ve onay gerektiren işlemler için confirm ayarlayın.

  2. Onay istemlerini işleyin: Aracı bir confirm engeliyle karşılaştığında, işlem ayrıntılarını kullanıcıya sunar ve onay ister.

  3. Onayla yeniden yürütün: Kullanıcı onayladıktan sonra, aracı komutu --yes bayrağıyla yeniden çalıştırır.

Örnek yapılandırma: Silme işlemlerini engelleyin ve güncelleme işlemleri için insan onayı gerektirin:

aliyun configure safety-policy enable
aliyun configure safety-policy add --pattern '*:Delete*' --action deny
aliyun configure safety-policy add --pattern '*:Update*' --action confirm

Ortam değişkenleri

Komut satırı yapılandırmasına ek olarak, güvenlik ilkelerini ortam değişkenleri aracılığıyla kontrol edebilirsiniz. Ortam değişkenleri, yapılandırma dosyasına göre önceliklidir.


Ortam değişkeni


Açıklama


Örnek


ALIBABA_CLOUD_SAFETY_POLICY_ENABLED


Yapılandırma dosyasındaki enabled değerini geçersiz kılar. true, false, 1, 0 kabul eder.


export ALIBABA_CLOUD_SAFETY_POLICY_ENABLED=true


ALIBABA_CLOUD_SAFETY_POLICY_RULES


Yapılandırma dosyasındaki kural listesini geçersiz kılar. pattern=action biçimini kullanın, birden fazla kuralı virgülle ayırın. Ayarlandığında, yapılandırma dosyası kuralları birleştirilmez, tamamen değiştirilir. Tüm kuralları temizlemek için boş bir dize olarak ayarlayın. Biçim geçersizse, dosya tabanlı kurallar korunur.


export ALIBABA_CLOUD_SAFETY_POLICY_RULES="ecs:Describe*=allow,*:Delete*=deny,ecs:Update*=confirm"


ALIBABA_CLOUD_SAFETY_SKIP_CONFIRM


Onay istemlerini atlamak için 1 veya true olarak ayarlayın, --yes ile eşdeğerdir.


export ALIBABA_CLOUD_SAFETY_SKIP_CONFIRM=1

Önemli

ALIBABA_CLOUD_SAFETY_POLICY_RULES ortam değişkeni ayarlandığında, yapılandırma dosyasındaki kurallar birleştirilmez, tamamen değiştirilir.

Yapılandırma dosyası

Güvenlik ilkesi yapılandırması ~/.aliyun/safety-policy.json içinde saklanır. --config-path seçeneğini belirtirseniz safety-policy.json dosyası bu özel dizinde bulunur.

Dosya biçimi örneği:

{
  "enabled": true,
  "rules": [
    {
      "pattern": "ecs:Describe*",
      "action": "allow"
    },
    {
      "pattern": "*:Delete*",
      "action": "deny"
    },
    {
      "pattern": "ecs:Update*",
      "action": "confirm"
    }
  ]
}
  • Yapılandırma dosyası yoksa, güvenlik ilkesi varsayılan olarak devre dışıdır ve kural listesi boştur. Dosya, ilk kez enable veya add alt komutunu çalıştırdığınızda otomatik olarak oluşturulur.

Not

Güvenlik ilkesi fail-open (hata durumunda açık kal) tasarımı kullanır: yapılandırma dosyası yüklenemezse (örneğin bozulma nedeniyle), CLI güvenlik kontrollerini atlar ve komut yürütmeyi engellemez.