Todos os produtos
Search
Central de documentação

Alibaba Cloud Service Mesh:Configure authorization policies for HTTP requests

Última atualização: Jun 28, 2026

As malhas de serviço roteiam tráfego HTTP entre microsserviços. No entanto, sem políticas de autorização, qualquer serviço pode chamar outro livremente. As políticas de autorização permitem controlar quais serviços enviam requisições HTTP a outros serviços com base na identidade (service account) e na operação (método HTTP, caminho). Comece com uma linha de base de negação total e conceda acesso incrementalmente para estabelecer um modelo de segurança de confiança zero.

Este tópico demonstra como criar políticas de autorização passo a passo usando o aplicativo de exemplo Bookinfo. Você criará quatro políticas que abrem progressivamente o acesso a cada serviço na cadeia de requisições.

Como funcionam as políticas de autorização

Uma política de autorização consiste em três partes:

Parte

Finalidade

Exemplo

Selector

Direciona workloads específicos por rótulo

app: productpage

Action

Especifica se deve permitir ou negar requisições correspondentes

ALLOW

Rules

Define critérios de correspondência para a origem da requisição (from) e operação (to)

Principal de origem, método HTTP

Comportamentos principais:

  • Uma especificação vazia (spec: {}) sem seletor aplica-se a todos os workloads no namespace e nega todas as requisições. Isso serve como linha de base de negação total.

  • Omitir from em uma regra faz com que requisições de todas as origens correspondam, desde que as condições to sejam atendidas. Isso gera implicações de segurança: a política permite efetivamente que todos os usuários e workloads alcancem a operação de destino.

Pré-requisitos

Antes de começar, verifique se você tem:

Etapa 1: Criar uma política de linha de base de negação total

Crie uma política de autorização em branco que negue todas as requisições para workloads no namespace default. Isso estabelece a linha de base de confiança zero.

  1. Faça logon no console ASM. No painel de navegação à esquerda, escolha Service Mesh > Mesh Management.

  2. Na página Mesh Management, clique em no nome da instância ASM. No painel de navegação à esquerda, escolha Mesh Security Center > AuthorizationPolicy. Clique em Create from YAML.

  3. Selecione default na lista suspensa Namespace, escolha um modelo, cole o YAML a seguir no editor de código e clique em Create. A política allow-nothing aparece na página AuthorizationPolicy.

       apiVersion: security.istio.io/v1beta1
       kind: AuthorizationPolicy
       metadata:
         name: allow-nothing
         namespace: default
       spec:
         {}
  4. Verifique a política. Abra http://<ASM-gateway-IP>/productpage no navegador. A página retorna RBAC: access denied, o que confirma o bloqueio de todas as requisições.

    Nota

    Para obter instruções sobre como obter o endereço IP do gateway ASM, consulte Usar recursos Istio para rotear tráfego para diferentes versões de um serviço.

Etapa 2: Permitir acesso ao serviço productpage

Crie uma política que permita requisições HTTP GET para o workload productpage. Essa política omite o campo from, portanto, permite requisições GET de qualquer origem, incluindo o gateway ASM que atende tráfego externo.

  1. Faça logon no console ASM. No painel de navegação à esquerda, escolha Service Mesh > Mesh Management.

  2. Na página Mesh Management, clique em no nome da instância ASM. No painel de navegação à esquerda, escolha Mesh Security Center > AuthorizationPolicy.

  3. Crie a política usando um dos métodos a seguir.

Método 1: YAML

  1. Na página AuthorizationPolicy, clique em Create from YAML.

  2. Selecione default na lista suspensa Namespace, escolha um modelo, cole o YAML a seguir no editor de código e clique em 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étodo 2: Interface do console

  1. Na página AuthorizationPolicy, clique em Create.

  2. Configure os parâmetros a seguir e clique em Create.

    Parâmetro

    Valor

    Name

    productpage-viewer

    Policy Type

    ALLOW

    Namespace (na aba Workload Scope)

    default

    Effective Scope

    Service

    Workload

    productpage

    Request Matching Rules

    Ative Methods em Add Request Target e defina o valor como GET

A política productpage-viewer aparece na página AuthorizationPolicy.

  1. Verifique a política. Abra http://<ASM-gateway-IP>/productpage no navegador. A página productpage carrega, mas as seções de detalhes e avaliações apresentam erros. Esse comportamento é esperado, pois você autorizou apenas o acesso ao próprio serviço productpage. Os serviços downstream (details e reviews) permanecem bloqueados pela política de negação total.

    Productpage accessible but details and reviews blocked

Etapa 3: Permitir acesso ao serviço details

Permita que o serviço productpage chame o serviço details restringindo o acesso a requisições provenientes da service account bookinfo-productpage.

Localizar a service account do productpage

  1. Faça logon no console ACK. No painel de navegação à esquerda, clique em Clusters.

  2. Clique em no nome do cluster. No painel de navegação à esquerda, escolha Workloads > Deployments.

  3. Localize o deployment productpage-v1. Escolha More > View in YAML na coluna Actions. Localize o campo serviceAccount. O valor é bookinfo-productpage.

    serviceAccount value: bookinfo-productpage

Criar a política de autorização

  1. Faça logon no console ASM. No painel de navegação à esquerda, escolha Service Mesh > Mesh Management.

  2. Na página Mesh Management, clique em no nome da instância ASM. No painel de navegação à esquerda, escolha Mesh Security Center > AuthorizationPolicy.

  3. Crie a política usando um dos métodos a seguir.

Método 1: YAML

  1. Na página AuthorizationPolicy, clique em Create from YAML.

  2. Selecione default na lista suspensa Namespace, escolha um modelo, cole o YAML a seguir no editor de código e clique em 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étodo 2: Interface do console

  1. Na página AuthorizationPolicy, clique em Create.

  2. Configure os parâmetros a seguir e clique em Create.

    Nota

    bookinfo-productpage é o valor de serviceAccount obtido na etapa anterior.

    Parâmetro

    Valor

    Name

    details-viewer

    Policy Type

    ALLOW

    Namespace (na aba Workload Scope)

    default

    Effective Scope

    Service

    Workload

    details

    Request Matching Rules

    Em Add Request Source, ative Principals e defina o valor como cluster.local/ns/default/sa/bookinfo-productpage. Em Add Request Target, ative Methods e defina o valor como GET.

A política details-viewer aparece na página AuthorizationPolicy.

  1. Verifique a política. Abra http://<ASM-gateway-IP>/productpage no navegador. A seção de detalhes à esquerda agora carrega corretamente. A seção de avaliações à direita ainda apresenta erro porque nenhuma política foi criada para o serviço reviews até o momento.

    Details accessible, reviews still blocked

Etapa 4: Permitir acesso ao serviço reviews

Crie uma política de autorização para o serviço reviews usando a mesma service account bookinfo-productpage como origem autorizada.

  1. Faça logon no console ASM. No painel de navegação à esquerda, escolha Service Mesh > Mesh Management.

  2. Na página Mesh Management, clique em no nome da instância ASM. No painel de navegação à esquerda, escolha Mesh Security Center > AuthorizationPolicy.

  3. Crie a política usando um dos métodos a seguir.

Método 1: YAML

  1. Na página AuthorizationPolicy, clique em Create from YAML.

  2. Selecione default na lista suspensa Namespace, escolha um modelo, cole o YAML a seguir no editor de código e clique em 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étodo 2: Interface do console

  1. Na página AuthorizationPolicy, clique em Create.

  2. Configure os parâmetros a seguir e clique em Create.

    Nota

    bookinfo-productpage é o valor de serviceAccount obtido na Etapa 3.

    Parâmetro

    Valor

    Name

    reviews-viewer

    Policy Type

    ALLOW

    Namespace (na aba Workload Scope)

    default

    Effective Scope

    Service

    Workload

    reviews

    Request Matching Rules

    Em Add Request Source, ative Principals e defina o valor como cluster.local/ns/default/sa/bookinfo-productpage. Em Add Request Target, ative Methods e defina o valor como GET.

A política reviews-viewer aparece na página AuthorizationPolicy.

  1. Verifique a política. Abra http://<ASM-gateway-IP>/productpage no navegador. Tanto a seção de detalhes (esquerda) quanto a seção de avaliações (direita) agora carregam corretamente. Todos os serviços na cadeia de requisições do Bookinfo estão autorizados.

    All Bookinfo services accessible

Limpeza

Para remover as políticas de autorização criadas neste tópico, exclua-as da página AuthorizationPolicy no console ASM. Selecione cada política e exclua-a:

  • allow-nothing

  • productpage-viewer

  • details-viewer

  • reviews-viewer

Aviso

Manter a política de negação total allow-nothing ativa bloqueia todo o tráfego para serviços no namespace default. Sempre remova-a quando não for mais necessária.

Tópicos relacionados