Todos os produtos
Search
Central de documentação

Alibaba Cloud CLI:Safety policy

Última atualização: Jun 28, 2026

As políticas de segurança oferecem proteção no lado do cliente para operações do Alibaba Cloud CLI. Quando ativadas, o CLI compara cada comando com as regras configuradas para permitir, negar ou exigir confirmação manual da operação.

Visão geral

As políticas de segurança definem um conjunto de regras. Cada regra consiste em um padrão (critério de correspondência) e uma ação (tipo de resposta):

  • allow (permitir): Permite explicitamente a operação e ignora a avaliação de regras subsequentes. Posicione uma regra allow antes de regras mais abrangentes de deny ou confirm para criar exceções para operações específicas.

  • deny (bloquear): Bloqueia totalmente a operação. O CLI rejeita o comando e não envia a solicitação de API.

  • confirm (exigir aprovação): Em um terminal interativo, o CLI solicita que você digite yes antes de prosseguir. Em ambientes não interativos, o CLI retorna um erro com instruções para o chamador.

As políticas de segurança aplicam-se tanto a chamadas OpenAPI (RPC e RESTful) quanto a comandos de plugin. Elas complementam o controle de acesso no lado do servidor (RAM), mas não substituem as políticas de permissão do RAM.

Cenários

  • Barreiras de segurança para agentes de IA: Quando um agente de IA usa o CLI para gerenciar recursos de nuvem, uma política de segurança pode interceptar operações destrutivas (como exclusões) e exigir confirmação humana ou bloqueá-las completamente, fornecendo um mecanismo de humano no loop (HITL).

  • Salvaguardas operacionais: Configure regras padrão para ambientes de CLI da equipe a fim de evitar a execução acidental de operações destrutivas, como excluir recursos ou parar instâncias.

Pré-requisitos

  • Alibaba Cloud CLI v3.3.14 ou posterior instalado. Execute o comando a seguir para verificar sua versão atual:

    aliyun version
  • Credenciais do CLI configuradas. Caso ainda não tenha configurado as credenciais, execute o seguinte comando:

    aliyun configure

Gerenciar políticas de segurança

Gerencie as políticas de segurança por meio da família de comandos aliyun configure safety-policy.

Visualizar a política atual

Execute o comando abaixo para visualizar a configuração da política de segurança no formato JSON:

aliyun configure safety-policy show

Exemplo de saída:

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

Ativar e desativar

# Enable safety policy
aliyun configure safety-policy enable

# Disable safety policy
aliyun configure safety-policy disable

Execute aliyun configure safety-policy show para verificar se o campo enabled está definido como true.

Adicionar regras

Sintaxe do comando:

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

Exemplo: Bloquear todas as operações de exclusão em todos os produtos:

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

Exemplo: Exigir confirmação humana para operações de atualização do ECS:

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

Execute aliyun configure safety-policy list para confirmar que a regra foi adicionada.

Nota

Se você adicionar uma regra com um padrão já existente, o CLI atualiza a ação desse padrão em vez de criar uma entrada duplicada.

Nota

O subcomando add aceita apenas deny, confirm e forbid como valores de ação. Para configurar uma regra allow, defina a variável de ambiente ALIBABA_CLOUD_SAFETY_POLICY_RULES ou edite diretamente o arquivo de configuração.

Remover regras

Especifique o padrão exato para remover uma regra:

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

Listar regras

Use o comando a seguir para visualizar todas as regras em uma lista formatada:

aliyun configure safety-policy list

Exemplo de saída:

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

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

Sintaxe das regras

Formato do padrão

O parâmetro --pattern utiliza o formato {product}:{operation} e suporta o caractere curinga * para corresponder a qualquer sequência de caracteres. A correspondência de padrões não diferencia maiúsculas de minúsculas: *:Delete*, *:DELETE* e *:delete* correspondem às mesmas operações.

O CLI constrói identificadores de comando diferentes dependendo do estilo da API:

Estilo de API

Formato do padrão

Exemplo

RPC

{product}:{ApiName}

ecs:DeleteInstance

RESTful

{product}:{HTTP_METHOD}/path

cs:DELETE/clusters

Plugin

{product}:{subcommand}

fc:delete-function

Exemplos comuns de padrões:

Padrão

Correspondências

*:Delete*

Todas as operações contendo "Delete" em todos os produtos (sem distinção entre maiúsculas e minúsculas)

ecs:delete-instance

Apenas a operação delete-instance do ECS

ecs:Update*

Todas as operações do ECS que começam com "Update"

*:*

Todas as operações em todos os produtos

Nota

Ao executar comandos em um shell, coloque os valores de padrão entre aspas simples (por exemplo, '*:Delete*') para impedir que o shell expanda o caractere curinga *.

Valores de ação

Ação

Comportamento

allow

Permite explicitamente a operação. Em um sistema de regras onde a primeira correspondência prevalece, posicione uma regra allow antes de regras mais abrangentes de deny ou confirm para criar exceções para operações específicas.

deny

Bloqueia a operação e retorna um erro. O CLI não envia a solicitação de API.

confirm

Solicita confirmação em um terminal interativo. O usuário deve digitar yes para prosseguir.

forbid é um alias para confirm. Ambos produzem comportamento idêntico em tempo de execução.

Se nenhuma regra corresponder, a operação será permitida por padrão (permissão implícita). Regras explícitas de allow servem para criar exceções antes de regras mais amplas de deny ou confirm.

Ordem de avaliação das regras

As regras são avaliadas de cima para baixo na ordem configurada, usando uma estratégia de primeira correspondência: a primeira regra correspondente entra em vigor e as regras subsequentes não são verificadas. Se nenhuma regra corresponder, o padrão é permitir a execução.

Por exemplo, dadas as duas regras a seguir:

  1. ecs:Delete* → confirm

  2. *:Delete* → deny

Ao executar aliyun ecs delete-instance, a primeira regra (ecs:Delete*) corresponde, e a ação confirm é aplicada — não o deny da segunda regra.

Uso de allow para criar exceções:

  1. ecs:Describe* → allow

  2. ecs:* → deny

A execução de aliyun ecs DescribeInstances corresponde à primeira regra allow e a operação prossegue normalmente. Já a execução de aliyun ecs DeleteInstance corresponde à segunda regra e é bloqueada.

Importante

A ordem das regras é importante. Ao adicionar regras, garanta que as mais específicas apareçam antes das mais gerais.

Modo não interativo e cenários com agentes de IA

A flag --yes

Quando você especifica a flag --yes (ou -y), as regras de confirm são automaticamente ignoradas (tratadas como aprovadas). As regras de deny não são afetadas e continuam bloqueando a execução.

# 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*)

Também é possível definir a variável de ambiente ALIBABA_CLOUD_SAFETY_SKIP_CONFIRM como true para aprovar automaticamente todas as regras de confirm durante uma sessão inteira, o que equivale a passar --yes em cada comando:

export ALIBABA_CLOUD_SAFETY_SKIP_CONFIRM=true
Aviso

Nem --yes nem ALIBABA_CLOUD_SAFETY_SKIP_CONFIRM conseguem contornar regras de deny. Operações que correspondem a uma regra de deny são sempre bloqueadas, independentemente de flags ou variáveis de ambiente.

Comportamento em terminais não interativos

O CLI detecta se a entrada padrão é um dispositivo de terminal para determinar o ambiente atual. Em ambientes não interativos (como scripts, pipelines de CI/CD e runtimes de agentes de IA), se uma operação corresponder a uma regra de confirm e a flag --yes não for especificada, o CLI retorna o seguinte erro:

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.

Fluxo de trabalho recomendado para agentes de IA

Quando um agente de IA gerencia recursos de nuvem por meio do CLI, siga estas etapas para configurar e usar políticas de segurança:

  1. Configure as políticas de segurança: Defina deny para operações que devem ser totalmente proibidas e confirm para operações que exigem aprovação.

  2. Gerencie solicitações de confirmação: Quando o agente encontrar um bloco de confirm, apresente os detalhes da operação ao usuário e solicite aprovação.

  3. Reexecute com aprovação: Após a confirmação do usuário, o agente executa novamente o comando com a flag --yes.

Exemplo de configuração: Bloquear operações de exclusão e exigir confirmação humana para operações de atualização:

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

Variáveis de ambiente

Além da configuração por linha de comando, você pode controlar as políticas de segurança por meio de variáveis de ambiente. Essas variáveis têm precedência sobre o arquivo de configuração.

Variável de ambiente

Descrição

Exemplo

ALIBABA_CLOUD_SAFETY_POLICY_ENABLED

Substitui o valor enabled no arquivo de configuração. Aceita true, false, 1, 0.

export ALIBABA_CLOUD_SAFETY_POLICY_ENABLED=true

ALIBABA_CLOUD_SAFETY_POLICY_RULES

Substitui a lista de regras no arquivo de configuração. Use o formato pattern=action, com múltiplas regras separadas por vírgulas. Quando definida, as regras do arquivo de configuração são completamente substituídas, não mescladas. Defina como uma string vazia para limpar todas as regras. Se o formato for inválido, as regras baseadas em arquivo serão mantidas.

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

ALIBABA_CLOUD_SAFETY_SKIP_CONFIRM

Defina como 1 ou true para ignorar solicitações de confirmação, equivalente a --yes.

export ALIBABA_CLOUD_SAFETY_SKIP_CONFIRM=1

Importante

Quando a variável de ambiente ALIBABA_CLOUD_SAFETY_POLICY_RULES está definida, as regras no arquivo de configuração são completamente substituídas, não mescladas.

Arquivo de configuração

A configuração da política de segurança é armazenada em ~/.aliyun/safety-policy.json. Se você especificar a opção --config-path, o arquivo safety-policy.json estará localizado nesse diretório personalizado.

Exemplo de formato de arquivo:

{
  "enabled": true,
  "rules": [
    {
      "pattern": "ecs:Describe*",
      "action": "allow"
    },
    {
      "pattern": "*:Delete*",
      "action": "deny"
    },
    {
      "pattern": "ecs:Update*",
      "action": "confirm"
    }
  ]
}
  • Se o arquivo de configuração não existir, a política de segurança estará desativada por padrão e a lista de regras ficará vazia. O arquivo é criado automaticamente quando você executa pela primeira vez o subcomando enable ou add.

Nota

A política de segurança usa um design de falha aberta: se o arquivo de configuração não puder ser carregado (por exemplo, devido a corrupção), o CLI ignora as verificações de segurança e não bloqueia a execução do comando.