Questo articolo contiene domande frequenti su Identity-Aware Proxy (IAP).
Quali app posso proteggere con IAP?
IAP può essere utilizzato con:
- Ambiente standard di App Engine e flessibilità di App Engine le tue app di ambiente.
- Istanze di Compute Engine con servizi di backend di bilanciamento del carico HTTP(S).
- nei container di Google Kubernetes Engine.
- App Cloud Run con servizi di backend di bilanciamento del carico HTTP(S).
Attualmente, IAP non può essere utilizzato con Cloud CDN.
Perché appare il carattere # alla fine del mio URL dopo aver eseguito l'accesso alla mia app?
In alcuni browser e in determinate condizioni, è possibile aggiungere #
alla porzione
URL dopo l'autenticazione. È normale e non causerà problemi quando esegui l'accesso.
Perché le mie richieste non vanno a buon fine e restituiscono un codice di stato 405 Metodo non consentito?
Ciò può essere causato dalla mancata associazione di cookie alle richieste. Per impostazione predefinita, I metodi JavaScript non associano cookie alle richieste.
La modalità di inclusione dei cookie varia a seconda del metodo di richiesta. Ad esempio:
inviate con un
Oggetto XMLHttpRequest
è necessario che la proprietà withCredentials
sia impostata su true
, mentre le richieste inviate con
API Fetch
è necessario impostare l'opzione credentials
su include
o same-origin
.
Per informazioni sulla gestione degli errori che si verificano solo dopo che è trascorso un po' di tempo, consulta Gestione delle sessioni IAP.
Perché ricevo un codice di stato HTTP 401 Autorizzazione non consentita anziché un reindirizzamento HTTP 302?
IAP risponde con un codice di stato 302 Redirect
quando un client
sia configurata per gestire i reindirizzamenti. Per indicare che il cliente può gestire
reindirizzamenti, assicurati che HTTP Accept="text/html,*/*"
sia nell'intestazione di
richieste.
Perché le richieste POST non attivano i reindirizzamenti?
Per attivare i reindirizzamenti, assicurati che le chiamate all'API IAP non siano richieste POST. I browser non eseguono il reindirizzamento in risposta alle richieste POST. Poiché
di questo, IAP risponde con un codice di stato 401 Unauthorized
anziché 302 Redirect
.
Se hai bisogno di IAP per gestire le richieste POST, assicurati che Nell'intestazione della richiesta vengono passati un token ID o cookie validi.
Includi il token ID in un'intestazione Authorization: Bearer
per creare un
richiesta autenticata alla risorsa protetta da IAP.
Ottieni cookie validi aggiornando la sessione.
Posso utilizzare IAP se ho disabilitato l'API?
Sì, l'accesso alle risorse protette con IAP funziona con l'API è disabilitata, ma non potrai apportare modifiche a IAM autorizzazioni aggiuntive.
Come posso impedire agli utenti con il ruolo Proprietario di utilizzare IAP per TCP?
Innanzitutto, evita di utilizzare il più possibile il ruolo Proprietario (roles/owner
). Proprietario
concede ampie autorizzazioni in Google Cloud. L'assegnazione di un punteggio più granulare
ruoli e autorizzazioni possono aumentare la sicurezza del progetto. Per scoprire di più, consulta le best practice per IAM.
Se non riesci a ridurre l'utilizzo del ruolo Proprietario, puoi bloccare IAP per TCP utilizzando le regole firewall.
Quale dominio utilizza IAP per TCP?
IAP utilizza i seguenti domini di proprietà di Google:
tunnel.cloudproxy.app
mtls.tunnel.cloudproxy.app
se accesso basato su certificato sia abilitato.
Se ti connetti tramite un server proxy o un firewall, assicurati che consentano il traffico verso questi domini e che non blocchino l'utilizzo delle connessioni WebSocket.
Se blocchi il traffico verso questi domini, non potrai utilizzare IAP per TCP. Potresti ricevere uno dei vari messaggi di errore.
Se utilizzi gcloud
, il messaggio di errore potrebbe essere
Error while connecting [[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed
Se utilizzi Accedi tramite SSH dal browser all'errore il messaggio è
Cloud Identity-Aware Proxy Failed
Nessun codice di errore associato.
Perché viene visualizzato l'errore Server Error
?
Se ricevi il seguente messaggio di errore, è possibile che il firewall non consenta gli IP 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 gli IP del bilanciatore del carico 130.211.0.0/22
e 35.191.0.0/16
non riescono a raggiungere il backend, le tue applicazioni potrebbero non essere accessibili. Per ulteriori informazioni, consulta Configurazione di un bilanciatore del carico HTTPS esterno.
Se utilizzi IAP per TCP per connetterti a una VM specifica, la VM deve accettare connessioni da indirizzi nell'intervallo 35.235.240.0/20
.
Perché ricevo errori intermittenti del server?
Un messaggio di errore nel seguente formato indica un errore interno:
An internal server error occurred while authorizing your request. Error code X
Gli errori interni con i codici di errore 1
, 30
, 62
, 63
, 64
o 703
indicano
di backend. Una bassa percentuale di questi errori di backend spesso indica un passaggio
problema. I client devono riprovare a eseguire la richiesta utilizzando il backoff esponenziale.
Come faccio a risolvere gli errori di superamento della quota (codice di errore 429)?
Il codice di errore 429 indica che il traffico verso l'applicazione è limitato per IAP. IAP applica un limite di 360.000 richieste al minuto per progetto. Se ci sono più applicazioni ospitate in un singolo progetto, vengono applicate alle richieste totali ricevute da tutte IAP le applicazioni presenti nel progetto.
Se riscontri errori di quota superata da IAP, ecco alcune tecniche che puoi applicare per risolvere il problema. * Sconsigliamo di eseguire i test di carico nelle istanze di produzione. Se l'aumento del carico è dovuto ai test di carico, ti consigliamo di trovare alternative percorsi di rete della tua applicazione che non richiamano IAP.
Se la tua applicazione riceve un elevato traffico da servizio a servizio, ti consigliamo di implementare il backoff esponenziale lato client per gestire in modo corretto gli errori 429.
Se nello stesso progetto sono presenti più applicazioni con traffico elevato, valuta la possibilità di spostarne alcune in un progetto diverso.
Se l'applicazione è creata come API anziché come applicazione web, prendi in considerazione con soluzioni gateway API come Apigee.
Se il motivo dell'elevato traffico è la crescita organica, contatta l'assistenza Google Cloud per richiedere un aumento del limite di quota.
Codici di errore
Nella tabella seguente sono elencati i codici di errore e i messaggi comuni che vengono restituiti quando la configurazione e l'uso di IAP.
Codice o messaggio di errore | Descrizione | Risoluzione dei problemi |
---|---|---|
Codice di errore 7 | I valori del secret o dell'ID client OAuth sono vuoti. | Verifica che l'ID client e il secret siano configurati correttamente per l'app visualizzando la pagina Credenziali. Se l'ID client e il secret sono configurati correttamente, utilizza il metodo GET per visualizzare lo stato attuale e il metodo PATCH per reimpostare l'ID client e il secret: • API Compute Engine: GET , PATCH • API App Engine: GET , PATCH |
Codice di errore 9 | Un reindirizzamento OAuth non è stato completato. | Si tratta di un errore interno che è stato registrato per la revisione. |
Codice di errore 9 (con regole di riscrittura del percorso) | Un reindirizzamento OAuth non è stato completato. | Le regole di riscrittura del percorso del bilanciatore del carico Google Cloud interferiscono con la capacità di IAP di completare correttamente un flusso OAuth. Se ospiti più backend dietro il bilanciatore del carico Google Cloud e utilizzi regole di riscrittura del percorso, assicurati che entrambi i backend utilizzino gli stessi ID client OAuth per IAP. Puoi modificare un ID client OAuth per un servizio di backend utilizzando il comando gcloud compute backend-services update. |
Codice di errore 11 | L'ID client OAuth non è configurato correttamente. | Verifica che l'ID client e il secret siano configurati correttamente per l'app visualizzando la pagina Credenziali. Se l'ID client e il secret sono configurati correttamente, utilizza il metodo GET per visualizzare lo stato attuale e il metodo PATCH per reimpostare l'ID client e il secret: • API Compute Engine: GET , PATCH • API App Engine: GET , PATCH |
Codice di errore 13 | Il tuo token OpenID Connect (OIDC) non è valido. | Assicurati che l'ID client configurato per l'IAP non venga eliminato visualizzando la pagina Credenziali. |
Codice di errore 51 | Il tuo browser non supporta il pool di connessioni. | Un browser aggiornato e aggiornato può gestire gli errori di pooling di connessioni. Assicurati che gli utenti finali utilizzino un browser aggiornato e aggiornato. Per saperne di più, vedi Limitare l'accesso alle risorse a domini specifici. |
Codice di errore 52 | Il nome host fornito non corrisponde al certificato SSL sul server. | L'amministratore di sistema potrebbe dover aggiornare il certificato SSL. Per ulteriori informazioni, vedi Limitare l'accesso alle risorse a domini specifici. |
Codice di errore 53 | Il nome host non corrisponde ai domini consentiti dall'amministratore IAP. | L'amministratore deve aggiornare l'elenco dei domini consentiti in modo che includa il tuo nome host. Per ulteriori informazioni, vedi Limitare l'accesso alle risorse a domini specifici. |
Codice di errore 429 | Il tuo progetto supera la soglia al minuto per le richieste. | I progetti IAP sono limitati a un massimo di 360.000 richieste al minuto. Se si verifica questo errore, riduci il volume delle richieste per il tuo progetto. Per ulteriori domande, puoi contattare l'assistenza Google Cloud. |
Codice di errore 700, 701 | Il pool di forza lavoro configurato non ha un provider (700) o più di un provider (701). | IAP richiede esattamente un provider in un pool di forza lavoro per utilizzare la federazione delle identità per la forza lavoro. Vedi Limitazioni quando si lavora con i pool di forza lavoro. |
Codice di errore 705 | L'ID client OAuth per l'utilizzo di IAP con la federazione delle identità per la forza lavoro è vuoto. | Verifica di aver seguito i passaggi Creare un ID client e un secret OAuth e Aggiornare le impostazioni IAP. |
Codice di errore 4003 | Questo potrebbe significare che l'istanza non è in ascolto sulla porta a cui stai tentando di connetterti o che il firewall è chiuso. Entrambi questi problemi potrebbero causare l'esito negativo del test di connettività di avvio all'istanza VM. | Assicurati che il processo di ascolto sulla VM sia in esecuzione e sia in ascolto sulla porta corretta. Verifica inoltre che il firewall di Google Cloud sia configurato correttamente e aperto sulla porta a cui ti connetti. |
Codice di errore 4010 | Una connessione è stata stabilita, ma chiusa dall'istanza di destinazione. Questo di solito indica un problema con l'istanza o il programma di ascolto sulla porta di destinazione. | Reimposta l'istanza. Se utilizzi SSH per connetterti, controlla se nel log auth.log sono presenti errori imprevisti. Il percorso predefinito per il file di log è /var/log/ . Se non riesci ad accedere ai log tramite SSH, prova a utilizzare la console seriale o a scollegare e ricollegare il disco a una nuova VM per visualizzare i log. Allega i log quando contatti l'assistenza clienti. |
Codice di errore 4033 | Non hai l'autorizzazione per accedere all'istanza, l'istanza non esiste o è stata arrestata. | Per assicurarti di aver applicato il ruolo IAM Tunnel User con protezione IAP alla risorsa a cui ti stai connettendo, visualizza la pagina Identity-Aware Proxy. |
Codice di errore 4047 | L'istanza non esiste o è stata arrestata. | Assicurati che la VM sia accesa e che abbia completato l'avvio. |
Se non riesci a risolvere il problema, contatta il Supporto clienti per
la descrizione dell'errore e la risposta che ricevi da una chiamata GET
al
tramite Google Cloud CLI
o tramite l'API Compute Engine. Puoi rimuovere il client secret dalla risposta.