Este artigo 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.
- Aplicativos do Cloud Run com serviços de back-end de balanceamento de carga HTTP(S).
Atualmente, 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 o código de status 405 (Método não permitido)?
Isso pode acontecer por não ter cookies anexados às suas solicitações. Por padrão, os métodos JavaScript não anexam cookies às solicitações.
A maneira como você inclui cookies varia entre os métodos de solicitação. Por exemplo, solicitações enviadas com um objeto XMLHttpRequest
(em inglês) precisam que a propriedade withCredentials
seja definida como true
, enquanto as solicitações enviadas com a API Fetch precisam da opção credentials
configurada como include
ou same-origin
.
Para informações sobre como lidar com erros que ocorrem apenas após algum tempo, consulte Como gerenciar sessões do IAP.
Por que estou recebendo um código de status HTTP 401 (Não autorizado) em vez de um código HTTP 302 (Movido temporariamente)?
O IAP responde com um código de status 302 Redirect
quando um cliente é configurado para lidar com redirecionamentos. Para indicar que esse é o caso, inclua HTTP Accept="text/html,*/*"
no cabeçalho das solicitações.
Por que as solicitações POST não estão acionando redirecionamentos?
Para acionar redirecionamentos, verifique se as chamadas para o IAP não são solicitações POST. Os navegadores não redirecionam como resposta a solicitações POST. Por isso, o IAP responde com um código de status 401 Unauthorized
em vez de um 302 Redirect
.
Se você precisar que o IAP exiba solicitações POST, verifique se o token de ID ou cookies válidos estão sendo transmitidos no cabeçalho da solicitação.
Inclua o token de ID em um cabeçalho Authorization: Bearer
para fazer uma solicitação autenticada ao recurso protegido pelo IAP.
Atualize a sessão para conseguir cookies válidos.
Posso usar o IAP se eu tiver desativado a API?
Sim, o acesso a recursos protegidos com o IAP funciona com a API desativada, mas você não poderá fazer alterações nas permissões do IAM.
Como posso impedir que usuários com o papel de proprietário usem o IAP para TCP?
Primeiro, evite usar o papel de proprietário (roles/owner
) o máximo possível. Ele concede amplas permissões no Google Cloud. A atribuição de papéis e permissões mais granulares pode aumentar a segurança do seu projeto. Para mais informações, consulte as práticas recomendadas do IAM.
Se não for possível reduzir o uso do papel de proprietário, bloqueie o IAP para TCP usando regras de firewall.
Qual domínio o IAP para TCP usa?
O IAP usa os seguintes domínios, que são de propriedade do Google:
tunnel.cloudproxy.app
mtls.tunnel.cloudproxy.app
se acesso baseado no certificado está ativado.
Se você estiver se conectando por meio de um servidor proxy ou firewall, verifique se eles permitem tráfego para esses domínios e que não impeçam o uso de conexões WebSocket.
Se você bloquear o tráfego para esses domínios, não será possível usar IAP para TCP. Você pode receber uma das várias mensagens de erro.
Se você estiver usando gcloud
, a mensagem de erro pode ser
Error while connecting [[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed
Se você estiver usando o SSH no navegador, a mensagem de erro será exibida.
Cloud Identity-Aware Proxy Failed
Não há código de erro associado.
Por que estou recebendo o erro Server Error
?
Se você receber a seguinte mensagem de erro, seu firewall pode estar impedindo os IPs 130.211.0.0/22
e 35.191.0.0/16
:
Error: Server Error
The server encountered a temporary error and could not complete your request.
Please try again in 30 seconds.
Se os IPs 130.211.0.0/22
e 35.191.0.0/16
do balanceador de carga não puderem acessar seu back-end, talvez os aplicativos não sejam acessíveis. Para mais informações, consulte Como configurar um balanceador de carga HTTPS externo.
Se você estiver usando o IAP para que o TCP se conecte a uma VM específica, ela precisará aceitar conexões de endereços no intervalo 35.235.240.0/20
.
Por que estou recebendo erros internos intermitentes do servidor?
Uma mensagem de erro no formato a seguir indica uma falha interna:
An internal server error occurred while authorizing your request. Error code X
Erros internos com códigos de erro 1
, 30
, 62
, 63
, 64
ou 703
indicam falhas do back-end. Uma taxa baixa desses erros de back-end geralmente indica um erro
problema. Os clientes precisam tentar novamente a solicitação usando a espera exponencial.
Como resolver erros de cota excedida (código de erro 429)?
O código de erro 429 indica que o tráfego para o aplicativo está sendo limitado pelo IAP. O IAP aplica um limite de 360.000 solicitações por minuto. por projeto. Se houver vários aplicativos hospedados em um único projeto, o são aplicadas ao total de solicitações recebidas por todos os servidores protegidos pelo IAP aplicativos no projeto.
Se estiverem ocorrendo erros de cota excedida do IAP, estas são as opções: algumas técnicas que podem ser aplicadas para aliviar o problema. * Não é recomendável realizar testes de carga em instâncias de produção. Se o aumento da carga for devido ao teste de carga, recomendamos encontrar caminhos de rede alternativos para o aplicativo que não invoquem o IAP.
Caso seu aplicativo esteja recebendo um alto tráfego entre serviços, recomendamos que Você implementa a espera exponencial no lado do cliente para lidar com erros 429 normalmente.
Se houver vários aplicativos de tráfego intenso no mesmo projeto, considere mover alguns deles para um projeto diferente.
Se o aplicativo for criado como uma API em vez de um aplicativo da Web, considere usando soluções de gateway de API, como a Apigee.
Se o motivo do tráfego alto for crescimento orgânico, entre em contato com o suporte do Google Cloud para solicitar o aumento do limite de cota.
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 de erro ou mensagem | Descrição | Solução de problemas |
---|---|---|
Código do erro 7 | Os valores do ID ou da chave secreta do cliente OAuth estão vazios. | Verifique se o ID e a chave secreta do cliente estão configurados corretamente para seu app na página "Credenciais". Caso estejam configurados corretamente, use o método GET para ver o estado atual e PATCH para redefinir o ID e a chave secreta do cliente: • API do Compute Engine: GET , PATCH • API do Google App Engine: GET , PATCH |
Código do erro 9 | Um redirecionamento OAuth não foi concluído. | Esse é um erro interno e foi registrado para análise. |
Código de erro 9 (com regras de regravação de caminho) | Um redirecionamento OAuth não foi concluído. | As regras de regravação de caminho do balanceador de carga do Google Cloud interferem na capacidade do IAP de concluir um fluxo OAuth. Se você hospedar vários back-ends atrás do balanceador de carga do Google Cloud e usar regras de regravação de caminho, verifique se os dois back-ends usam os mesmos IDs do cliente OAuth para o IAP. Para alterar um ID do cliente OAuth para um serviço de back-end, use o comando gcloud compute backend-services update. |
Código do erro 11 | Seu ID do cliente OAuth está configurado incorretamente. | Verifique se o ID e a chave secreta do cliente estão configurados corretamente para seu app na página "Credenciais". Caso estejam configurados corretamente, use o método GET para ver o estado atual e PATCH para redefinir o ID e a chave secreta do cliente: • API do Compute Engine: GET , PATCH • API do Google App Engine: GET , PATCH |
Código do erro 13 | Seu token do OpenID Connect (OIDC) é inválido. | Verifique se o ID do cliente configurado para o IAP não foi excluído na página "Credenciais". |
Código do erro 51 | Seu navegador não oferece suporte ao pool de conexões. | Um navegador atual e atualizado pode lidar com erros de pool de conexões. Verifique se os usuários finais estão utilizando um navegador atual e atualizado. Para mais informações, consulte Restringir o acesso a recursos a domínios específicos. |
Código do erro 52 | O nome do host informado não corresponde ao certificado SSL no servidor. | Talvez o administrador do sistema precise atualizar o certificado SSL. Para mais informações, consulte Restringir o acesso a recursos a domínios específicos. |
Código de erro 53 | O nome do host não corresponde aos domínios permitidos pelo administrador do IAP. | O administrador precisa atualizar a lista de domínios permitidos para incluir o nome do host. Para mais informações, consulte Restringir o acesso a recursos em domínios específicos. |
Código do erro 429 | Seu projeto excede o limite de solicitações por minuto. | Os projetos de IAP são limitados a um máximo de 360.000 solicitações por minuto. Se você encontrar esse erro, reduza o volume de solicitações do projeto. Entre em contato com o suporte do Google Cloud se tiver mais dúvidas. |
Código do erro 700, 701 | O pool de força de trabalho configurado não tem um provedor (700) ou mais de um provedor (701). | O IAP requer exatamente um provedor em um pool de força de trabalho para usar a federação de identidade de colaboradores. Consulte Limitações ao trabalhar com pools de força de trabalho. |
Código de erro 705 | O ID do cliente OAuth para usar o IAP com a federação de identidade de colaboradores está vazio. | Verifique se as etapas Criar um ID e um secret do cliente OAuth e Atualizar as configurações do IAP foram seguidas. |
Código do erro 4003 | Pode significar que a instância não está detectando na porta a que você está tentando se conectar ou o firewall está fechado. Qualquer um desses problemas também pode causar falha no teste de conectividade de inicialização para a instância de VM. | Verifique se o processo de detecção na VM está em execução e na porta correta. Além disso, verifique se o firewall do Google Cloud está configurado corretamente e aberto nessa porta. |
Código do erro 4010 | Uma conexão foi estabelecida, mas fechada pela instância de destino. Isso geralmente indica um problema na instância ou no programa que detecta atividade na porta de destino. | Redefina a instância. Se você estiver usando SSH para se conectar, verifique se há erros inesperados no registro auth.log . O local padrão do arquivo de registro é /var/log/ . Se não for possível acessar os registros usando SSH, tente usar o console serial ou desanexar e anexar o disco a uma nova VM para ver os registros. Anexe os registros ao entrar em contato com o suporte ao cliente. |
Código de erro 4033 | Você não tem permissão para acessar a instância, a instância não existe ou foi interrompida. | Verifique se o papel do IAM de usuário do túnel protegido pelo IAP foi aplicado ao recurso a que você está se conectando na página "Identity-Aware Proxy". |
Código do erro 4047 | A instância não existe ou está interrompida. | Verifique se a VM está ligada e se a inicialização foi concluída. |
Se você não conseguir resolver o problema, entre em contato com o suporte ao cliente com a descrição do erro e a resposta recebida de uma chamada GET
para a API. Remova a chave secreta do cliente da resposta.