Nesta página, descrevemos como configurar políticas de autorização para o Secure Web Proxy.
Antes de começar
Leia as páginas Visão geral do Secure Web Proxy e Visão geral da política de autorização.
-
- API de segurança de rede
- API Network Services
- API Certificate Manager
Verifique se você tem os papéis e as permissões adequados.
É preciso ter uma instância ativa do Secure Web Proxy implantada e associada a um
GatewaySecurityPolicy. Para mais informações, consulte Implantar uma instância do Secure Web Proxy.Para configurar as políticas de autorização do Secure Web Proxy, é necessário ativar uma política de inspeção de TLS.
Criar uma política de autorização
É possível configurar políticas de autorização para dois casos de uso distintos:
Controlar o tráfego agêntico: para proteger o tráfego de saída de agentes de IA para servidores, ferramentas e modelos do Protocolo de Contexto de Modelo (MCP), consulte Configurar políticas de autorização para destinos agênticos. É possível configurar políticas e vinculações de extensão no recurso
agentGatewaypara aplicar restrições de ferramentas do MCP, identidades de agentes mTLS e limpeza de payload.Proteger o tráfego da Web não agêntico: para proteger o tráfego de saída da Web de cargas de trabalho corporativas não agênticas, consulte os exemplos nas seções a seguir. É possível configurar políticas diretamente no recurso
Gatewaydo Secure Web Proxy para aplicar identidades de certificado do cliente mTLS, contas de serviço, tags seguras ou extensões de autorização personalizadas.
Para criar uma política de autorização para o Secure Web Proxy, faça o seguinte:
- Configure um arquivo YAML que defina o destino e as regras.
- Para importar o arquivo YAML, execute o
comando
gcloud network-security authz-policies import.
Configurar políticas de autorização para destinos de agentes
Ao implantar o Secure Web Proxy como um Gateway de Agente, é possível definir políticas de autorização para inspecionar e restringir o tráfego direcionado aos servidores de ferramentas do MCP e aos destinos de agentes de IA.
É possível configurar regras que aplicam o controle de acesso nas seguintes camadas de solicitação:
Regras de rede: pule a inspeção de TLS ou a análise profunda de payload para endpoints de modelos ou Agent Endpoints externos confiáveis específicos.
Vinculações de extensão: use recursos
ExtensionBindingnas Service Extensions para anexar processadores externos de governança e segurança, como o Identity-Aware Proxy (IAP) para confirmação de identidade do agente e o Model Armor para limpeza de comandos e respostas.Filtragem de métodos e ferramentas HTTP do MCP: aplique controles detalhados sobre ações específicas do MCP, como
tools/listoutools/call, e valide argumentos para restringir as ferramentas que um agente pode invocar.
Ordem de avaliação das regras de autorização
Ao processar o tráfego de saída do agente de IA por um Gateway de Agente, as regras são avaliadas na seguinte sequência:
Regras de autorização de rede (L4): avaliadas primeiro. Se uma regra de correspondência de SNI for aplicada, como permitir a comunicação direta com um endpoint de modelo externo, o tráfego vai ignorar a interceptação de TLS.
Intercepção de TLS: o tráfego que não é ignorado é interceptado e descriptografado usando a política de inspeção de TLS do gateway.
Regras de vinculação de extensão: as solicitações são avaliadas por serviços de extensão configurados, como o IAP, para verificar a identidade do autor da chamada nos cabeçalhos da solicitação, e o Model Armor, para inspecionar payloads descriptografados em busca de segurança de comandos e evitar vazamentos de dados sensíveis nas respostas.
Regras de autorização HTTP (L7): as políticas de autorização no nível HTTP, como restrições de ferramentas MCP e filtragem de métodos, são avaliadas.
Exemplo 1: restringir a execução de ferramentas do MCP
O exemplo a seguir mostra uma política de autorização anexada a um recurso agentGateway que permite que os agentes descubram ferramentas (tools/list) e executem apenas ferramentas aprovadas (tools/call para get_weather e get_location):
Crie um arquivo chamado
authz-policy-mcp.yaml.name: authz-policy-restrict-tools target: resources: - "projects/PROJECT_ID/locations/LOCATION/agentGateways/AGENT_GATEWAY_NAME" policyProfile: REQUEST_AUTHZ httpRules: - to: operations: - mcp: baseProtocolMethodsOption: MATCH_BASE_PROTOCOL_METHODS methods: - name: "tools/list" - name: "tools/call" params: - exact: "get_weather" - exact: "get_location" action: ALLOWSubstitua:
PROJECT_ID: ID do projeto do Google Cloud .LOCATION: região em que as instâncias do Gateway de Agente e do Secure Web Proxy são implantadasAGENT_GATEWAY_NAME: nome do recursoagentGatewayassociado ao gateway do Secure Web Proxy.
Para importar a política de autorização, execute o comando
gcloud network-security authz-policies import.gcloud network-security authz-policies import authz-policy-restrict-tools \ --source=authz-policy-mcp.yaml \ --location=LOCATION
Exemplo 2: ignorar a interceptação de TLS usando a correspondência de SNI
Se determinados provedores de modelos externos ou APIs de agentes usarem fixação de certificado ou não exigirem inspeção de payload, use regras de rede para corresponder à Indicação de Nome do Servidor (SNI) e permitir a conexão sem descriptografar a sessão.
Crie um arquivo chamado
authz-policy-sni.yaml.name: authz-policy-skip-interception target: resources: - "projects/PROJECT_ID/locations/LOCATION/agentGateways/AGENT_GATEWAY_NAME" policyProfile: REQUEST_AUTHZ networkRules: - to: operations: - snis: - exact: "api.example-model-provider.com" action: ALLOWSubstitua:
PROJECT_ID: ID do projeto do Google Cloud .LOCATION: região em que as instâncias do Gateway de Agente e do Secure Web Proxy são implantadasAGENT_GATEWAY_NAME: nome do recursoagentGatewayassociado ao gateway do Secure Web Proxy.
Para importar a política de autorização, execute o comando
gcloud network-security authz-policies import.gcloud network-security authz-policies import authz-policy-skip-interception \ --source=authz-policy-sni.yaml \ --location=LOCATION
Exemplo 3: ativar a inspeção profunda de payload com o Model Armor usando vinculações de extensão
Para se proteger contra injeção de comandos, saída tóxica ou vazamento de dados sensíveis, é possível
transferir o processamento de tráfego para o Model Armor ou um processador
ext_proc personalizado usando vinculações de extensão em
extensões de serviço.
Esse modelo separa o provedor de extensões do consumidor da seguinte maneira:
- Serviços do Google (1P): para serviços integrados do Google, como
o Model Armor e o IAP, o Google gerencia a
infraestrutura subjacente. É possível vincular diretamente o serviço usando
URIs de endpoint predefinidos (
modelarmor.googleapis.comouiap.googleapis.com). - Extensões personalizadas e de parceiros (2P/3P): para processadores internos personalizados ou
fornecedores de segurança terceirizados, o produtor publica um recurso
ProducerExtensionque aponta para o anexo de serviço do Private Service Connect, e o consumidor vincula esse URI de recurso.
Para mais informações sobre como as políticas e extensões de autorização são
avaliadas em um recurso agentGateway, consulte Delegar autorização com
extensões de serviço
e Políticas extensíveis no
Gateway de Agente.
Para configurar uma vinculação de extensão para o Model Armor, faça o seguinte:
Ative a API Service Extensions.
gcloud services enable serviceextensions.googleapis.com
Crie um arquivo de configuração chamado
extension-binding-model-armor.yamlque direcione o recursoagentGateway, defina os modelos de inspeção e intercepte o tráfego destinado aos servidores MCP.name: ext-binding-model-armor target: resources: - "//networkservices.googleapis.com/projects/PROJECT_ID/locations/LOCATION/agentGateways/AGENT_GATEWAY_NAME" failOpen: false producerExtension: modelarmor.googleapis.com producerMetadata: model_armor_settings: '[ { "request_template_id": "projects/TEMPLATE_PROJECT_ID/locations/LOCATION/templates/REQUEST_TEMPLATE_ID", "response_template_id": "projects/TEMPLATE_PROJECT_ID/locations/LOCATION/templates/RESPONSE_TEMPLATE_ID" } ]' matchConditions: - to: destination: resources: - prefix: "urn:mcp"Substitua:
PROJECT_ID: ID do projeto do Google Cloud .LOCATION: região em que as instâncias do Gateway de Agente e do Secure Web Proxy estão implantadasAGENT_GATEWAY_NAME: nome do recursoagentGatewayTEMPLATE_PROJECT_ID: ID do projeto em que os modelos do Model Armor são criadosREQUEST_TEMPLATE_ID: ID do modelo usado para inspecionar as solicitações recebidas.RESPONSE_TEMPLATE_ID: ID do modelo usado para inspecionar as respostas enviadas
Observação:
- O
failOpen: falsebloqueia o tráfego se o serviço de extensão não estiver acessível. Para permitir que o tráfego passe sem inspeção durante interrupções de serviço, definafailOpen: true. - Para vincular uma extensão interna ou de terceiros personalizada em vez do
Model Armor, defina
producerExtensioncomo o caminho do recurso do produtor no seguinte formato:projects/PRODUCER_PROJECT_ID/locations/LOCATION/producerExtensions/PRODUCER_EXTENSION_NAME.
Para importar a vinculação de extensão, execute o comando
gcloud beta service-extensions extension-bindings import.gcloud beta service-extensions extension-bindings import ext-binding-model-armor \ --source=extension-binding-model-armor.yaml \ --location=LOCATION
Para mais informações sobre como vincular o IAP para confirmação de identidade, consulte Anexar vinculações de extensão ao Gateway de Agente.
Política de autorização com base na identidade mTLS
O Secure Web Proxy permite aplicar regras de segurança com base em identidades derivadas de certificados de TLS mútuo (mTLS). Aplicar regras com base nessas identidades é especialmente útil em ambientes de confiança zero, em que o tráfego entre os clientes e o proxy é protegido por mTLS. Para mais informações, consulte Política de autorização com base em principais.
O exemplo a seguir mostra uma política de autorização para uma
instância do Secure Web Proxy chamada swp1. Neste exemplo, presumimos que o
tráfego para o proxy use o protocolo HTTPS.
A política com o perfil REQUEST_AUTHZ exige que todo o tráfego para
example.com/mcp exija autenticação mTLS de um
principal específico antes que o tráfego seja permitido. A política
também nega todo o tráfego de saída que não seja destinado a
example.com/mcp.
Crie o arquivo YAML da política de autorização.
O exemplo a seguir cria um arquivo
authz-policy.yaml. A política permite o tráfego para o host e o caminho especificados somente se o cliente apresentar um certificado que corresponda ao principalSPIFFE IDdefinido.$ cat >authz-policy.yaml <<EOF name: test-authz-policy-mtls target: resources: - "projects/ PROJECT_ID /locations/ LOCATION /gateways/swp1" policyProfile: REQUEST_AUTHZ httpRules: - to: operations: - hosts: - exact: "example.com" paths: - exact: "/mcp" from: sources: - principals: - principalSelector: CLIENT_CERT_URI_SAN principal: exact: "spiffe:// PROJECT_ID .global.123.workload.id.goog/ns/ns1/sa/hellomcp" action: ALLOW EOFSubstitua:
PROJECT_ID: ID do projeto do Google Cloud .LOCATION: região da instância do Secure Web Proxy
Crie uma política de autorização e importe o arquivo YAML usando o comando
gcloud network-security authz-policies import.gcloud beta network-security authz-policies import my-authz-policy-allow --source=authz-policy.yaml --location= LOCATIONSubstitua
LOCATIONpela região da instância do Secure Web Proxy.
Política de autorização com base em contas de serviço ou tags
É possível aplicar uma política de autorização com base em contas de serviço ou tags anexadas a vários recursos do Google Cloud .
Este exemplo pressupõe que você tenha concluído o seguinte:
Criou uma conta de serviço e a anexou a um recurso do Google Cloud.
Criou uma tag e a anexou a um recurso do Google Cloud como um par de chave-valor. Ao criar uma tag, defina a flag
--purposecomoGCE_FIREWALL. Os requisitos da política de autorização exigem a finalidadeGCE_FIREWALLpara aplicar a tag.
Conta de serviço
Crie um arquivo YAML de política de autorização para permitir determinadas solicitações.
O exemplo a seguir cria um arquivo
authz-policy.yamlpara a instância do Secure Web Proxy chamadaswp1. A política é configurada para permitir que as solicitações de uma instância de máquina virtual (VM) do Compute Engine com a conta de serviçomy-sa-123@56788.alcancem o caminho example1.com/url1.$ cat >authz-policy.yaml <<EOF name: my-authz-policy-allow target: resources: - "projects/PROJECT_ID/locations/ LOCATION /gateways/swp1" policyProfile: REQUEST_AUTHZ httpRules: - from: sources: - resources: - iamServiceAccount: exact: "my-sa-123@56788." to: operations: - hosts: - exact: "example1.com" paths: - prefix: "/url1" action: ALLOW EOFSubstitua:
PROJECT_ID: ID do projeto do Google Cloud .LOCATION: região da instância do Secure Web Proxy
Crie uma política de autorização e importe o arquivo YAML usando o comando
gcloud network-security authz-policies import.O comando de exemplo a seguir mostra como importar o arquivo de política criado anteriormente e criar uma política de autorização:
gcloud network-security authz-policies import my-authz-policy-allow --source=authz-policy.yaml --location= LOCATIONSubstitua
LOCATIONpela região da instância do Secure Web Proxy.
Tag
Crie um arquivo YAML de política de autorização para permitir determinadas solicitações.
O exemplo a seguir cria um arquivo
authz-policy-tag.yamlpara a instância do Secure Web Proxy chamadaswp1. A política permite que apenas as solicitações originadas de um recurso do Google Cloudcom um valor de tagTAG_VALUE_PERMANENT_IDacessem o caminho do URL example1.com/url1.$ cat >authz-policy-tag.yaml <<EOF name: my-authz-policy-tag-allow target: resources: - "projects/PROJECT_ID/locations/ LOCATION /gateways/ GATEWAY_NAME " policyProfile: REQUEST_AUTHZ httpRules: - from: sources: - resources: - tagValueIdSet: ids: ["TAG_VALUE_PERMANENT_ID"] to: operations: - hosts: - exact: "example1.com" paths: - exact: "/url1" action: ALLOW EOFSubstitua:
PROJECT_ID: ID do projeto do Google Cloud .LOCATION: região da instância do Secure Web ProxyGATEWAY_NAME: nome do gateway do Secure Web ProxyTAG_VALUE_PERMANENT_ID: ID permanente de um valor de tag, comotagValues/123456789012.
Crie uma política de autorização e importe o arquivo YAML usando o comando
gcloud network-security authz-policies import.O exemplo de comando a seguir importa o arquivo de política criado anteriormente e cria uma política de autorização na região Google Cloud especificada:
gcloud network-security authz-policies import my-authz-policy-tag-allow --source=authz-policy-tag.yaml --location= LOCATIONSubstitua
LOCATIONpela região da instância do Secure Web Proxy.
Política de autorização para delegar decisões de autorização
Para decisões de autorização complexas que não podem ser expressas usando regras padrão
ALLOW ou DENY, é possível criar uma política de autorização
com uma ação CUSTOM. Em seguida, é possível delegar as decisões de autorização para extensões de autorização (extensões de serviço).
Quando você configura uma política com uma ação CUSTOM, o Secure Web Proxy transfere
os metadados ou o payload da solicitação para as extensões de serviço. Dependendo
da resposta das Extensões de Serviço, o proxy permite
ou rejeita o tráfego.
O Secure Web Proxy é compatível com os seguintes tipos de delegações:
Delegar decisões de autorização de solicitação para as extensões de serviço: é possível usar uma política de autorização configurada com uma ação
CUSTOMe um perfilREQUEST_AUTHZpara delegar decisões com base em metadados e cabeçalhos de solicitação. Nesse modo, a decisão de acesso é delegada a uma extensão de autorização. Use esse modo para verificar identidades e permissões.Delegar decisões de autorização de conteúdo para as extensões de serviço: é possível usar uma política de autorização com uma ação
CUSTOMe um perfilCONTENT_AUTHZpara delegar decisões a uma extensão de autorização com base no payload de dados real da solicitação. Esse modo permite ativar a inspeção profunda de conteúdo e a aplicação de segurança, permitindo que você verifique informações sensíveis ou padrões maliciosos integrando-se a serviços como o Model Armor.
Limitações
Ao implementar políticas de autorização para o Secure Web Proxy, as seguintes limitações se aplicam:
Restrições de destino e conectividade: as extensões de autorização do Secure Web Proxy não são compatíveis com o IAP como destino direto.
Conflito e compatibilidade de políticas: se você tiver uma política de segurança de gateway com regras de segurança, não será necessário removê-las. O Secure Web Proxy ignora essas regras quando você aplica uma política de autorização à instância.
Requisitos de protocolo e inspeção: para configurar as políticas de autorização do Secure Web Proxy, é necessário ativar a inspeção de TLS.