Todos os produtos
Search
Central de documentação

Alibaba Cloud Service Mesh:Configure uma política de segurança do ASM para implementar autorização personalizada

Última atualização: Jun 28, 2026

Para personalizar uma política de controle de acesso conforme as necessidades do seu negócio, configure uma política de segurança do Service Mesh (ASM) com autorização personalizada. Nesse cenário, as solicitações são encaminhadas a um serviço de autorização personalizado especificado por você, responsável pela autenticação. Essa abordagem permite implementar lógicas complexas de autenticação, reduzir custos de desenvolvimento e manutenção e aumentar a eficiência das equipes.

Pré-requisitos

Procedimento

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

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

  3. Na página ASMSecurityPolicy, clique em Create. Na caixa de diálogo Create ASMSecurityPolicy, clique em Custom Authorization Service e, em seguida, clique em OK.

  4. Na página Create Custom Authorization Service, no assistente de Custom Authorization Service Configuration, selecione a aba Custom authorization service (HTTP or gRPC protocol) implemented based on envoy.ext_authz. Em seguida, configure os parâmetros e clique em Next.

    Este exemplo utiliza as configurações abaixo. Para mais detalhes sobre os parâmetros, consulte Conectar-se a um serviço de autorização personalizado que usa HTTP. Defina os seguintes parâmetros: ASM security policy name (por exemplo, test), Protocol (HTTP ou gRPC), Service address (por exemplo, ext-authz.default.svc.cluster.local), Service port (por exemplo, 8000) e Timeout (por exemplo, 10 segundos). Opcionalmente, ative as opções Allow requests when authorization service is unavailable e Use custom error code when authorization service is unavailable. Ative a opção Include request headers in check (includeRequestHeadersInCheck) e adicione os cabeçalhos necessários à lista abaixo, como cookie, authorization, x-forwarded-access-token, x-forwarded-user, x-forwarded-email, x-forwarded-proto, proxy-authorization, user-agent, x-forwarded-host, from, x-forwarded-for, accept e o cabeçalho personalizado x-ext-authz. Ative a opção Override headers on allow (headersToUpstreamOnAllow) e adicione os cabeçalhos que deseja substituir, como authorization, cookie, path, x-auth-request-access-token, x-forwarded-access-token e x-ext-authz-check-result. Ative também a opção Override headers on deny (headersToDownstreamOnDeny) e adicione os cabeçalhos a serem substituídos, como content-type, set-cookie e x-ext-authz-check-result. O cabeçalho x-ext-authz-check-result é personalizado e deve constar tanto na lista de permissão quanto na de negação.

  5. No assistente Workload and Match Rules, clique em Add Workload Group. Na caixa de diálogo New Workload Group, configure os parâmetros e clique em Submit.

    A tabela a seguir descreve a configuração dos parâmetros neste exemplo.

    Parâmetro

    Descrição

    Workload Group Name

    Defina o nome como test-policy.

    Workload List

    1. Clique em Add Workload.

    2. Na caixa de diálogo Add Workload, selecione Workload Scope. Defina Namespaces como default e Workload Type como Service.

    3. Na área Select workloads, selecione productpage, clique em ícone 添加 para movê-lo para a área selected e clique em OK.

    Match Rule List

    Defina Match Mode como The selected request must be authenticated. Selecione Custom Matching Rules para Matching Rules. Em seguida, ative a opção Path e defina o caminho como /productpage.

    Após a criação da política, a mensagem "ASM security policy created successfully" aparece na etapa Complete do assistente. Clique em View YAML para visualizar o arquivo YAML do recurso criado ou em Complete para retornar à página ASMSecurityPolicy e visualizar a nova política.

  6. Verifique se a configuração de autorização personalizada entrou em vigor.

    1. Execute o comando a seguir para enviar uma solicitação com o cabeçalho x-ext-authz: allow e acessar o serviço productpage:

      curl -I -H "x-ext-authz: allow" http://${IP address of the ingress gateway}/productpage

      Saída esperada:

      HTTP/1.1 200 OK
      content-type: text/html; charset=utf-8
      content-length: 5288
      server: istio-envoy
      date: Tue, 17 Jan 2023 07:53:14 GMT
      x-envoy-upstream-service-time: 20

      Essa saída indica que a autorização personalizada foi acionada e a autenticação foi bem-sucedida.

    2. Execute o comando a seguir para enviar uma solicitação com o cabeçalho x-ext-authz: deny e acessar o serviço productpage:

      curl -I -H "x-ext-authz: deny" http://${IP address of the ingress gateway}/productpage

      Saída esperada:

      HTTP/1.1 403 Forbidden
      x-ext-authz-check-result: denied
      date: Tue, 17 Jan 2023 07:55:27 GMT
      server: istio-envoy
      x-envoy-upstream-service-time: 2
      transfer-encoding: chunked

      Essa saída indica que a autorização personalizada foi acionada, mas a autenticação falhou.

    Os resultados acima confirmam que a configuração de autorização personalizada está em vigor.

Referências