Tous les produits
Search
Centre de documentation

Alibaba Cloud CLI:Safety policy

Dernière mise à jour :Aug 11, 2026

Les politiques de sécurité offrent une protection côté client pour les opérations de l'Alibaba Cloud CLI. Lorsqu'elles sont activées, la CLI compare chaque commande aux règles configurées afin d'autoriser, de bloquer ou d'exiger une confirmation manuelle pour l'opération.

Vue d'ensemble

Les politiques de sécurité définissent un ensemble de règles. Chaque règle se compose d'un modèle (critères de correspondance) et d'une action (type de réponse) :

  • allow (autoriser) : Autorise explicitement l'opération et ignore l'évaluation des autres règles. Placez une règle allow avant les règles deny ou confirm plus générales pour créer des exceptions pour des opérations spécifiques.

  • deny (bloquer) : Bloque entièrement l'opération. La CLI rejette la commande et n'envoie pas la requête API.

  • confirm (exiger une approbation) : Dans un terminal interactif, la CLI vous invite à saisir yes avant de poursuivre. Dans un environnement non interactif, la CLI renvoie une erreur avec des instructions pour l'appelant.

Les politiques de sécurité s'appliquent aux appels OpenAPI (RPC et RESTful) ainsi qu'aux commandes de plug-ins. Elles complètent le contrôle d'accès côté serveur (RAM), mais ne remplacent pas les stratégies d'autorisation RAM.

Scénarios

  • Barrières de sécurité pour les agents IA : Lorsqu'un agent IA utilise la CLI pour gérer des ressources cloud, une politique de sécurité peut intercepter les opérations destructrices (telles que les suppressions) et exiger une confirmation humaine ou les bloquer entièrement, offrant ainsi un mécanisme « human-in-the-loop » (HITL).

  • Mesures de protection opérationnelles : Configurez des règles par défaut pour les environnements CLI d'équipe afin d'éviter l'exécution accidentelle d'opérations destructrices, telles que la suppression de ressources ou l'arrêt d'instances.

Prérequis

  • Alibaba Cloud CLI v3.3.14 ou version ultérieure est installée. Exécutez la commande suivante pour vérifier votre version actuelle :

    aliyun version
  • Les identifiants CLI sont configurés. Si vous n'avez pas encore configuré vos identifiants, exécutez la commande suivante :

    aliyun configure

Gérer les politiques de sécurité

Les politiques de sécurité sont gérées via la famille de commandes aliyun configure safety-policy.

Afficher la politique actuelle

Exécutez la commande suivante pour afficher la configuration de la politique de sécurité au format JSON :

aliyun configure safety-policy show

Exemple de sortie :

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

Activer et désactiver

# Enable safety policy
aliyun configure safety-policy enable

# Disable safety policy
aliyun configure safety-policy disable

Exécutez aliyun configure safety-policy show pour vérifier que le champ enabled est défini sur true.

Ajouter des règles

Syntaxe de la commande :

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

Exemple : Bloquer toutes les opérations de suppression sur tous les produits :

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

Exemple : Exiger une confirmation humaine pour les opérations de mise à jour ECS :

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

Exécutez aliyun configure safety-policy list pour vérifier que la règle a bien été ajoutée.

Remarque

Si vous ajoutez une règle avec un modèle qui existe déjà, la CLI met à jour l'action pour ce modèle au lieu de créer une entrée en double.

Remarque

La sous-commande add accepte uniquement les valeurs d'action deny, confirm et forbid. Pour configurer une règle allow, définissez la variable d'environnement ALIBABA_CLOUD_SAFETY_POLICY_RULES ou modifiez directement le fichier de configuration.

Supprimer des règles

Spécifiez le modèle exact pour supprimer une règle :

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

Lister les règles

Exécutez la commande suivante pour afficher toutes les règles dans une liste formatée :

aliyun configure safety-policy list

Exemple de sortie :

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

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

Syntaxe des règles

Format du modèle

Le paramètre --pattern utilise le format {product}:{operation} et prend en charge le caractère générique * pour correspondre à n'importe quelle séquence de caractères. La correspondance des modèles est insensible à la casse : *:Delete*, *:DELETE* et *:delete* correspondent tous aux mêmes opérations.

La CLI construit différents identifiants de commande selon le style d'API :

Style d'API

Format du modèle

Exemple

RPC

{product}:{ApiName}

ecs:DeleteInstance

RESTful

{product}:{HTTP_METHOD}/path

cs:DELETE/clusters

Plug-in

{product}:{subcommand}

fc:delete-function

Exemples courants de modèles :

Modèle

Correspondances

*:Delete*

Toutes les opérations contenant « Delete », tous produits confondus (insensible à la casse)

ecs:delete-instance

Uniquement l'opération delete-instance d'ECS

ecs:Update*

Toutes les opérations ECS commençant par « Update »

*:*

Toutes les opérations, tous produits confondus

Remarque

Lorsque vous exécutez des commandes dans un shell, entourez les valeurs de modèle de guillemets simples (par exemple, '*:Delete*') pour empêcher le shell d'étendre le caractère générique *.

Valeurs d'action

Action

Comportement

allow

Autorise explicitement l'opération. Dans un système de règles où la première correspondance l'emporte, placez une règle allow avant les règles deny ou confirm plus générales pour créer des exceptions pour des opérations spécifiques.

deny

Bloque l'opération et renvoie une erreur. La CLI n'envoie pas la requête API.

confirm

Demande une confirmation dans un terminal interactif. L'utilisateur doit saisir yes pour poursuivre.

forbid est un alias de confirm. Ils produisent un comportement d'exécution identique.

Si aucune règle ne correspond, l'opération est autorisée par défaut (autorisation implicite). Les règles allow explicites servent à créer des exceptions avant les règles deny ou confirm plus larges.

Ordre d'évaluation des règles

Les règles sont évaluées de haut en bas dans l'ordre configuré, selon une stratégie de première correspondance : la première règle correspondante s'applique et les règles suivantes ne sont pas vérifiées. Si aucune règle ne correspond, l'exécution est autorisée par défaut.

Par exemple, étant donné les deux règles suivantes :

  1. ecs:Delete* → confirm

  2. *:Delete* → deny

Lorsque vous exécutez aliyun ecs delete-instance, la première règle (ecs:Delete*) correspond et l'action confirm est appliquée, et non l'action deny de la deuxième règle.

Utilisation de allow pour créer des exceptions :

  1. ecs:Describe* → allow

  2. ecs:* → deny

L'exécution de aliyun ecs DescribeInstances correspond à la première règle allow et l'opération se déroule normalement. L'exécution de aliyun ecs DeleteInstance correspond à la deuxième règle et est bloquée.

Important

L'ordre des règles est important. Lors de l'ajout de règles, veillez à ce que les règles plus spécifiques apparaissent avant les règles plus générales.

Mode non interactif et scénarios d'agent IA

L'option --yes

Lorsque vous spécifiez l'option --yes (ou -y), les règles confirm sont automatiquement ignorées (considérées comme approuvées). Les règles deny ne sont pas affectées et bloquent toujours l'exécution.

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

Vous pouvez également définir la variable d'environnement ALIBABA_CLOUD_SAFETY_SKIP_CONFIRM sur true pour approuver automatiquement toutes les règles confirm pendant toute une session, ce qui équivaut à passer l'option --yes à chaque commande :

export ALIBABA_CLOUD_SAFETY_SKIP_CONFIRM=true
Avertissement

Ni --yes ni ALIBABA_CLOUD_SAFETY_SKIP_CONFIRM ne peuvent contourner les règles deny. Les opérations correspondant à une règle deny sont toujours bloquées, quels que soient les options ou les variables d'environnement.

Comportement en terminal non interactif

La CLI détecte si l'entrée standard est un périphérique terminal pour déterminer l'environnement actuel. Dans les environnements non interactifs (tels que les scripts, les pipelines CI/CD et les environnements d'exécution d'agents IA), si une opération correspond à une règle confirm et que l'option --yes n'est pas spécifiée, la CLI renvoie l'erreur suivante :

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.

Workflow recommandé pour les agents IA

Lorsqu'un agent IA gère des ressources cloud via la CLI, suivez ces étapes pour configurer et utiliser les politiques de sécurité :

  1. Configurer les politiques de sécurité : Définissez deny pour les opérations qui doivent être entièrement interdites, et confirm pour les opérations nécessitant une approbation.

  2. Gérer les invites de confirmation : Lorsque l'agent rencontre un blocage confirm, présentez les détails de l'opération à l'utilisateur et demandez son approbation.

  3. Réexécuter avec approbation : Une fois que l'utilisateur a confirmé, l'agent réexécute la commande avec l'option --yes.

Exemple de configuration : Bloquer les opérations de suppression et exiger une confirmation humaine pour les opérations de mise à jour :

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

Variables d'environnement

En plus de la configuration en ligne de commande, vous pouvez contrôler les politiques de sécurité via des variables d'environnement. Les variables d'environnement ont priorité sur le fichier de configuration.

Variable d'environnement

Description

Exemple

ALIBABA_CLOUD_SAFETY_POLICY_ENABLED

Remplace la valeur enabled dans le fichier de configuration. Accepte true, false, 1, 0.

export ALIBABA_CLOUD_SAFETY_POLICY_ENABLED=true

ALIBABA_CLOUD_SAFETY_POLICY_RULES

Remplace la liste de règles dans le fichier de configuration. Utilisez le format pattern=action, avec plusieurs règles séparées par des virgules. Lorsqu'elle est définie, cette variable remplace complètement les règles du fichier de configuration, sans fusionner. Définissez-la sur une chaîne vide pour effacer toutes les règles. Si le format est invalide, les règles basées sur le fichier sont conservées.

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

ALIBABA_CLOUD_SAFETY_SKIP_CONFIRM

Définissez sur 1 ou true pour ignorer les invites de confirmation, équivalent à --yes.

export ALIBABA_CLOUD_SAFETY_SKIP_CONFIRM=1

Important

Lorsque la variable d'environnement ALIBABA_CLOUD_SAFETY_POLICY_RULES est définie, les règles du fichier de configuration sont complètement remplacées, sans fusion.

Fichier de configuration

La configuration de la politique de sécurité est stockée dans ~/.aliyun/safety-policy.json. Si vous spécifiez l'option --config-path, le fichier safety-policy.json se trouve dans ce répertoire personnalisé.

Exemple de format de fichier :

{
  "enabled": true,
  "rules": [
    {
      "pattern": "ecs:Describe*",
      "action": "allow"
    },
    {
      "pattern": "*:Delete*",
      "action": "deny"
    },
    {
      "pattern": "ecs:Update*",
      "action": "confirm"
    }
  ]
}
  • Si le fichier de configuration n'existe pas, la politique de sécurité est désactivée par défaut et la liste de règles est vide. Le fichier est créé automatiquement lorsque vous exécutez pour la première fois la sous-commande enable ou add.

Remarque

La politique de sécurité utilise une conception « fail-open » : si le fichier de configuration ne peut pas être chargé (par exemple, en raison d'une corruption), la CLI ignore les vérifications de sécurité et ne bloque pas l'exécution des commandes.