As Service Extensions permitem que as extensões do Secure Web Proxy enviem chamadas para serviços de autorização para inserir processamento personalizado no caminho de processamento de tráfego. Nesta página, descrevemos como configurar extensões do Secure Web Proxy com políticas de autorização.
As extensões do Secure Web Proxy são configuradas com políticas de autorização de solicitação e conteúdo como extensões de autorização. As extensões baseadas em políticas de autorização de solicitação são configuradas para serem executadas antes daquelas baseadas em políticas de autorização de conteúdo.
Para saber como as extensões do Secure Web Proxy funcionam, consulte Visão geral das extensões do Secure Web Proxy.
Para informações sobre os limites relacionados a extensões de autorização, consulte a página Cotas e limites.
Antes de começar
Crie, configure e implante uma instância do Secure Web Proxy chamada
swp-instance1em um local que você quer usar para a extensão, por exemplo,us-west1.O proxy precisa ser implantado com uma política de segurança do gateway com a inspeção Transport Layer Security (TLS) ativada.
Configure os seguintes serviços de exemplo:
Um serviço de autorização a ser usado para configurar uma extensão para uma política de autorização de solicitação. Neste exemplo, suponha que o FQDN seja
request-authz.com.Um serviço de higienização a ser usado para configurar uma extensão para uma política de autorização de conteúdo. Neste exemplo, suponha que o FQDN seja
content-sdp.com.
As extensões do Secure Web Proxy só podem segmentar nomes de domínio totalmente qualificados (FQDNs). Quando você usa destinos FQDN para extensões, o plano de dados usa o protocolo HTTP2 com criptografia TLS para se comunicar com os endpoints na porta 443. No entanto, o plano de dados não valida o certificado do servidor. Por motivos de segurança, verifique se os endpoints resolvidos estão na VPC.
Configurar uma extensão para uma política de autorização de solicitação
O exemplo a seguir mostra como configurar uma extensão de autorização que
aplica uma política de autorização de solicitação à instância do Secure Web Proxy em
us-west1. A política exige que o tráfego passe pela autenticação TLS mútua de um principal específico antes de poder chegar ao destino, example.com/mcp.
gcloud
Configure a extensão de autorização.
Defina a extensão em um arquivo YAML que a associa ao
request-authz.com. Use os valores de amostra fornecidos.cat >swp-request-authz-extension.yaml <<EOF name: my-swp-request-authz-ext authority: ext11.com loadBalancingScheme: INTERNAL_MANAGED service: "request-authz.com" forwardHeaders: - Authorization failOpen: false timeout: "0.1s" wireFormat: EXT_AUTHZ_GRPC EOFAs extensões do Secure Web Proxy são recursos regionais e precisam estar na mesma região que a instância do Secure Web Proxy.
Para políticas de autorização de solicitação, o valor
wireFormatpode serEXT_AUTHZ_GRPCpara que a callout use o protocoloext_authz, embora o protocoloext_proctambém seja compatível.Por padrão,
failOpené definido comofalse. Se a extensão atingir o tempo limite ou falhar, o processamento da solicitação será interrompido. Essa opção padrão é preferível quando a prioridade é a segurança ou a integridade em vez da disponibilidade.Importe a extensão de autorização. Use o comando
gcloud beta service-extensions authz-extensions importcom os seguintes valores de exemplo.gcloud beta service-extensions authz-extensions import my-swp-request-authz-ext \ --source=swp-request-authz-extension.yaml \ --location=us-west1
No mesmo projeto, configure uma política de autorização com a extensão.
Para qualquer solicitação a
example.com/mcp, a política exige autenticação TLS mútua de uma principal específica e delega ainda mais a decisão de autorização à extensão de autorização,my-swp-authz-request-ext.Defina uma política de autorização que associe a extensão
my-swp-authz-request-extao proxy do Secure Web Proxyswp-instance1. Use os valores de amostra fornecidos.cat >swp-request-authz-policy.yaml <<EOF name: my-swp-request-authz-policy target: resources: - "projects/PROJECT_ID/locations/us-west1/gateways/swp-instance1" policyProfile: REQUEST_AUTHZ httpRules: - to: operations: - hosts: - exact: "example.com" - paths: - prefix: "/mcp" from: sources: - principals: - principal_selector: CLIENT_CERT_DNS_NAME_SANS principal: exact: "spiffe://p.global.123.workload.id.goog/ns/ns1/sa/hellomcp" action: CUSTOM customProvider: authzExtension: resources: - "projects/PROJECT_ID/locations/us-west1/authzExtensions/my-swp-request-authz-ext" EOFSubstitua
PROJECT_IDpelo ID do projeto.Para políticas de autorização de solicitação, o valor de
policyProfileprecisa serREQUEST_AUTHZ.A ação
CUSTOMindica que uma extensão está associada ao proxy.Para mais informações sobre um recurso de política de autorização, consulte a documentação de referência do
authzPolicy.Importe a política de autorização para o projeto. Use o comando
gcloud beta network-security authz-policies importcom os seguintes valores de exemplo.gcloud beta network-security authz-policies import my-swp-request-authz-policy \ --source=swp-request-authz-policy.yaml \ --location=us-west1
Configurar uma extensão para uma política de autorização de conteúdo
O exemplo a seguir mostra como configurar uma extensão de autorização que aplica uma política de autorização de conteúdo à instância do Secure Web Proxy em us-west1. A política exige um serviço de limpeza de conteúdo para realizar uma inspeção detalhada dos payloads de aplicativos e permitir ou negar solicitações ou alterar as solicitações e respostas, conforme necessário.
gcloud
Configure a extensão de autorização.
Defina a extensão em um arquivo YAML que a associa ao
content-sdp.com. Use os valores de amostra fornecidos.cat >swp-authz-content-extension.yaml <<EOF name: my-swp-content-authz-ext authority: ext11.com loadBalancingScheme: INTERNAL_MANAGED service: "content-sdp.com" failOpen: false timeout: "0.1s" EOFPara políticas de autorização de conteúdo, o valor de
policyProfileprecisa serCONTENT_AUTHZ.Para políticas de
CONTENT_AUTHZ, o valorwireFormatnão precisa ser definido explicitamente comoEXT_PROC_GRPC. Por padrão, o destaque usa o protocoloext_proc.Importe a extensão de autorização. Use o comando
gcloud beta service-extensions authz-extensions importcom os seguintes valores de exemplo.gcloud beta service-extensions authz-extensions import my-swp-content-authz-ext \ --source=swp-content-authz-extension.yaml \ --location=us-west1
Configure uma política de autorização com a extensão.
Defina uma política de autorização que associe a extensão
my-swp-content-authz-extao proxy do Secure Web Proxy,swp-instance1. Use os valores de amostra fornecidos.cat >swp-content-authz-policy.yaml <<EOF name: my-swp-content-authz-policy target: resources: - "projects/PROJECT_ID/locations/us-west1/gateways/swp-instance1" policyProfile: CONTENT_AUTHZ httpRules: - to: operations: - hosts: - exact: "example.com" - paths: - prefix: "/sensitive-stuff" action: CUSTOM customProvider: authzExtension: resources: - "projects/PROJECT_ID/locations/us-west1/authzExtensions/my-swp-content-authz-ext" EOFPara políticas de autorização de conteúdo, o valor de
policyProfileé definido comoCONTENT_AUTHZ. Esse valor indica que o provedor de política personalizada processa o tráfego de solicitação e resposta, incluindo o processamento do corpo.Importe a política de autorização para o projeto. Use o comando
gcloud beta network-security authz-policies importcom os seguintes valores de exemplo.gcloud beta network-security authz-policies import my-swp-content-authz-policy \ --source=swp-content-authz-policy.yaml \ --location=us-west1
Limitações das extensões do Secure Web Proxy
Consulte as seções a seguir para informações sobre as limitações das extensões do Secure Web Proxy:
Para limitações aplicáveis a todas as extensões, consulte Limitações das extensões.
Para limitações aplicáveis aos callouts, consulte Limitações dos callouts.
A seguir
- Confira exemplos de servidores
ext_procem Python e Go no repositório do GitHub do Service Extensions. - Gerenciar extensões