Este documento contém perguntas frequentes sobre o Identity-Aware Proxy (IAP).
Quais apps posso proteger com o IAP?
O IAP pode ser usado com:
- apps do ambiente padrão e do ambiente flexível do App Engine;
- Instâncias do Compute Engine com serviços de back-end de balanceamento de carga HTTP(S)
- contêineres do Google Kubernetes Engine.
- Apps do Cloud Run com serviços de back-end de balanceamento de carga HTTP(S)
- Cloud Run com um clique e sem serviços de back-end de balanceamento de carga
O IAP não pode ser usado com o Cloud CDN.
Por que há um # no fim do meu URL depois de fazer login no meu app?
Em alguns navegadores e certas condições, um #
pode ser anexado ao URL após a autenticação. Isso é normal e não causará problemas ao fazer login.
Por que minhas solicitações estão falhando e retornando 405 Method Not Allowed
?
Isso geralmente acontece quando os cookies não estão anexados às suas solicitações. Por padrão, os métodos JavaScript não anexam cookies.
Métodos de solicitação diferentes exigem abordagens diferentes:
- Para
XMLHttpRequest
, definawithCredentials
comotrue
- Para a API
Fetch,
defina
credentials
comoinclude
ousame-origin
Para lidar com erros relacionados à sessão, consulte Como gerenciar sessões do IAP.
Por que estou recebendo um HTTP 401 Unauthorized
em vez de um 302 Redirect
?
O IAP envia um 302 Redirect
somente quando o cliente está configurado para
processar redirecionamentos.
Adicione HTTP Accept="text/html,*/*"
aos cabeçalhos de solicitação para indicar suporte
a redirecionamentos.
Por que as solicitações POST não estão acionando redirecionamentos?
Os navegadores não redirecionam em resposta a solicitações POST. Em vez disso, o IAP retorna um código de status 401 Unauthorized
.
Para solicitações POST a recursos protegidos pelo IAP, inclua um dos seguintes elementos:
- Um token de ID em um cabeçalho
Authorization: Bearer
- Cookies válidos (consulte atualizar sessões)
Posso usar o IAP se eu tiver desativado a API?
Sim, os recursos protegidos pelo IAP permanecem acessíveis quando a API está desativada, mas não é possível modificar as permissões do IAM.
Como posso impedir que usuários com o papel de proprietário usem o IAP para TCP?
O ideal é limitar o uso do papel de proprietário (roles/owner
) em favor de permissões mais granulares. Consulte as práticas recomendadas do IAM para orientações.
Se isso não for possível, bloqueie o IAP para TCP usando regras de firewall.
Qual domínio o IAP para TCP usa?
O IAP usa os seguintes domínios do Google:
tunnel.cloudproxy.app
mtls.tunnel.cloudproxy.app
(quando o acesso baseado em certificado está ativado)
Por que estou recebendo Server Error
?
Se você vir:
The server encountered a temporary error and could not complete your request. Please try again in 30 seconds.
É possível que o firewall esteja bloqueando os IPs do balanceador de carga.
Verifique se o firewall permite tráfego de 130.211.0.0/22
e 35.191.0.0/16
. Se esses IPs não puderem acessar seu back-end, os aplicativos ficarão inacessíveis.
Para conexões TCP do IAP com VMs específicas, verifique também se a VM aceita conexões do intervalo 35.235.240.0/20
.
Por que estou recebendo erros intermitentes internos do servidor?
Mensagens como An internal server error occurred while authorizing your request.
Error code X
indicam falhas no back-end.
Os códigos de erro 1
, 30
, 62
, 63
, 64
ou 703
geralmente refletem problemas
temporários. Implemente a espera exponencial para novas tentativas.
Como posso resolver erros de cota excedida (código do erro: 429)?
O código de erro 429 ocorre quando o aplicativo excede os limites de solicitação do IAP. O serviço impõe cotas separadas:
- Solicitações baseadas em navegador:360.000 por minuto por projeto
- Solicitações programáticas:360.000 por minuto por projeto
Uma solicitação programática é aquela que inclui um cabeçalho AUTHORIZATION
ou PROXY-AUTHORIZATION
e nenhum cookie de IAP. Todas as outras solicitações (incluindo
aquelas sem credenciais) são consideradas solicitações do navegador.
Esses limites se aplicam coletivamente a todos os recursos protegidos por IAP no seu projeto.
Se você estiver enfrentando erros relacionados à cota, considere estas soluções:
- Evite testes de carga na produção. Use caminhos de rede alternativos que ignoram o IAP.
- Para o tráfego de serviço para serviço, implemente a espera exponencial para lidar com erros 429 de maneira adequada.
- Distribuir aplicativos de alto tráfego em vários projetos
- Use a Apigee ou soluções de gateway de API semelhantes para aplicativos baseados em API.
- Entre em contato com o suporte doGoogle Cloud para aumentar a cota se o crescimento orgânico estiver causando o problema.
Códigos de erro
A tabela a seguir lista códigos de erro comuns e mensagens retornadas ao configurar e usar o IAP.
Código do erro | Descrição | Solução de problemas |
---|---|---|
7 | ID ou chave secreta do cliente OAuth vazios | Acesse a página "Credenciais" para verificar o ID e a chave secreta do cliente. Se elas parecerem corretas, mas não estiverem funcionando, use métodos de API para verificar as configurações (GET para o Compute Engine, GET para o App Engine) e redefina-as com PATCH . |
9 | Falha no redirecionamento do OAuth | Esse é um erro interno que foi registrado automaticamente. Você não precisa fazer nada. |
9 (com regras de substituição de caminho) | Falha no redirecionamento do OAuth | As regras de substituição de caminho do balanceador de carga estão impedindo a conclusão do OAuth. Verifique se todos os back-ends por trás do balanceador de carga usam IDs de cliente OAuth idênticos. É possível atualizar isso usando o comando gcloud compute backend-services update. |
9 (com regras de roteamento de caminho) | Falha no redirecionamento do OAuth | Crie variantes de regras de caminho para as duas versões de cada caminho (com e sem barras finais) e direcione-as para o mesmo back-end. Por exemplo, inclua regras para /path/ e /path . |
11 | ID do cliente OAuth configurado incorretamente | Verifique o ID e a chave secreta do cliente na página "Credenciais". Se elas parecerem corretas, mas não estiverem funcionando, use métodos de API para verificar as configurações (GET para o Compute Engine, GET para o App Engine) e redefina-as com PATCH . |
13 | Token OIDC inválido | Acesse a página "Credenciais" para confirmar se o ID do cliente não foi excluído ou modificado incorretamente. |
51 | O navegador não tem suporte para pooling de conexões | Peça aos usuários finais para atualizarem os navegadores para as versões atuais. Para mais detalhes sobre os requisitos de conexão, consulte Restringir o acesso a recursos. |
52 | Incompatibilidade entre nome do host e certificado SSL | O administrador do sistema precisa atualizar o certificado SSL para corresponder ao nome do host. Consulte Restringir o acesso a recursos para orientações. |
52 (com entrada principal do mapa de certificados) | Incompatibilidade entre nome do host e certificado SSL | A IAP não é compatível com entradas de mapa de certificado principal. Use entradas separadas para mapear cada certificado ao nome de host correto. Consulte Criar uma entrada de mapa de certificados para orientação. |
53 | O nome do host não está nos domínios permitidos | Um administrador precisa adicionar seu nome de host à lista de domínios permitidos. Consulte Restringir o acesso a recursos para instruções. |
253, HTTP 429 | A cota de solicitações foi excedida | Você atingiu os limites de solicitação (360.000/min para cada tipo de solicitação). Distribua as cargas de trabalho em vários projetos, implemente a limitação de solicitações do lado do cliente ou entre em contato com o suporte para aumentos de cota, se necessário para um crescimento legítimo. |
551 | IAP habilitado em vários lugares | Não é possível ativar o IAP na regra de encaminhamento e no serviço de back-end. Desative em um local seguindo as orientações em Ativar para o Compute Engine. |
700, 701 | Problemas com o provedor de pool de funcionários | Configure exatamente um provedor para seu pool de força de trabalho. Consulte Limitações dos pools de força de trabalho para requisitos detalhados. |
705 | ID do cliente OAuth ausente para identidade da força de trabalho | Siga o processo de configuração completo: primeiro crie um ID do cliente OAuth e depois atualize as configurações do IAP. |
708 | Nome do pool de força de trabalho inválido | Verifique se o pool de força de trabalho existe e usa o formato correto: locations/global/workforcePools/WORKFORCE_POOL_ID . |
4003 | Problema de conexão ou firewall | Verifique se o processo da VM está em execução e detectando na porta esperada. Verifique também se as regras de firewall permitem conexões nessa porta. |
4010 | Conexão encerrada pelo destino | Redefina a VM. Se os problemas persistirem, examine auth.log (geralmente em /var/log/ ) ou use o console serial para diagnósticos mais detalhados. |
4033 | Problema de permissão, existência ou estado da VM | Confirme se você tem o papel de usuário do túnel atribuído ao recurso na página do IAP e verifique se a VM existe e está em execução. |
4047 | A instância não existe ou está parada | Verifique se a VM está ligada e concluiu totalmente a sequência de inicialização. |
Se você não conseguir resolver o problema ou não encontrar o erro listado nesta página, entre em contato com o Cloud Customer Care com uma descrição do erro e a resposta recebida de uma chamada GET
para a API. Remova a chave secreta do cliente da resposta.