Tous les produits
Search
Centre de documentation

Alibaba Cloud Service Mesh:Configure authorization policies for HTTP requests

Dernière mise à jour :Aug 11, 2026

Les maillages de services routent le trafic HTTP entre les microservices, mais sans politiques d'autorisation, n'importe quel service peut appeler n'importe quel autre. Les politiques d'autorisation vous permettent de contrôler quels services peuvent envoyer des requêtes HTTP à d'autres, en fonction de l'identité (compte de service) et de l'opération (méthode HTTP, chemin). Commencez par une politique de refus par défaut, puis accordez progressivement l'accès pour construire un modèle de sécurité zero-trust.

Cette rubrique explique comment créer des politiques d'autorisation étape par étape en utilisant l'exemple d'application Bookinfo. Vous allez créer quatre politiques qui ouvrent progressivement l'accès à chaque service dans la chaîne de requêtes.

Fonctionnement des politiques d'autorisation

Une politique d'autorisation se compose de trois parties :

Partie Objectif Exemple
Sélecteur Cible des charges de travail spécifiques par libellé app: productpage
Action Spécifie s'il faut autoriser ou refuser les requêtes correspondantes ALLOW
Règles Définit les critères de correspondance pour la source de la requête (from) et l'opération (to) Principal de la source, méthode HTTP

Comportements clés :

  • Une spécification vide (spec: {}) sans sélecteur s'applique à toutes les charges de travail du namespace et refuse toutes les requêtes. Cela sert de base de refus par défaut.

  • L'omission de from dans une règle signifie que les requêtes de toutes les sources correspondent, tant que les conditions to sont remplies. Cela a des implications en matière de sécurité : la politique permet effectivement à tous les utilisateurs et charges de travail d'atteindre l'opération cible.

Prérequis

Avant de commencer, assurez-vous d'avoir :

Étape 1 : Créer une politique de base de refus par défaut

Créez une politique d'autorisation vide qui refuse toutes les requêtes vers les charges de travail du namespace default. Cela établit la base zero-trust.

  1. Connectez-vous à la console ASM. Dans le volet de navigation de gauche, sélectionnez Service Mesh > Mesh Management.

  2. Sur la page Mesh Management, cliquez sur le nom de l'instance ASM. Dans le volet de navigation de gauche, sélectionnez Mesh Security Center > AuthorizationPolicy. Cliquez sur Create from YAML.

  3. Sélectionnez default dans la liste déroulante Namespace, choisissez un modèle, collez le code YAML suivant dans l'éditeur de code, puis cliquez sur Create. La politique allow-nothing apparaît sur la page AuthorizationPolicy.

       apiVersion: security.istio.io/v1beta1
       kind: AuthorizationPolicy
       metadata:
         name: allow-nothing
         namespace: default
       spec:
         {}
  4. Vérifiez la politique. Ouvrez http://<ASM-gateway-IP>/productpage dans votre navigateur. La page renvoie RBAC: access denied, confirmant que toutes les requêtes sont désormais bloquées.

    Remarque

    Pour obtenir des instructions sur la manière d'obtenir l'adresse IP de la passerelle ASM, consultez Utiliser les ressources Istio pour router le trafic vers différentes versions d'un service.

Étape 2 : Autoriser l'accès au service productpage

Créez une politique qui autorise les requêtes HTTP GET vers la charge de travail productpage. Cette politique omet le champ from, elle permet donc les requêtes GET depuis n'importe quelle source, y compris la passerelle ASM qui gère le trafic externe.

  1. Connectez-vous à la console ASM. Dans le volet de navigation de gauche, sélectionnez Service Mesh > Mesh Management.

  2. Sur la page Mesh Management, cliquez sur le nom de l'instance ASM. Dans le volet de navigation de gauche, sélectionnez Mesh Security Center > AuthorizationPolicy.

  3. Créez la politique en utilisant l'une des méthodes suivantes.

Méthode 1 : YAML

  1. Sur la page AuthorizationPolicy, cliquez sur Create from YAML.

  2. Sélectionnez default dans la liste déroulante Namespace, choisissez un modèle, collez le code YAML suivant dans l'éditeur de code, puis cliquez sur Create.

       apiVersion: security.istio.io/v1beta1
       kind: AuthorizationPolicy
       metadata:
         name: "productpage-viewer"
         namespace: default
       spec:
         selector:
           matchLabels:
             app: productpage
         action: ALLOW
         rules:
         - to:
           - operation:
               methods: ["GET"]

Méthode 2 : Interface de la console

  1. Sur la page AuthorizationPolicy, cliquez sur Create.

  2. Configurez les paramètres suivants et cliquez sur Create.

    Paramètre Valeur
    Name productpage-viewer
    Policy Type ALLOW
    Namespace (dans l'onglet Workload Scope) default
    Effective Scope Service
    Workload productpage
    Request Matching Rules Activez Methods dans Add Request Target et définissez la valeur sur GET

La politique productpage-viewer apparaît sur la page AuthorizationPolicy.

  1. Vérifiez la politique. Ouvrez http://<ASM-gateway-IP>/productpage dans votre navigateur. La page productpage se charge, mais les sections details et reviews affichent des erreurs. Ceci est normal : vous n'avez autorisé l'accès qu'au service productpage lui-même. Les services en aval (details et reviews) sont toujours bloqués par la politique de refus par défaut.

    Productpage accessible but details and reviews blocked

Étape 3 : Autoriser l'accès au service details

Autorisez le service productpage à appeler le service details en restreignant l'accès aux requêtes provenant du compte de service bookinfo-productpage.

Trouver le compte de service productpage

  1. Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.

  2. Cliquez sur le nom du cluster. Dans le volet de navigation de gauche, sélectionnez Workloads > Deployments.

  3. Trouvez le déploiement productpage-v1. Sélectionnez More > View in YAML dans la colonne Actions. Localisez le champ serviceAccount. La valeur est bookinfo-productpage.

    serviceAccount value: bookinfo-productpage

Créer la politique d'autorisation

  1. Connectez-vous à la console ASM. Dans le volet de navigation de gauche, sélectionnez Service Mesh > Mesh Management.

  2. Sur la page Mesh Management, cliquez sur le nom de l'instance ASM. Dans le volet de navigation de gauche, sélectionnez Mesh Security Center > AuthorizationPolicy.

  3. Créez la politique en utilisant l'une des méthodes suivantes.

Méthode 1 : YAML

  1. Sur la page AuthorizationPolicy, cliquez sur Create from YAML.

  2. Sélectionnez default dans la liste déroulante Namespace, choisissez un modèle, collez le code YAML suivant dans l'éditeur de code, puis cliquez sur Create.

       kind: AuthorizationPolicy
       apiVersion: security.istio.io/v1beta1
       metadata:
         name: details-viewer
         namespace: default
       spec:
         action: ALLOW
         rules:
           - to:
               - operation:
                   methods:
                     - GET
           - from:
               - source:
                   principals:
                     - cluster.local/ns/default/sa/bookinfo-productpage # Service account from the previous step
         selector:
           matchLabels:
             app: details

Méthode 2 : Interface de la console

  1. Sur la page AuthorizationPolicy, cliquez sur Create.

  2. Configurez les paramètres suivants et cliquez sur Create.

    Remarque

    bookinfo-productpage est la valeur serviceAccount obtenue à l'étape précédente.

    Paramètre Valeur
    Name details-viewer
    Policy Type ALLOW
    Namespace (dans l'onglet Workload Scope) default
    Effective Scope Service
    Workload details
    Request Matching Rules Dans Add Request Source, activez Principals et définissez la valeur sur cluster.local/ns/default/sa/bookinfo-productpage. Dans Add Request Target, activez Methods et définissez la valeur sur GET.

La politique details-viewer apparaît sur la page AuthorizationPolicy.

  1. Vérifiez la politique. Ouvrez http://<ASM-gateway-IP>/productpage dans votre navigateur. La section details à gauche se charge maintenant correctement. La section reviews à droite affiche toujours une erreur car aucune politique n'a encore été créée pour le service reviews.

    Details accessible, reviews still blocked

Étape 4 : Autoriser l'accès au service reviews

Créez une politique d'autorisation pour le service reviews en utilisant le même compte de service bookinfo-productpage comme source autorisée.

  1. Connectez-vous à la console ASM. Dans le volet de navigation de gauche, sélectionnez Service Mesh > Mesh Management.

  2. Sur la page Mesh Management, cliquez sur le nom de l'instance ASM. Dans le volet de navigation de gauche, sélectionnez Mesh Security Center > AuthorizationPolicy.

  3. Créez la politique en utilisant l'une des méthodes suivantes.

Méthode 1 : YAML

  1. Sur la page AuthorizationPolicy, cliquez sur Create from YAML.

  2. Sélectionnez default dans la liste déroulante Namespace, choisissez un modèle, collez le code YAML suivant dans l'éditeur de code, puis cliquez sur Create.

       kind: AuthorizationPolicy
       apiVersion: security.istio.io/v1beta1
       metadata:
         name: reviews-viewer
         namespace: default
       spec:
         action: ALLOW
         rules:
           - to:
               - operation:
                   methods:
                     - GET
           - from:
               - source:
                   principals:
                     - cluster.local/ns/default/sa/bookinfo-productpage
         selector:
           matchLabels:
             app: reviews

Méthode 2 : Interface de la console

  1. Sur la page AuthorizationPolicy, cliquez sur Create.

  2. Configurez les paramètres suivants et cliquez sur Create.

    Remarque

    bookinfo-productpage est la valeur serviceAccount obtenue à l'étape 3.

    Paramètre Valeur
    Name reviews-viewer
    Policy Type ALLOW
    Namespace (dans l'onglet Workload Scope) default
    Effective Scope Service
    Workload reviews
    Request Matching Rules Dans Add Request Source, activez Principals et définissez la valeur sur cluster.local/ns/default/sa/bookinfo-productpage. Dans Add Request Target, activez Methods et définissez la valeur sur GET.

La politique reviews-viewer apparaît sur la page AuthorizationPolicy.

  1. Vérifiez la politique. Ouvrez http://<ASM-gateway-IP>/productpage dans votre navigateur. Les sections details (à gauche) et reviews (à droite) se chargent maintenant correctement. Tous les services de la chaîne de requêtes Bookinfo sont autorisés.

    All Bookinfo services accessible

Nettoyage

Pour supprimer les politiques d'autorisation créées dans cette rubrique, supprimez-les depuis la page AuthorizationPolicy de la console ASM. Sélectionnez chaque politique et supprimez-la :

  • allow-nothing

  • productpage-viewer

  • details-viewer

  • reviews-viewer

Avertissement

Le maintien de la politique de refus par défaut allow-nothing bloque tout le trafic vers les services du namespace default. Supprimez-la toujours lorsque vous n'en avez plus besoin.

Rubriques connexes