Autenticazione degli sviluppatori

Oltre alle azioni amministrative come la creazione, l'aggiornamento e l'eliminazione dei servizi, gli sviluppatori spesso vogliono testare i servizi privatamente prima di rilasciarli. Questa opzione riguarda i servizi Cloud Run e non i job Cloud Run.

Prima di iniziare

Assicurati di concedere le autorizzazioni per accedere ai servizi per i quali esegui l'autenticazione. Devi concedere il ruolo Invoker di Cloud Run allo sviluppatore o al gruppo di sviluppatori:

Interfaccia utente della console

  1. Vai alla console Google Cloud:

    Vai alla console Google Cloud

  2. Seleziona il servizio, ma non fare clic su di esso.

  3. Fai clic sulla scheda Autorizzazioni nel riquadro sulla destra. Potrebbe essere necessario fare prima clic su Mostra riquadro informazioni nell'angolo in alto a destra.

  4. Fai clic su Aggiungi membri.

  5. Nel campo Aggiungi membri, inserisci l'indirizzo email dell'account sviluppatore.

  6. Seleziona il ruolo Cloud Run Invoker dal menu a discesa Seleziona un ruolo.

  7. 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 o group 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'
    

Test del servizio privato

Utilizzo del 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 proxy a http://localhost:8080 (o alla porta specificata con --port), fornendo il token dell'account attivo o un altro token specificato. Puoi utilizzare un browser web o uno strumento come curl.
Questo è il metodo consigliato per testare privatamente un sito web o un'API nel browser.

Puoi eseguire il proxy locale di un servizio utilizzando il comando seguente:

gcloud beta run services proxy SERVICE --project PROJECT-ID

Uso: 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 trasmettere un token di identità valido per un utente con l'autorizzazione run.routes.invoke, ad esempio Amministratore Cloud Run o Invoker di Cloud Run. Consulta la pagina relativa ai ruoli IAM di Cloud Run per l'elenco completo dei ruoli e delle relative autorizzazioni.

Come mostrato nell'esempio, per ottenere un token di identità valido per l'identità attualmente collegata a gcloud, puoi utilizzare gcloud auth print-identity-token. Tieni presente che i token ID generati utilizzando il comando gcloud devono essere utilizzati solo in un'impostazione di sviluppo, poiché non è necessario specificare "audience". La richiesta di audience riduce il rischio di attacchi di riproduzione. Al contrario, audience è obbligatorio per la generazione di token dagli account di servizio.