Oltre alle azioni amministrative come la creazione, l'aggiornamento e l'eliminazione di servizi, gli sviluppatori spesso vogliono testare i servizi in privato prima di rilasciarli. Questa opzione è per i servizi Cloud Run e non per i job Cloud Run.
Prima di iniziare
Assicurati di concedere le autorizzazioni per accedere ai servizi per cui esegui l'autenticazione. Devi concedere il ruolo Invoker di Cloud Run allo sviluppatore o al gruppo di sviluppatori:
Interfaccia utente della console
Vai alla console Google Cloud:
Seleziona il servizio, ma non fare clic.
Fai clic sulla scheda Autorizzazioni nel riquadro laterale a destra. (potresti aver bisogno fai clic prima sul riquadro Mostra informazioni nell'angolo in alto a destra.)
Fai clic su Aggiungi entità.
Nel campo Nuove entità, inserisci l'indirizzo email dell'account sviluppatore.
Seleziona il ruolo
Cloud Run Invoker
dal menu a discesa Seleziona un ruolo.Fai clic su Salva.
gcloud
Utilizza il comando gcloud run services add-iam-policy-binding
:
gcloud run services add-iam-policy-binding SERVICE \ --member='USER:EMAIL' \ --role='roles/run.invoker'
dove
- SERVICE è il nome del servizio.
- USER è il valore
user
ogroup
a seconda che tu stia autorizzando un singolo sviluppatore o un gruppo. EMAIL è l'account email.
Ad esempio:
gcloud run services add-iam-policy-binding myservice \ --member='user:test-user@gmail.com' \ --role='roles/run.invoker'
Testa il servizio privato
Puoi utilizzare il proxy Cloud Run o curl
per testare il tuo servizio privato.
Utilizzare il proxy Cloud Run in Google Cloud CLI
Il modo più semplice per testare i servizi privati è utilizzare il
proxy Cloud Run in Google Cloud CLI.
In questo modo, il servizio privato viene eseguito in proxy su http://localhost:8080
(o sulla porta specificata con --port
),
fornendo il token dell'account attivo o un altro token specificato.
In questo modo puoi utilizzare un browser web o uno strumento come curl
.
Questo è il metodo consigliato per testare in privato un sito web o un'API nel tuo browser.
Puoi eseguire il proxy di un servizio localmente utilizzando la riga di comando seguente in un ambiente Linux: macOS, WSL (opzione preferita), o cygwin:
gcloud run services proxy SERVICE --project PROJECT-ID
Utilizza curl
In alternativa, puoi testare i servizi privati senza il proxy utilizzando uno strumento
come curl
e passando un token di autenticazione nell'intestazione Authorization
:
curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" SERVICE_URL
Affinché il comando curl
funzioni, devi passare un token ID valido
per un utente con l'autorizzazione run.routes.invoke
, ad esempio
Amministratore Cloud Run o Invoker di Cloud Run. Consulta
Ruoli IAM di Cloud Run per l'elenco completo
di ruoli e delle relative autorizzazioni associate.
Per ottenere un token ID valido per l'identità che ha eseguito l'accesso all'interfaccia a riga di comando gcloud,
utilizza il comando gcloud auth print-identity-token
. Puoi utilizzare i token creati da Google Cloud CLI per richiamare richieste HTTP in qualsiasi progetto, a condizione che il tuo account disponga dell'autorizzazione run.routes.invoke
sul servizio.
A scopo di sviluppo, utilizza i token ID generati dalla gcloud CLI. Tuttavia, puoi notare che questi token non presentano una dichiarazione del pubblico, il che li rende suscettibili e ripetere gli attacchi. Negli ambienti di produzione, utilizza i token ID emessi per un account di servizio con il pubblico appropriato specificato. Questo approccio migliora la sicurezza limitando l'utilizzo dei token solo al servizio previsto. Per gli Account non Google: Utilizzare la Federazione delle identità per la forza lavoro per richiamare il tuo servizio Cloud Run in modo da non dover scaricare chiave dell'account di servizio.
Ti consigliamo di assegnare l'insieme minimo di autorizzazioni necessarie per sviluppare e utilizzare i tuoi servizi. Assicurati che i ruoli IAM i criteri dei tuoi servizi sono limitati al numero minimo di utenti e account di servizio.