Este documento ajuda você a diagnosticar e resolver problemas comuns ao configurar e aplicar as Políticas de Acesso Unificadas (PAUs) do IAM para a saída do Gateway de Agente.
Falhas de aplicação de políticas e acesso
Esta seção descreve problemas com a aplicação.
A política não está sendo aplicada
Sintoma: um agente pode acessar ferramentas, servidores MCP ou endpoints de destino mesmo que uma regra de negação ou permissão restritiva do IAM tenha sido configurada para bloquear o acesso.
Causa: a extensão de autorização do Gateway de Agente está sendo executada no modo de teste ou o escopo de vinculação da política não corresponde ao recurso de destino. No modo de teste, as decisões de acesso são avaliadas e registradas para auditoria, mas as solicitações nunca são bloqueadas.
Solução:
Mude o modo de teste para o modo restrito: primeiro, verifique o arquivo de configuração da extensão de autorização (
iap-request-authz-extension.yaml). SeiamEnforcementModeestiver definido como"DRY_RUN", atualize para"ENFORCE"(ou remova a configuraçãoDRY_RUN) e importe novamente a extensão usando a CLI gcloud:gcloud service-extensions authz-extensions import EXTENSION_NAME \ --source=EXTENSION_FILE.yaml \ --location=LOCATIONSubstitua:
EXTENSION_NAME: o nome da extensão de autorizaçãoEXTENSION_FILE: o nome do arquivo de configuração da extensão YAMLLOCATION: a Google Cloud região em que o gateway está implantado
Verifique a delegação da política de autorização do gateway: verifique se a política de autorização do gateway (
policyProfile: REQUEST_AUTHZ) está vinculada à instância correta do Gateway de Agente (target.resources).Verifique o escopo de vinculação da política: verifique se a UAP do IAM está vinculada ao escopo do recurso de destino em que o tráfego está chegando.
Inspecione a precedência da regra: em uma política combinada, as regras de negação substituem explicitamente as regras de permissão no mesmo escopo. No entanto, verifique se um UAP com uma regra de permissão mais ampla, vinculada no nível do registro ou projeto, está concedendo acesso sem restrições condicionais.
A política de restrição bloqueia o acesso do agente
Sintoma: a solicitação de saída de um agente falha com um erro HTTP 403 Forbidden ou
PERMISSION_DENIED quando a aplicação da política do Gateway de Agente
está ativada.
Causas:
A identidade do agente não está especificada no UAP.
A identidade do agente não recebeu a permissão
iap.resources.egressViaIAPno recurso de destino.O nome do host de destino exato não está registrado no Agent Registry.
Os atributos da solicitação não satisfazem as condições da Common Expression Language (CEL) no UAP.
Solução:
- Mude para o modo de teste para depuração não destrutiva: ao diagnosticar
a falha, mude temporariamente a extensão de autorização para o modo de teste
(
iamEnforcementMode: "DRY_RUN") para que o tráfego de agentes ativos não seja bloqueado enquanto você inspeciona os registros de auditoria. Consulte os registros de auditoria do Cloud: consulte os registros de auditoria do Cloud para inspecionar a verificação de autorização exata e a avaliação de atributos CEL:
gcloud
Execute o seguinte comando
gcloud logging read:gcloud logging read \ 'protoPayload.serviceName="iap.googleapis.com" AND protoPayload.authorizationInfo.permission="iap.resources.egressViaIAP" AND protoPayload.status.code!=0' \ --project=PROJECT_ID \ --limit=20Substitua
PROJECT_IDpelo ID do projeto.Console
- No Google Cloud console do, acesse a página Análise de registros.
- Selecione o projeto.
- No Editor de consultas, insira a seguinte consulta:
protoPayload.serviceName="iap.googleapis.com" protoPayload.authorizationInfo.permission="iap.resources.egressViaIAP" protoPayload.status.code!=0 - Clique em Executar consulta.
- Expanda a entrada de registro e inspecione
protoPayload.authorizationInfopara ver qual URI e permissão do recurso de destino falharam na avaliação.
Verifique a correspondência exata do nome do host: o Gateway de Agente corresponde aos nomes de host de destino exatamente. Uma API do Google ou um serviço de terceiros pode ser resolvido por várias variações de nome de host, dependendo da versão do SDK, da configuração regional do cliente ou do uso de mTLS. Por exemplo,
us-central1-aiplatform.googleapis.comem comparação comus-central1-aiplatform.mtls.googleapis.comem comparação comaiplatform.googleapis.com.- Se você depende de destinos registrados, verifique se todas as variações exatas de nome de host estão registradas no Agent Registry.
- Se o agente acessar endpoints não registrados, verifique se uma
política de endpoint não registrado
concede
iap.resources.egressViaIAPpara esse host e caminho.
Verifique a cobertura da vinculação de políticas em todos os escopos: verifique se uma vinculação de política existe em um dos três escopos compatíveis:
- Em todo o registro: concede acesso a todos os agentes, servidores MCP e endpoints no registro.
- Por recurso: concede acesso a um servidor MCP registrado específico, endpoint ou agente.
- Endpoints não registrados: concede acesso a destinos fora do Agent Registry.
- Observação: ao descrever vinculações de políticas para um recurso de destino, se a
saída retornada contiver um campo
"etag", mas nenhuma vinculação, não haverá política do IAM para esse destino.
Mensagens de erro comuns da API REST, da gcloud e da interface
Esta seção descreve as mensagens de erro e como resolvê-las.
Política não encontrada
Mensagem de erro:
- Interface do console: "A política solicitada não existe. Verifique se a política existe para o recurso selecionado."
- API / gcloud:
POLICY_NOT_FOUND/HTTP 404 Not Found
Causa: O ID UAP especificado em sua solicitação de atualização ou política binding não existe no projeto ou local, ou foi excluído.
Solução: liste todas as PAUs disponíveis no projeto usando
gcloud iam access-policies list --project=<var>PROJECT_ID</var> --location=global
para confirmar o ID e o local exatos da política antes de vinculá-la ou atualizá-la.
Limite de vinculação de destino excedido
Mensagem de erro:
- Interface do console: "O destino selecionado atingiu o limite de vinculações de políticas de acesso. Exclua uma vinculação antes de adicionar uma nova."
- API / gcloud:
TOO_MANY_ACCESS_POLICY_BINDINGS_PER_TARGET
Causa: você tentou anexar mais vinculações de políticas a um recurso de destino (como um servidor MCP ou registro) do que o limite máximo permitido por destino.
Solução: Em vez de criar um UAP e um binding separados para cada regra individual, consolide várias regras de permissão ou negação em um único UAP. Remova as vinculações não utilizadas usando gcloud iam
policy-bindings delete.
Limite de vinculação de políticas excedido
Mensagem de erro:
- Interface do console: "A política selecionada atingiu o limite de vinculações. Exclua uma vinculação antes de adicionar uma nova."
- API / gcloud:
TOO_MANY_ACCESS_POLICY_BINDINGS_TO_POLICY
Causa: Um único UAP está associado a muitos recursos de destino distintos em todo o seu projeto.
Solução: vincule a política em um escopo mais amplo, como o escopo de todo o registro
(AgentRegistry) ou o escopo do projeto, e use condições de atributo CEL (como
destination.agent_registry.mcp_server.name) para controlar o acesso a ferramentas individuais
nas regras de política.
Limite de condição excedido
Mensagem de erro:
- Interface do console: "Esta política atingiu o número máximo de condições de atributo Remova algumas condições para salvar as mudanças."
- API / gcloud:
TOO_MANY_CONDITIONS/ Limite de condição excedido para regra na política.
Causa: uma única regra de permissão ou negação contém mais condições de atributo de controle de acesso refinado (FGAC, na sigla em inglês) ou subexpressões complexas do que o permitido em uma única regra.
Solução: Consolide as verificações de atributos usando operadores lógicos CEL (&&,
||) ou pesquisas de inclusão de conjunto (in), ou divida suas expressões em várias
regras dentro do mesmo UAP.
Detalhes da regra desatualizados
Mensagem de erro:
- Interface do console: "Os detalhes da regra estão desatualizados. Esta regra foi modificada por outro usuário depois que esta página foi carregada. Atualize a página para buscar os detalhes atuais antes de editar ou excluir."
- API / gcloud:
HTTP 412 Precondition Failed/ABORTEDdevido aetagincompatibilidade.
Causa: Outro administrador ou processo automatizado modificou o
UAP depois que você o recuperou, fazendo com que sua solicitaçãoetag
difera do estado ativo do servidor.
Solução: atualize a página do console para recuperar os detalhes da política ativa
e etag antes de salvar as edições. Ao usar a API REST, faça uma GET
solicitação primeiro para recuperar o valor "etag" ativo e inclua-o no seu
PATCH payload de solicitação.
Não é possível excluir a última regra em uma política
Mensagem de erro:
- Interface do console: "Não é possível excluir esta regra. A política padrão precisa conter pelo menos uma regra. Para remover essa regra, exclua a política." ou "Esta é a última regra em <policy name>. A exclusão dela também vai excluir a política e remover permanentemente todas as vinculações associadas, o que pode afetar o acesso do agente aos recursos."
Causa: Um UAP do IAM não pode ser salvo com zero regras.
Solução: se você quiser remover a única regra em uma política, exclua a política inteira. Lembre-se de que é necessário excluir todas as vinculações de políticas que fazem referência à política antes de excluir a política em si.
Expressão CEL personalizada preservada na guia "Avançado"
Mensagem de erro:
- Interface do console: "Não foi possível converter a expressão CEL personalizada em seleções de UI padrão. Sua expressão é preservada na guia "Avançado"."
Causa: você inseriu uma condição ou função CEL complexa no Editor de condições (guia "Avançado") que não pode ser mapeada para os seletores suspensos simplificados do criador de condições padrão.
Solução: essa mensagem é uma notificação informativa. Sua condição CEL personalizada é válida e preservada. Continue fazendo edições diretamente na guia Editor de condições.