Questa pagina spiega come creare credenziali di breve durata per un account di servizio, che puoi utilizzare per impersonare il service account. A seconda del tipo di token che crei, il token di breve durata fornisce l'identità (per i token ID) o le autorizzazioni (per i token di accesso) associate al service account.
Se l'architettura del tuo sistema richiede l'utilizzo di una serie di chiamate di generazione di token, puoi utilizzare una catena di delega costituita da più service account. Nella maggior parte dei casi, il metodo diretto, come spiegato in questa pagina, è sufficiente.
Prima di iniziare
-
Attiva le API IAM e Service Account Credentials:
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre del ruolo IAM Amministratore utilizzo dei servizi (
roles/serviceusage.serviceUsageAdmin), che include l'autorizzazioneserviceusage.services.enable. Scopri come concedere i ruoli.gcloud services enable iam.googleapis.com
iamcredentials.googleapis.com Configurare l'autenticazione.
Seleziona la scheda relativa a come intendi utilizzare i campioni in questa pagina:
Console
Quando utilizzi la console Google Cloud per accedere ai servizi Google Cloud e alle API, non devi configurare l'autenticazione.
gcloud
Nella console Google Cloud , attiva Cloud Shell.
Nella parte inferiore della console Google Cloud viene avviata una sessione di Cloud Shell e viene visualizzato un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installata e con valori già impostati per il progetto corrente. L'inizializzazione della sessione può richiedere alcuni secondi.
Go
Per utilizzare gli esempi di Go in questa pagina in un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
-
Installa Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Se utilizzi una shell locale, crea credenziali di autenticazione locali per il tuo account utente:
gcloud auth application-default login
Non è necessario eseguire questa operazione se utilizzi Cloud Shell.
Se viene restituito un errore di autenticazione e utilizzi un provider di identità (IdP) esterno, verifica di aver acceduto a gcloud CLI con la tua identità federata.
Per saperne di più, consulta Configura ADC per un ambiente di sviluppo locale nella documentazione sull'autenticazione di Google Cloud .
Java
Per utilizzare gli esempi Java in questa pagina in un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
-
Installa Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Se utilizzi una shell locale, crea credenziali di autenticazione locali per il tuo account utente:
gcloud auth application-default login
Non è necessario eseguire questa operazione se utilizzi Cloud Shell.
Se viene restituito un errore di autenticazione e utilizzi un provider di identità (IdP) esterno, verifica di aver acceduto a gcloud CLI con la tua identità federata.
Per saperne di più, consulta Configura ADC per un ambiente di sviluppo locale nella documentazione sull'autenticazione di Google Cloud .
Node.js
Per utilizzare gli esempi di Node.js in questa pagina in un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
-
Installa Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Se utilizzi una shell locale, crea credenziali di autenticazione locali per il tuo account utente:
gcloud auth application-default login
Non è necessario eseguire questa operazione se utilizzi Cloud Shell.
Se viene restituito un errore di autenticazione e utilizzi un provider di identità (IdP) esterno, verifica di aver acceduto a gcloud CLI con la tua identità federata.
Per saperne di più, consulta Configura ADC per un ambiente di sviluppo locale nella documentazione sull'autenticazione di Google Cloud .
Python
Per utilizzare gli esempi di Python in questa pagina in un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.
-
Installa Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Se utilizzi una shell locale, crea credenziali di autenticazione locali per il tuo account utente:
gcloud auth application-default login
Non è necessario eseguire questa operazione se utilizzi Cloud Shell.
Se viene restituito un errore di autenticazione e utilizzi un provider di identità (IdP) esterno, verifica di aver acceduto a gcloud CLI con la tua identità federata.
Per saperne di più, consulta Configura ADC per un ambiente di sviluppo locale nella documentazione sull'autenticazione di Google Cloud .
REST
Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, utilizzi le credenziali che fornisci a gcloud CLI.
Installa Google Cloud CLI.
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
Per saperne di più, consulta Autenticati per usare REST nella documentazione sull'autenticazione di Google Cloud .
-
Informazioni sugli service account IAM.
Informazioni sulla simulazione dell'identità dei service account.
Scopri di che tipo di token hai bisogno e segui i passaggi appropriati forniti nelle sezioni seguenti:
Crea un token di accesso di breve durata
I token di accesso sono accettati per l'autenticazione dalla maggior parte delle API di Google. Quando generi un token di accesso utilizzando la simulazione dell'identità del account di servizio, il token di accesso non include un token di aggiornamento, il che significa che quando il token scade, devi ripetere la procedura di simulazione dell'identità per generarne uno nuovo.
Per maggiori informazioni, vedi Token di accesso.
Per creare un token di accesso di breve durata, completa queste attività:
Fornire le autorizzazioni richieste
Una richiesta diretta coinvolge due identità: il chiamante che richiede la credenziale e il account di servizio per cui viene creata la credenziale. La configurazione delle autorizzazioni dipende dal fatto che il chiamante esegua l'autenticazione come account di servizio o come account utente.
Se vuoi eseguire un comando REST o gcloud CLI in questa pagina in un ambiente di sviluppo locale, il chiamante può essere rappresentato dalle credenziali utente. Per i workload automatizzati, ad esempio un'applicazione in esecuzione su Compute Engine, il chiamante deve essere rappresentato da un account di servizio.
Service account
Quando l'applicazione chiamante utilizza un account di servizio come identità, sono coinvolti i seguenti principal:
Account di servizio del chiamante (
CALLER_SA)Questo account di servizio rappresenta l'applicazione chiamante, che invia la richiesta per le credenziali di breve durata.
-
Account di servizio con privilegi (
PRIV_SA)A questo account di servizio vengono concessi i ruoli IAM necessari per il token di breve durata. Questo è il account di servizio per cui viene creato il token di breve durata.
Per concedere a CALLER_SA le autorizzazioni per creare credenziali
di breve durata per PRIV_SA, concedi a
CALLER_SA il ruolo Creatore token service account
(roles/iam.serviceAccountTokenCreator) su PRIV_SA.
Concedi il ruolo richiesto su PRIV_SA:
Console
-
Nella console Google Cloud , vai alla pagina Service account.
- Seleziona un progetto.
-
Fai clic sull'indirizzo email del account di servizio con privilegi,
PRIV_SA. - Fai clic sulla scheda Autorizzazioni.
- In Entità con accesso a questo service account, fai clic su Concedi l'accesso.
-
Inserisci l'indirizzo email del account di servizio del chiamante,
CALLER_SA.Ad esempio,
demo@my-project.iam.gserviceaccount.com. -
Seleziona il ruolo Creatore token service account
(
roles/iam.serviceAccountTokenCreator). - Fai clic su Salva per concedere il ruolo al account di servizio.
gcloud
Il comando
gcloud iam service-accounts add-iam-policy-binding
concede un ruolo su un account di servizio.
Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:
-
PRIV_SA: l'indirizzo email del account di servizio con privilegi per cui viene generato il token. -
CALLER_SA: l'indirizzo email del account di servizio che rappresenta l'applicazione che richiede il token di breve durata.
Esegui questo comando:
Linux, macOS o Cloud Shell
gcloud iam service-accounts add-iam-policy-binding PRIV_SA \ --member=serviceAccount:CALLER_SA --role=roles/iam.serviceAccountTokenCreator --format=json
Windows (PowerShell)
gcloud iam service-accounts add-iam-policy-binding PRIV_SA ` --member=serviceAccount:CALLER_SA --role=roles/iam.serviceAccountTokenCreator --format=json
Windows (cmd.exe)
gcloud iam service-accounts add-iam-policy-binding PRIV_SA ^ --member=serviceAccount:CALLER_SA --role=roles/iam.serviceAccountTokenCreator --format=json
Dovresti ricevere una risposta simile alla seguente:
Updated IAM policy for serviceAccount [PRIV_SA].
{
"bindings": [
{
"members": [
"serviceAccount:CALLER_SA"
],
"role": "roles/iam.serviceAccountTokenCreator"
}
],
"etag": "BwXhCB4eyjY=",
"version": 1
}
REST
-
Leggi la policy di autorizzazione per
PRIV_SA:Il metodo
serviceAccounts.getIamPolicyrecupera il criterio di autorizzazione di un account di servizio.Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
PROJECT_ID: il tuo ID progetto Google Cloud . Gli ID progetto sono stringhe alfanumeriche, comemy-project.-
PRIV_SA: l'indirizzo email del account di servizio con privilegi per cui viene creato il token di breve durata. POLICY_VERSION: La versione della policy da restituire. Le richieste devono specificare la versione più recente delle norme, ovvero la versione 3. Per maggiori dettagli, vedi Specificare una versione delle norme quando si recuperano le norme.
Metodo HTTP e URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA:getIamPolicy
Corpo JSON della richiesta:
{ "options": { "requestedPolicyVersion": POLICY_VERSION } }Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "user:my-user@example.com" ] } ] }Se non hai concesso ruoli al account di servizio, la risposta contiene solo un valore
etag. Includi questo valoreetagnel passaggio successivo. -
Modifica la policy di autorizzazione per concedere a
CALLER_SAil ruolo Creatore token service account (roles/iam.serviceAccountTokenCreator).Ad esempio, per modificare la risposta di esempio del passaggio precedente, aggiungi quanto segue:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "user:my-user@example.com" ] }, { "role": "roles/iam.serviceAccountTokenCreator", "members": [ "serviceAccount:CALLER_SA" ] } ] }
-
Scrivi la policy di autorizzazione aggiornata:
Il metodo
serviceAccounts.setIamPolicyimposta un criterio di autorizzazione aggiornato per il account di servizio.Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
PROJECT_ID: il tuo ID progetto Google Cloud . Gli ID progetto sono stringhe alfanumeriche, comemy-project.-
PRIV_SA: l'indirizzo email del account di servizio con privilegi per il quale viene creato il token di breve durata. POLICY_VERSION: La versione della policy da restituire. Le richieste devono specificare la versione più recente delle norme, ovvero la versione 3. Per maggiori dettagli, vedi Specificare una versione delle norme quando si recuperano le norme.-
POLICY: una rappresentazione JSON della policy che vuoi impostare. Per ulteriori informazioni sul formato di una policy, consulta il riferimento alle policy.Ad esempio, per impostare la policy di autorizzazione mostrata nel passaggio precedente, sostituisci
POLICYcon quanto segue, doveCALLER_SAè il account di servizio che crea il token di breve durata:{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "user:my-user@example.com" ] }, { "role": "roles/iam.serviceAccountTokenCreator", "members": [ "serviceAccount:CALLER_SA" ] } ] }
Metodo HTTP e URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA:setIamPolicy
Corpo JSON della richiesta:
{ "policy": POLICY }Per inviare la richiesta, espandi una di queste opzioni:
La risposta contiene la policy di autorizzazione aggiornata.
Credenziali utente
Quando vuoi utilizzare Google Cloud CLI per generare token di breve durata o vuoi generare token di breve durata da un ambiente di sviluppo locale, puoi utilizzare un account utente per generare i token. Spesso puoi utilizzare il tuo account utente.
Quando utilizzi un account utente per generare token di breve durata, sono coinvolte le seguenti identità:
Account del chiamante (
CALLER_ACCOUNT)Questo account utente viene utilizzato per generare credenziali di breve durata per l'account di servizio con privilegi.
Account di servizio con privilegi (
PRIV_SA)A questo account di servizio vengono concessi i ruoli IAM necessari per il token di breve durata. Questo è il account di servizio per cui viene creato il token di breve durata.
Per consentire a CALLER_ACCOUNT di creare credenziali
di breve durata per PRIV_SA, concedi
a CALLER_ACCOUNT il ruolo Creatore token account di servizio
(roles/iam.serviceAccountTokenCreator) su PRIV_SA.
Concedi il ruolo richiesto su PRIV_SA:
Console
-
Nella console Google Cloud , vai alla pagina Service account.
- Seleziona un progetto.
-
Fai clic sull'indirizzo email del account di servizio con privilegi,
PRIV_SA. - Fai clic sulla scheda Autorizzazioni.
- In Entità con accesso a questo service account, fai clic su Concedi l'accesso.
-
Inserisci l'identificatore dell'entità dell'account chiamante,
CALLER_ACCOUNT.Ad esempio,
my-user@example.com. -
Seleziona il ruolo Creatore token service account
(
roles/iam.serviceAccountTokenCreator). - Fai clic su Salva per concedere il ruolo all'account utente.
gcloud
Il comando
gcloud iam service-accounts add-iam-policy-binding
concede un ruolo su un account di servizio.
Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:
-
PRIV_SA: l'indirizzo email del account di servizio con privilegi per cui viene generato il token. -
CALLER_ACCOUNT: l'indirizzo email dell'account utente utilizzato per richiedere il token di breve durata.
Esegui questo comando:
Linux, macOS o Cloud Shell
gcloud iam service-accounts add-iam-policy-binding PRIV_SA \ --member=user:CALLER_ACCOUNT --role=roles/iam.serviceAccountTokenCreator --format=json
Windows (PowerShell)
gcloud iam service-accounts add-iam-policy-binding PRIV_SA ` --member=user:CALLER_ACCOUNT --role=roles/iam.serviceAccountTokenCreator --format=json
Windows (cmd.exe)
gcloud iam service-accounts add-iam-policy-binding PRIV_SA ^ --member=user:CALLER_ACCOUNT --role=roles/iam.serviceAccountTokenCreator --format=json
Dovresti ricevere una risposta simile alla seguente:
Updated IAM policy for serviceAccount [PRIV_SA].
{
"bindings": [
{
"members": [
"user:my-user@example.com"
],
"role": "roles/iam.serviceAccountTokenCreator"
}
],
"etag": "BwX1ZbefjXU=",
"version": 1
}
REST
-
Leggi la policy di autorizzazione per
PRIV_SA:Il metodo
serviceAccounts.getIamPolicyrecupera il criterio di autorizzazione di un account di servizio.Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
PROJECT_ID: il tuo ID progetto Google Cloud . Gli ID progetto sono stringhe alfanumeriche, comemy-project.-
PRIV_SA: l'indirizzo email del account di servizio con privilegi per cui viene creato il token di breve durata. POLICY_VERSION: La versione della policy da restituire. Le richieste devono specificare la versione più recente delle norme, ovvero la versione 3. Per maggiori dettagli, vedi Specificare una versione delle norme quando si recuperano le norme.
Metodo HTTP e URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA:getIamPolicy
Corpo JSON della richiesta:
{ "options": { "requestedPolicyVersion": POLICY_VERSION } }Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "user:my-user@example.com" ] } ] }Se non hai concesso ruoli al account di servizio, la risposta contiene solo un valore
etag. Includi questo valoreetagnel passaggio successivo. -
Modifica la policy di autorizzazione per concedere a
CALLER_ACCOUNTil ruolo Creatore token service account (roles/iam.serviceAccountTokenCreator).Ad esempio, per modificare la risposta di esempio del passaggio precedente, aggiungi quanto segue:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "user:my-user@example.com" ] }, { "role": "roles/iam.serviceAccountTokenCreator", "members": [ "user:my-user@example.com" ] } ] }
-
Scrivi la policy di autorizzazione aggiornata:
Il metodo
serviceAccounts.setIamPolicyimposta un criterio di autorizzazione aggiornato per il account di servizio.Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
PROJECT_ID: il tuo ID progetto Google Cloud . Gli ID progetto sono stringhe alfanumeriche, comemy-project.-
PRIV_SA: l'indirizzo email del account di servizio con privilegi per il quale viene creato il token di breve durata. POLICY_VERSION: La versione della policy da restituire. Le richieste devono specificare la versione più recente delle norme, ovvero la versione 3. Per maggiori dettagli, vedi Specificare una versione delle norme quando si recuperano le norme.-
POLICY: una rappresentazione JSON della policy che vuoi impostare. Per ulteriori informazioni sul formato di una policy, consulta il riferimento alle policy.Ad esempio, per impostare la policy di autorizzazione mostrata nel passaggio precedente, sostituisci
POLICYcon quanto segue, doveCALLER_ACCOUNTè l'account utente che crea il token temporaneo:{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "user:my-user@example.com" ] }, { "role": "roles/iam.serviceAccountTokenCreator", "members": [ "CALLER_ACCOUNT" ] } ] }
Metodo HTTP e URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA:setIamPolicy
Corpo JSON della richiesta:
{ "policy": POLICY }Per inviare la richiesta, espandi una di queste opzioni:
La risposta contiene la policy di autorizzazione aggiornata.
Genera il token di accesso
Puoi generare un token di accesso OAuth 2.0 utilizzando gcloud CLI, l'API REST o le librerie client di Cloud e le librerie client dell'API di Google.
Se utilizzi l'API REST e il tuo sistema è configurato per consentire durate dei token estese, puoi creare un token con una durata superiore a quella predefinita. Google Cloud CLI non supporta l'impostazione di una durata per il token.
Gli esempi riportati di seguito sono progettati per essere utilizzati in un ambiente di sviluppo locale; il chiamante deve essere rappresentato da un account utente, anziché da un account di servizio.
Genera un token di accesso OAuth 2.0 per un account di servizio:
gcloud
Assicurati di aver eseguito l'accesso a gcloud CLI con l'account utente chiamante.
Genera un token per il account di servizio utilizzando il comando
gcloud auth print-access-token.Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:
-
PRIV_SA: l'indirizzo email del account di servizio con privilegi per cui viene creato il token di breve durata.
Esegui questo comando:
Linux, macOS o Cloud Shell
gcloud auth print-access-token --impersonate-service-account=PRIV_SA
Windows (PowerShell)
gcloud auth print-access-token --impersonate-service-account=PRIV_SA
Windows (cmd.exe)
gcloud auth print-access-token --impersonate-service-account=PRIV_SA
Dovresti ricevere una risposta simile alla seguente:
WARNING: This command is using service account impersonation. All API calls will be executed as [my-sa@my-project.iam.gserviceaccount.com]. ya29.c.b0AXv0zTPnzTnDV8F8Aj5Fgy46Yf2v_v8eZIoKq7xGpfbpXuy23aQ1693m3gAuE8AZga7w6kdagN7a9bfdDYbdeoGY0CMHOClsCwIdutL7k_RFC672lOCbUgF5hS8Iu2nCA8hle-11LJXBLmaxFmH08ZTBJLuDrWSNd8cYqGYFunSC1K1qLIPBF18tsa0hxVgKPucI8b1A9L8_MK1JGLGcr0n7-zY77_lmbcdODG3NmIbLOGWOutjJgqSO_YoeCKK2QTUZIp5PG7RkKlXWnmYJA9pEahzNoQrs5sWZctc2bia9af_ITzqqlXC9h1Kj5-me6e8rd734MJvpagqYazRk0gGWpMb03XmMGpgPc_FBp4pnX9rGOzW83SNpcDz8zeFO1Q0Bo3N7CuZougjRce0y8I2_4rtw5ME_nV3wrCWa..................................................................................................................................................................................................................................................................................................
-
REST
Il metodo
serviceAccounts.generateAccessToken
dell'API Service Account Credentials genera un token di accesso OAuth 2.0 per un account di servizio.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
-
PRIV_SA: l'indirizzo email del account di servizio con privilegi per il quale viene creato il token di breve durata. -
LIFETIME: Il tempo che manca alla scadenza del token di accesso, in secondi. Ad esempio,300s.Per impostazione predefinita, la durata massima del token è di 1 ora (3600 secondi). Per estendere la durata massima di questi token a 12 ore (43.200 secondi), aggiungi il account di servizio a un criterio dell'organizzazione che includa il vincolo dell'elenco
constraints/iam.allowServiceAccountCredentialLifetimeExtension.
Metodo HTTP e URL:
POST https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/PRIV_SA:generateAccessToken
Corpo JSON della richiesta:
{
"scope": [
"https://www.googleapis.com/auth/cloud-platform"
],
"lifetime": "LIFETIME"
}
Per inviare la richiesta, espandi una di queste opzioni:
Se la richiesta generateAccessToken è andata a buon fine, il corpo della risposta
contiene un token di accesso OAuth 2.0 e un tempo di scadenza. accessToken può quindi
essere utilizzato per autenticare una richiesta per conto delaccount di serviziot fino al raggiungimento di
expireTime:
{
"accessToken": "eyJ0eXAi...NiJ9",
"expireTime": "2020-04-07T15:01:23.045123456Z"
}
Go
Java
Node.js
Python
Crea un token ID OpenID Connect (OIDC)
I token ID seguono la specifica OpenID Connect (OIDC). I token ID sono accettati da un numero limitato di servizi e applicazioni.
Per saperne di più, consulta Token ID e Autenticazione per applicazioni ospitate su Cloud Run o Cloud Run Functions.
Per creare un token ID, completa queste attività:
Fornisci le autorizzazioni richieste al chiamante.
Utilizza il ruolo Service Account OpenID Connect Identity Token Creator (
roles/iam.serviceAccountOpenIdTokenCreator) per creare un token ID. Si tratta di un ruolo diverso da quello utilizzato per altri tipi di token.
Fornire le autorizzazioni richieste
Una richiesta diretta coinvolge due identità: il chiamante che richiede la credenziale e il account di servizio per cui viene creata la credenziale. La configurazione delle autorizzazioni dipende dal fatto che il chiamante esegua l'autenticazione come account di servizio o come account utente.
Se vuoi eseguire un comando REST o gcloud CLI in questa pagina in un ambiente di sviluppo locale, il chiamante può essere rappresentato dalle credenziali utente. Per i workload automatizzati, ad esempio un'applicazione in esecuzione su Compute Engine, il chiamante deve essere rappresentato da un account di servizio.
Service account
Quando l'applicazione chiamante utilizza un account di servizio come identità, sono coinvolti i seguenti principal:
Account di servizio del chiamante (
CALLER_SA)Questo account di servizio rappresenta l'applicazione chiamante, che invia la richiesta per le credenziali di breve durata.
-
Account di servizio con privilegi (
PRIV_SA)A questo account di servizio vengono concessi i ruoli IAM necessari per il token di breve durata. Questo è il account di servizio per cui viene creato il token di breve durata.
Per concedere a CALLER_SA le autorizzazioni per creare credenziali
di breve durata per PRIV_SA, concedi a
CALLER_SA il ruolo Service Account OpenID Connect Identity Token Creator
(roles/iam.serviceAccountOpenIdTokenCreator) su PRIV_SA.
Concedi il ruolo richiesto su PRIV_SA:
Console
-
Nella console Google Cloud , vai alla pagina Service account.
- Seleziona un progetto.
-
Fai clic sull'indirizzo email del account di servizio con privilegi,
PRIV_SA. - Fai clic sulla scheda Autorizzazioni.
- In Entità con accesso a questo service account, fai clic su Concedi l'accesso.
-
Inserisci l'indirizzo email del account di servizio del chiamante,
CALLER_SA.Ad esempio,
demo@my-project.iam.gserviceaccount.com. -
Seleziona il ruolo Service Account OpenID Connect Identity Token Creator
(
roles/iam.serviceAccountOpenIdTokenCreator). - Fai clic su Salva per concedere il ruolo al account di servizio.
gcloud
Il comando
gcloud iam service-accounts add-iam-policy-binding
concede un ruolo su un account di servizio.
Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:
-
PRIV_SA: l'indirizzo email del account di servizio con privilegi per cui viene generato il token. -
CALLER_SA: l'indirizzo email del account di servizio che rappresenta l'applicazione che richiede il token di breve durata.
Esegui questo comando:
Linux, macOS o Cloud Shell
gcloud iam service-accounts add-iam-policy-binding PRIV_SA \ --member=serviceAccount:CALLER_SA --role=roles/iam.serviceAccountOpenIdTokenCreator --format=json
Windows (PowerShell)
gcloud iam service-accounts add-iam-policy-binding PRIV_SA ` --member=serviceAccount:CALLER_SA --role=roles/iam.serviceAccountOpenIdTokenCreator --format=json
Windows (cmd.exe)
gcloud iam service-accounts add-iam-policy-binding PRIV_SA ^ --member=serviceAccount:CALLER_SA --role=roles/iam.serviceAccountOpenIdTokenCreator --format=json
Dovresti ricevere una risposta simile alla seguente:
Updated IAM policy for serviceAccount [PRIV_SA].
{
"bindings": [
{
"members": [
"serviceAccount:CALLER_SA"
],
"role": "roles/iam.serviceAccountOpenIdTokenCreator"
}
],
"etag": "BwXhCB4eyjY=",
"version": 1
}
REST
-
Leggi la policy di autorizzazione per
PRIV_SA:Il metodo
serviceAccounts.getIamPolicyrecupera il criterio di autorizzazione di un account di servizio.Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
PROJECT_ID: il tuo ID progetto Google Cloud . Gli ID progetto sono stringhe alfanumeriche, comemy-project.-
PRIV_SA: l'indirizzo email del account di servizio con privilegi per cui viene creato il token di breve durata. POLICY_VERSION: La versione della policy da restituire. Le richieste devono specificare la versione più recente delle norme, ovvero la versione 3. Per maggiori dettagli, vedi Specificare una versione delle norme quando si recuperano le norme.
Metodo HTTP e URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA:getIamPolicy
Corpo JSON della richiesta:
{ "options": { "requestedPolicyVersion": POLICY_VERSION } }Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "user:my-user@example.com" ] } ] }Se non hai concesso ruoli al account di servizio, la risposta contiene solo un valore
etag. Includi questo valoreetagnel passaggio successivo. -
Modifica la policy di autorizzazione per concedere a
CALLER_SAil ruolo Service Account OpenID Connect Identity Token Creator (roles/iam.serviceAccountOpenIdTokenCreator).Ad esempio, per modificare la risposta di esempio del passaggio precedente, aggiungi quanto segue:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "user:my-user@example.com" ] }, { "role": "roles/iam.serviceAccountOpenIdTokenCreator", "members": [ "serviceAccount:CALLER_SA" ] } ] }
-
Scrivi la policy di autorizzazione aggiornata:
Il metodo
serviceAccounts.setIamPolicyimposta un criterio di autorizzazione aggiornato per il account di servizio.Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
PROJECT_ID: il tuo ID progetto Google Cloud . Gli ID progetto sono stringhe alfanumeriche, comemy-project.-
PRIV_SA: l'indirizzo email del account di servizio con privilegi per il quale viene creato il token di breve durata. POLICY_VERSION: La versione della policy da restituire. Le richieste devono specificare la versione più recente delle norme, ovvero la versione 3. Per maggiori dettagli, vedi Specificare una versione delle norme quando si recuperano le norme.-
POLICY: una rappresentazione JSON della policy che vuoi impostare. Per ulteriori informazioni sul formato di una policy, consulta il riferimento alle policy.Ad esempio, per impostare la policy di autorizzazione mostrata nel passaggio precedente, sostituisci
POLICYcon quanto segue, doveCALLER_SAè il account di servizio che crea il token di breve durata:{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "user:my-user@example.com" ] }, { "role": "roles/iam.serviceAccountOpenIdTokenCreator", "members": [ "serviceAccount:CALLER_SA" ] } ] }
Metodo HTTP e URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA:setIamPolicy
Corpo JSON della richiesta:
{ "policy": POLICY }Per inviare la richiesta, espandi una di queste opzioni:
La risposta contiene la policy di autorizzazione aggiornata.
Credenziali utente
Quando vuoi utilizzare Google Cloud CLI per generare token di breve durata o vuoi generare token di breve durata da un ambiente di sviluppo locale, puoi utilizzare un account utente per generare i token. Spesso puoi utilizzare il tuo account utente.
Quando utilizzi un account utente per generare token di breve durata, sono coinvolte le seguenti identità:
Account del chiamante (
CALLER_ACCOUNT)Questo account utente viene utilizzato per generare credenziali di breve durata per l'account di servizio con privilegi.
Account di servizio con privilegi (
PRIV_SA)A questo account di servizio vengono concessi i ruoli IAM necessari per il token di breve durata. Questo è il account di servizio per cui viene creato il token di breve durata.
Per consentire a CALLER_ACCOUNT di creare credenziali
di breve durata per PRIV_SA, concedi
a CALLER_ACCOUNT il ruolo Service Account OpenID Connect Identity Token Creator
(roles/iam.serviceAccountOpenIdTokenCreator) su PRIV_SA.
Concedi il ruolo richiesto su PRIV_SA:
Console
-
Nella console Google Cloud , vai alla pagina Service account.
- Seleziona un progetto.
-
Fai clic sull'indirizzo email del account di servizio con privilegi,
PRIV_SA. - Fai clic sulla scheda Autorizzazioni.
- In Entità con accesso a questo service account, fai clic su Concedi l'accesso.
-
Inserisci l'identificatore dell'entità dell'account chiamante,
CALLER_ACCOUNT.Ad esempio,
my-user@example.com. -
Seleziona il ruolo Service Account OpenID Connect Identity Token Creator
(
roles/iam.serviceAccountOpenIdTokenCreator). - Fai clic su Salva per concedere il ruolo all'account utente.
gcloud
Il comando
gcloud iam service-accounts add-iam-policy-binding
concede un ruolo su un account di servizio.
Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:
-
PRIV_SA: l'indirizzo email del account di servizio con privilegi per cui viene generato il token. -
CALLER_ACCOUNT: l'indirizzo email dell'account utente utilizzato per richiedere il token di breve durata.
Esegui questo comando:
Linux, macOS o Cloud Shell
gcloud iam service-accounts add-iam-policy-binding PRIV_SA \ --member=user:CALLER_ACCOUNT --role=roles/iam.serviceAccountOpenIdTokenCreator --format=json
Windows (PowerShell)
gcloud iam service-accounts add-iam-policy-binding PRIV_SA ` --member=user:CALLER_ACCOUNT --role=roles/iam.serviceAccountOpenIdTokenCreator --format=json
Windows (cmd.exe)
gcloud iam service-accounts add-iam-policy-binding PRIV_SA ^ --member=user:CALLER_ACCOUNT --role=roles/iam.serviceAccountOpenIdTokenCreator --format=json
Dovresti ricevere una risposta simile alla seguente:
Updated IAM policy for serviceAccount [PRIV_SA].
{
"bindings": [
{
"members": [
"user:my-user@example.com"
],
"role": "roles/iam.serviceAccountOpenIdTokenCreator"
}
],
"etag": "BwX1ZbefjXU=",
"version": 1
}
REST
-
Leggi la policy di autorizzazione per
PRIV_SA:Il metodo
serviceAccounts.getIamPolicyrecupera il criterio di autorizzazione di un account di servizio.Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
PROJECT_ID: il tuo ID progetto Google Cloud . Gli ID progetto sono stringhe alfanumeriche, comemy-project.-
PRIV_SA: l'indirizzo email del account di servizio con privilegi per cui viene creato il token di breve durata. POLICY_VERSION: La versione della policy da restituire. Le richieste devono specificare la versione più recente delle norme, ovvero la versione 3. Per maggiori dettagli, vedi Specificare una versione delle norme quando si recuperano le norme.
Metodo HTTP e URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA:getIamPolicy
Corpo JSON della richiesta:
{ "options": { "requestedPolicyVersion": POLICY_VERSION } }Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "user:my-user@example.com" ] } ] }Se non hai concesso ruoli al account di servizio, la risposta contiene solo un valore
etag. Includi questo valoreetagnel passaggio successivo. -
Modifica la policy di autorizzazione per concedere
CALLER_ACCOUNTil ruolo Service Account OpenID Connect Identity Token Creator (roles/iam.serviceAccountOpenIdTokenCreator).Ad esempio, per modificare la risposta di esempio del passaggio precedente, aggiungi quanto segue:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "user:my-user@example.com" ] }, { "role": "roles/iam.serviceAccountOpenIdTokenCreator", "members": [ "user:my-user@example.com" ] } ] }
-
Scrivi la policy di autorizzazione aggiornata:
Il metodo
serviceAccounts.setIamPolicyimposta un criterio di autorizzazione aggiornato per il account di servizio.Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
PROJECT_ID: il tuo ID progetto Google Cloud . Gli ID progetto sono stringhe alfanumeriche, comemy-project.-
PRIV_SA: l'indirizzo email del account di servizio con privilegi per il quale viene creato il token di breve durata. POLICY_VERSION: La versione della policy da restituire. Le richieste devono specificare la versione più recente delle norme, ovvero la versione 3. Per maggiori dettagli, vedi Specificare una versione delle norme quando si recuperano le norme.-
POLICY: una rappresentazione JSON della policy che vuoi impostare. Per ulteriori informazioni sul formato di una policy, consulta il riferimento alle policy.Ad esempio, per impostare la policy di autorizzazione mostrata nel passaggio precedente, sostituisci
POLICYcon quanto segue, doveCALLER_ACCOUNTè l'account utente che crea il token temporaneo:{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "user:my-user@example.com" ] }, { "role": "roles/iam.serviceAccountOpenIdTokenCreator", "members": [ "CALLER_ACCOUNT" ] } ] }
Metodo HTTP e URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA:setIamPolicy
Corpo JSON della richiesta:
{ "policy": POLICY }Per inviare la richiesta, espandi una di queste opzioni:
La risposta contiene la policy di autorizzazione aggiornata.
Genera il token ID
Puoi generare un token ID OpenID Connect (OIDC) utilizzando gcloud CLI, l'API REST o le librerie client Cloud e le librerie client dell'API di Google.
Gli esempi riportati di seguito sono progettati per essere utilizzati in un ambiente di sviluppo locale; il chiamante deve essere rappresentato da un account utente, anziché da un account di servizio.
I token ID OIDC sono validi per 1 ora (3600 secondi).
Genera un token ID OIDC firmato da Google per un account di servizio:
gcloud
Assicurati di aver eseguito l'accesso a gcloud CLI con l'account utente chiamante.
Genera un token per il account di servizio utilizzando il comando
gcloud auth print-identity-token.Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:
-
PRIV_SA: l'indirizzo email del account di servizio con privilegi per cui viene creato il token di breve durata. -
AUDIENCE_NAME: Il pubblico del token, in genere l'URL dell'applicazione o del servizio a cui verrà utilizzato per accedere.
Esegui questo comando:
Linux, macOS o Cloud Shell
gcloud auth print-identity-token --impersonate-service-account=PRIV_SA --audiences="AUDIENCE_NAME"
Windows (PowerShell)
gcloud auth print-identity-token --impersonate-service-account=PRIV_SA --audiences="AUDIENCE_NAME"
Windows (cmd.exe)
gcloud auth print-identity-token --impersonate-service-account=PRIV_SA --audiences="AUDIENCE_NAME"
Dovresti ricevere una risposta simile alla seguente:
WARNING: This command is using service account impersonation. All API calls will be executed as [my-sa@my-project.iam.gserviceaccount.com]. eyJhbGciOiJSUzI1NiIsImtpZDNhMDg4ZDRmZmMjJkYTVmZTM5MDZjY2MiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJ3d3cuZXhhbXBsJhenAiOiIxMTYzwNDYyMDk0ODIiLCJleHAiOjE2NTQ4ODU0MzEsImlhdCI6MTY1NDg4MTgzMSwiaXN6Ly9hY2NvdW50cy5nb29nbGUuY29tIiwic3ViIMDQ2MjA5NDgyIn0.F7mu8IHj5VQdu7ItFrnYAKyGd7YqXuOP_rFLc98q8BaFBycAF1zAQnSnwqnSUXba0UK9PDT_-IOry68qLwBObz4XlX9lk0ehpN0O0W9FcFToKLB6wefXXPd4h7xtuPe5KzmpSOqj2Qqv34HriGw00Nqd-oGSgNY_lZ4wGEf4rT4oQa_kEcrY57Q2G6pwd769BhgeFwoLi5aK_Cv2kvf_zfMszC-xlkP9zwWQ8XinJBwe-qcQBa4NTgrbueNtXsEjccBS366zmw
-
REST
Il metodo
serviceAccounts.generateIdToken
dell'API Service Account Credentials genera un token ID OIDC per un account di servizio.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
-
PRIV_SA: l'indirizzo email del account di servizio con privilegi per cui viene creato il token di breve durata. -
AUDIENCE_NAME: Il pubblico del token, in genere l'URL dell'applicazione o del servizio a cui verrà utilizzato per accedere.
Metodo HTTP e URL:
POST https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/PRIV_SA:generateIdToken
Corpo JSON della richiesta:
{
"audience": "AUDIENCE_NAME",
"includeEmail": "true"
}
Per inviare la richiesta, espandi una di queste opzioni:
Se la richiesta generateId è andata a buon fine, il corpo della risposta
contiene un token ID valido per un'ora. Il token può quindi essere utilizzato per
autenticare una richiesta per conto del account di servizio:
{
"token": "eyJ0eXAi...NiJ9"
}
Crea un token web JSON (JWT) autofirmato
I token web JSON (JWT) autofirmati sono utili in una serie di scenari:
- Comunicare in modo sicuro tra le tue applicazioni. In questo scenario, un'applicazione può firmare un token che può essere verificato da un'altra applicazione a fini di autenticazione.
- Autenticazione di una chiamata a un'API di Google come descritto in Autorizzazione del service account senza OAuth.
- Autenticazione a un'API di cui è stato eseguito il deployment con API Gateway.
- Trattare un account di servizio come un provider di identità firmando un JWT che contiene rivendicazioni arbitrarie su un utente, un account o un dispositivo.
Per creare un JWT, completa queste attività:
Fornire le autorizzazioni richieste
Una richiesta diretta coinvolge due identità: il chiamante che richiede la credenziale e il account di servizio per cui viene creata la credenziale. La configurazione delle autorizzazioni dipende dal fatto che il chiamante esegua l'autenticazione come account di servizio o come account utente.
Se vuoi eseguire un comando REST o gcloud CLI in questa pagina in un ambiente di sviluppo locale, il chiamante può essere rappresentato dalle credenziali utente. Per i workload automatizzati, ad esempio un'applicazione in esecuzione su Compute Engine, il chiamante deve essere rappresentato da un account di servizio.
Service account
Quando l'applicazione chiamante utilizza un account di servizio come identità, sono coinvolti i seguenti principal:
Account di servizio del chiamante (
CALLER_SA)Questo account di servizio rappresenta l'applicazione chiamante, che invia la richiesta per le credenziali di breve durata.
-
Account di servizio con privilegi (
PRIV_SA)A questo account di servizio vengono concessi i ruoli IAM necessari per il token di breve durata. Questo è il account di servizio per cui viene creato il token di breve durata.
Per concedere a CALLER_SA le autorizzazioni per creare credenziali
di breve durata per PRIV_SA, concedi a
CALLER_SA il ruolo Creatore token service account
(roles/iam.serviceAccountTokenCreator) su PRIV_SA.
Concedi il ruolo richiesto su PRIV_SA:
Console
-
Nella console Google Cloud , vai alla pagina Service account.
- Seleziona un progetto.
-
Fai clic sull'indirizzo email del account di servizio con privilegi,
PRIV_SA. - Fai clic sulla scheda Autorizzazioni.
- In Entità con accesso a questo service account, fai clic su Concedi l'accesso.
-
Inserisci l'indirizzo email del account di servizio del chiamante,
CALLER_SA.Ad esempio,
demo@my-project.iam.gserviceaccount.com. -
Seleziona il ruolo Creatore token service account
(
roles/iam.serviceAccountTokenCreator). - Fai clic su Salva per concedere il ruolo al account di servizio.
gcloud
Il comando
gcloud iam service-accounts add-iam-policy-binding
concede un ruolo su un account di servizio.
Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:
-
PRIV_SA: l'indirizzo email del account di servizio con privilegi per cui viene generato il token. -
CALLER_SA: l'indirizzo email del account di servizio che rappresenta l'applicazione che richiede il token di breve durata.
Esegui questo comando:
Linux, macOS o Cloud Shell
gcloud iam service-accounts add-iam-policy-binding PRIV_SA \ --member=serviceAccount:CALLER_SA --role=roles/iam.serviceAccountTokenCreator --format=json
Windows (PowerShell)
gcloud iam service-accounts add-iam-policy-binding PRIV_SA ` --member=serviceAccount:CALLER_SA --role=roles/iam.serviceAccountTokenCreator --format=json
Windows (cmd.exe)
gcloud iam service-accounts add-iam-policy-binding PRIV_SA ^ --member=serviceAccount:CALLER_SA --role=roles/iam.serviceAccountTokenCreator --format=json
Dovresti ricevere una risposta simile alla seguente:
Updated IAM policy for serviceAccount [PRIV_SA].
{
"bindings": [
{
"members": [
"serviceAccount:CALLER_SA"
],
"role": "roles/iam.serviceAccountTokenCreator"
}
],
"etag": "BwXhCB4eyjY=",
"version": 1
}
REST
-
Leggi la policy di autorizzazione per
PRIV_SA:Il metodo
serviceAccounts.getIamPolicyrecupera il criterio di autorizzazione di un account di servizio.Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
PROJECT_ID: il tuo ID progetto Google Cloud . Gli ID progetto sono stringhe alfanumeriche, comemy-project.-
PRIV_SA: l'indirizzo email del account di servizio con privilegi per cui viene creato il token di breve durata. POLICY_VERSION: La versione della policy da restituire. Le richieste devono specificare la versione più recente delle norme, ovvero la versione 3. Per maggiori dettagli, vedi Specificare una versione delle norme quando si recuperano le norme.
Metodo HTTP e URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA:getIamPolicy
Corpo JSON della richiesta:
{ "options": { "requestedPolicyVersion": POLICY_VERSION } }Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "user:my-user@example.com" ] } ] }Se non hai concesso ruoli al account di servizio, la risposta contiene solo un valore
etag. Includi questo valoreetagnel passaggio successivo. -
Modifica la policy di autorizzazione per concedere a
CALLER_SAil ruolo Creatore token service account (roles/iam.serviceAccountTokenCreator).Ad esempio, per modificare la risposta di esempio del passaggio precedente, aggiungi quanto segue:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "user:my-user@example.com" ] }, { "role": "roles/iam.serviceAccountTokenCreator", "members": [ "serviceAccount:CALLER_SA" ] } ] }
-
Scrivi la policy di autorizzazione aggiornata:
Il metodo
serviceAccounts.setIamPolicyimposta un criterio di autorizzazione aggiornato per il account di servizio.Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
PROJECT_ID: il tuo ID progetto Google Cloud . Gli ID progetto sono stringhe alfanumeriche, comemy-project.-
PRIV_SA: l'indirizzo email del account di servizio con privilegi per il quale viene creato il token di breve durata. POLICY_VERSION: La versione della policy da restituire. Le richieste devono specificare la versione più recente delle norme, ovvero la versione 3. Per maggiori dettagli, vedi Specificare una versione delle norme quando si recuperano le norme.-
POLICY: una rappresentazione JSON della policy che vuoi impostare. Per ulteriori informazioni sul formato di una policy, consulta il riferimento alle policy.Ad esempio, per impostare la policy di autorizzazione mostrata nel passaggio precedente, sostituisci
POLICYcon quanto segue, doveCALLER_SAè il account di servizio che crea il token di breve durata:{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "user:my-user@example.com" ] }, { "role": "roles/iam.serviceAccountTokenCreator", "members": [ "serviceAccount:CALLER_SA" ] } ] }
Metodo HTTP e URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA:setIamPolicy
Corpo JSON della richiesta:
{ "policy": POLICY }Per inviare la richiesta, espandi una di queste opzioni:
La risposta contiene la policy di autorizzazione aggiornata.
Credenziali utente
Quando vuoi utilizzare Google Cloud CLI per generare token di breve durata o vuoi generare token di breve durata da un ambiente di sviluppo locale, puoi utilizzare un account utente per generare i token. Spesso puoi utilizzare il tuo account utente.
Quando utilizzi un account utente per generare token di breve durata, sono coinvolte le seguenti identità:
Account del chiamante (
CALLER_ACCOUNT)Questo account utente viene utilizzato per generare credenziali di breve durata per l'account di servizio con privilegi.
Account di servizio con privilegi (
PRIV_SA)A questo account di servizio vengono concessi i ruoli IAM necessari per il token di breve durata. Questo è il account di servizio per cui viene creato il token di breve durata.
Per consentire a CALLER_ACCOUNT di creare credenziali
di breve durata per PRIV_SA, concedi
a CALLER_ACCOUNT il ruolo Creatore token account di servizio
(roles/iam.serviceAccountTokenCreator) su PRIV_SA.
Concedi il ruolo richiesto su PRIV_SA:
Console
-
Nella console Google Cloud , vai alla pagina Service account.
- Seleziona un progetto.
-
Fai clic sull'indirizzo email del account di servizio con privilegi,
PRIV_SA. - Fai clic sulla scheda Autorizzazioni.
- In Entità con accesso a questo service account, fai clic su Concedi l'accesso.
-
Inserisci l'identificatore dell'entità dell'account chiamante,
CALLER_ACCOUNT.Ad esempio,
my-user@example.com. -
Seleziona il ruolo Creatore token service account
(
roles/iam.serviceAccountTokenCreator). - Fai clic su Salva per concedere il ruolo all'account utente.
gcloud
Il comando
gcloud iam service-accounts add-iam-policy-binding
concede un ruolo su un account di servizio.
Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:
-
PRIV_SA: l'indirizzo email del account di servizio con privilegi per cui viene generato il token. -
CALLER_ACCOUNT: l'indirizzo email dell'account utente utilizzato per richiedere il token di breve durata.
Esegui questo comando:
Linux, macOS o Cloud Shell
gcloud iam service-accounts add-iam-policy-binding PRIV_SA \ --member=user:CALLER_ACCOUNT --role=roles/iam.serviceAccountTokenCreator --format=json
Windows (PowerShell)
gcloud iam service-accounts add-iam-policy-binding PRIV_SA ` --member=user:CALLER_ACCOUNT --role=roles/iam.serviceAccountTokenCreator --format=json
Windows (cmd.exe)
gcloud iam service-accounts add-iam-policy-binding PRIV_SA ^ --member=user:CALLER_ACCOUNT --role=roles/iam.serviceAccountTokenCreator --format=json
Dovresti ricevere una risposta simile alla seguente:
Updated IAM policy for serviceAccount [PRIV_SA].
{
"bindings": [
{
"members": [
"user:my-user@example.com"
],
"role": "roles/iam.serviceAccountTokenCreator"
}
],
"etag": "BwX1ZbefjXU=",
"version": 1
}
REST
-
Leggi la policy di autorizzazione per
PRIV_SA:Il metodo
serviceAccounts.getIamPolicyrecupera il criterio di autorizzazione di un account di servizio.Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
PROJECT_ID: il tuo ID progetto Google Cloud . Gli ID progetto sono stringhe alfanumeriche, comemy-project.-
PRIV_SA: l'indirizzo email del account di servizio con privilegi per cui viene creato il token di breve durata. POLICY_VERSION: La versione della policy da restituire. Le richieste devono specificare la versione più recente delle norme, ovvero la versione 3. Per maggiori dettagli, vedi Specificare una versione delle norme quando si recuperano le norme.
Metodo HTTP e URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA:getIamPolicy
Corpo JSON della richiesta:
{ "options": { "requestedPolicyVersion": POLICY_VERSION } }Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "user:my-user@example.com" ] } ] }Se non hai concesso ruoli al account di servizio, la risposta contiene solo un valore
etag. Includi questo valoreetagnel passaggio successivo. -
Modifica la policy di autorizzazione per concedere a
CALLER_ACCOUNTil ruolo Creatore token service account (roles/iam.serviceAccountTokenCreator).Ad esempio, per modificare la risposta di esempio del passaggio precedente, aggiungi quanto segue:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "user:my-user@example.com" ] }, { "role": "roles/iam.serviceAccountTokenCreator", "members": [ "user:my-user@example.com" ] } ] }
-
Scrivi la policy di autorizzazione aggiornata:
Il metodo
serviceAccounts.setIamPolicyimposta un criterio di autorizzazione aggiornato per il account di servizio.Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
PROJECT_ID: il tuo ID progetto Google Cloud . Gli ID progetto sono stringhe alfanumeriche, comemy-project.-
PRIV_SA: l'indirizzo email del account di servizio con privilegi per il quale viene creato il token di breve durata. POLICY_VERSION: La versione della policy da restituire. Le richieste devono specificare la versione più recente delle norme, ovvero la versione 3. Per maggiori dettagli, vedi Specificare una versione delle norme quando si recuperano le norme.-
POLICY: una rappresentazione JSON della policy che vuoi impostare. Per ulteriori informazioni sul formato di una policy, consulta il riferimento alle policy.Ad esempio, per impostare la policy di autorizzazione mostrata nel passaggio precedente, sostituisci
POLICYcon quanto segue, doveCALLER_ACCOUNTè l'account utente che crea il token temporaneo:{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "user:my-user@example.com" ] }, { "role": "roles/iam.serviceAccountTokenCreator", "members": [ "CALLER_ACCOUNT" ] } ] }
Metodo HTTP e URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA:setIamPolicy
Corpo JSON della richiesta:
{ "policy": POLICY }Per inviare la richiesta, espandi una di queste opzioni:
La risposta contiene la policy di autorizzazione aggiornata.
Genera il JWT
Genera un JWT autofirmato:
REST
Il metodo serviceAccounts.signJwt dell'API Service Account Credentials
firma un JWT utilizzando la chiave privata gestita dal sistema di un account di servizio.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
-
PRIV_SA: l'indirizzo email del account di servizio con privilegi per cui viene creato il token di breve durata. -
JWT_PAYLOAD: il payload JWT da firmare, ovvero un oggetto JSON che contiene un insieme di rivendicazioni JWT. Includi le rivendicazioni necessarie per il caso d'uso desiderato e per soddisfare i requisiti di convalida per il servizio che stai chiamando. Se chiami un'API Google, consulta la guida all'autenticazione di Google per i requisiti di rivendicazione.L'attestazione
exp(ora di scadenza) non deve essere successiva di più di 12 ore. Se chiami un'API Google, l'attestazioneexpdeve essere impostata non più di un'ora in futuro.Il seguente payload di esempio contiene attestazioni per chiamare un'API di Google, dove
EXPè un timestamp intero che rappresenta l'ora di scadenza:{ \"iss\": \"PRIV_SA\", \"sub\": \"PRIV_SA\", \"aud\": \"https://firestore.googleapis.com/\", \"iat\": 1529350000, \"exp\": EXP }
Metodo HTTP e URL:
POST https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/PRIV_SA:signJwt
Corpo JSON della richiesta:
{
"payload": "JWT_PAYLOAD"
}
Per inviare la richiesta, espandi una di queste opzioni:
Se la richiesta signJwt è andata a buon fine, il corpo della risposta contiene un JWT firmato e
l'ID della chiave di firma utilizzata per firmare il JWT. Puoi utilizzare il valore signedJwt come
token di autenticazione per autenticare direttamente una richiesta per conto delaccount di serviziot. Il token è
valido fino all'ora di scadenza specificata nella richiesta:
{
"keyId": "42ba1e...fc0a",
"signedJwt": "eyJ0eXAi...NiJ9"
}
Crea un oggetto binario (blob) autofirmato
Gli oggetti binari autofirmati, o blob, vengono utilizzati per trasmettere dati binari in modo che l'autore dei dati sia noto (perché il blob è autofirmato). I blob possono essere utilizzati per creare firme, un oggetto Cloud Storage necessario per vari flussi di autenticazione, inclusi gli URL firmati. Per informazioni sulle firme, consulta la documentazione di Cloud Storage.
Per creare un oggetto binario autofirmato, completa queste attività:
Fornire le autorizzazioni richieste
Una richiesta diretta coinvolge due identità: il chiamante che richiede la credenziale e il account di servizio per cui viene creata la credenziale. La configurazione delle autorizzazioni dipende dal fatto che il chiamante esegua l'autenticazione come account di servizio o come account utente.
Se vuoi eseguire un comando REST o gcloud CLI in questa pagina in un ambiente di sviluppo locale, il chiamante può essere rappresentato dalle credenziali utente. Per i workload automatizzati, ad esempio un'applicazione in esecuzione su Compute Engine, il chiamante deve essere rappresentato da un account di servizio.
Service account
Quando l'applicazione chiamante utilizza un account di servizio come identità, sono coinvolti i seguenti principal:
Account di servizio del chiamante (
CALLER_SA)Questo account di servizio rappresenta l'applicazione chiamante, che invia la richiesta per le credenziali di breve durata.
-
Account di servizio con privilegi (
PRIV_SA)A questo account di servizio vengono concessi i ruoli IAM necessari per il token di breve durata. Questo è il account di servizio per cui viene creato il token di breve durata.
Per concedere a CALLER_SA le autorizzazioni per creare credenziali
di breve durata per PRIV_SA, concedi a
CALLER_SA il ruolo Creatore token service account
(roles/iam.serviceAccountTokenCreator) su PRIV_SA.
Concedi il ruolo richiesto su PRIV_SA:
Console
-
Nella console Google Cloud , vai alla pagina Service account.
- Seleziona un progetto.
-
Fai clic sull'indirizzo email del account di servizio con privilegi,
PRIV_SA. - Fai clic sulla scheda Autorizzazioni.
- In Entità con accesso a questo service account, fai clic su Concedi l'accesso.
-
Inserisci l'indirizzo email del account di servizio del chiamante,
CALLER_SA.Ad esempio,
demo@my-project.iam.gserviceaccount.com. -
Seleziona il ruolo Creatore token service account
(
roles/iam.serviceAccountTokenCreator). - Fai clic su Salva per concedere il ruolo al account di servizio.
gcloud
Il comando
gcloud iam service-accounts add-iam-policy-binding
concede un ruolo su un account di servizio.
Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:
-
PRIV_SA: l'indirizzo email del account di servizio con privilegi per cui viene generato il token. -
CALLER_SA: l'indirizzo email del account di servizio che rappresenta l'applicazione che richiede il token di breve durata.
Esegui questo comando:
Linux, macOS o Cloud Shell
gcloud iam service-accounts add-iam-policy-binding PRIV_SA \ --member=serviceAccount:CALLER_SA --role=roles/iam.serviceAccountTokenCreator --format=json
Windows (PowerShell)
gcloud iam service-accounts add-iam-policy-binding PRIV_SA ` --member=serviceAccount:CALLER_SA --role=roles/iam.serviceAccountTokenCreator --format=json
Windows (cmd.exe)
gcloud iam service-accounts add-iam-policy-binding PRIV_SA ^ --member=serviceAccount:CALLER_SA --role=roles/iam.serviceAccountTokenCreator --format=json
Dovresti ricevere una risposta simile alla seguente:
Updated IAM policy for serviceAccount [PRIV_SA].
{
"bindings": [
{
"members": [
"serviceAccount:CALLER_SA"
],
"role": "roles/iam.serviceAccountTokenCreator"
}
],
"etag": "BwXhCB4eyjY=",
"version": 1
}
REST
-
Leggi la policy di autorizzazione per
PRIV_SA:Il metodo
serviceAccounts.getIamPolicyrecupera il criterio di autorizzazione di un account di servizio.Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
PROJECT_ID: il tuo ID progetto Google Cloud . Gli ID progetto sono stringhe alfanumeriche, comemy-project.-
PRIV_SA: l'indirizzo email del account di servizio con privilegi per cui viene creato il token di breve durata. POLICY_VERSION: La versione della policy da restituire. Le richieste devono specificare la versione più recente delle norme, ovvero la versione 3. Per maggiori dettagli, vedi Specificare una versione delle norme quando si recuperano le norme.
Metodo HTTP e URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA:getIamPolicy
Corpo JSON della richiesta:
{ "options": { "requestedPolicyVersion": POLICY_VERSION } }Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "user:my-user@example.com" ] } ] }Se non hai concesso ruoli al account di servizio, la risposta contiene solo un valore
etag. Includi questo valoreetagnel passaggio successivo. -
Modifica la policy di autorizzazione per concedere a
CALLER_SAil ruolo Creatore token service account (roles/iam.serviceAccountTokenCreator).Ad esempio, per modificare la risposta di esempio del passaggio precedente, aggiungi quanto segue:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "user:my-user@example.com" ] }, { "role": "roles/iam.serviceAccountTokenCreator", "members": [ "serviceAccount:CALLER_SA" ] } ] }
-
Scrivi la policy di autorizzazione aggiornata:
Il metodo
serviceAccounts.setIamPolicyimposta un criterio di autorizzazione aggiornato per il account di servizio.Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
PROJECT_ID: il tuo ID progetto Google Cloud . Gli ID progetto sono stringhe alfanumeriche, comemy-project.-
PRIV_SA: l'indirizzo email del account di servizio con privilegi per il quale viene creato il token di breve durata. POLICY_VERSION: La versione della policy da restituire. Le richieste devono specificare la versione più recente delle norme, ovvero la versione 3. Per maggiori dettagli, vedi Specificare una versione delle norme quando si recuperano le norme.-
POLICY: una rappresentazione JSON della policy che vuoi impostare. Per ulteriori informazioni sul formato di una policy, consulta il riferimento alle policy.Ad esempio, per impostare la policy di autorizzazione mostrata nel passaggio precedente, sostituisci
POLICYcon quanto segue, doveCALLER_SAè il account di servizio che crea il token di breve durata:{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "user:my-user@example.com" ] }, { "role": "roles/iam.serviceAccountTokenCreator", "members": [ "serviceAccount:CALLER_SA" ] } ] }
Metodo HTTP e URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA:setIamPolicy
Corpo JSON della richiesta:
{ "policy": POLICY }Per inviare la richiesta, espandi una di queste opzioni:
La risposta contiene la policy di autorizzazione aggiornata.
Credenziali utente
Quando vuoi utilizzare Google Cloud CLI per generare token di breve durata o vuoi generare token di breve durata da un ambiente di sviluppo locale, puoi utilizzare un account utente per generare i token. Spesso puoi utilizzare il tuo account utente.
Quando utilizzi un account utente per generare token di breve durata, sono coinvolte le seguenti identità:
Account del chiamante (
CALLER_ACCOUNT)Questo account utente viene utilizzato per generare credenziali di breve durata per l'account di servizio con privilegi.
Account di servizio con privilegi (
PRIV_SA)A questo account di servizio vengono concessi i ruoli IAM necessari per il token di breve durata. Questo è il account di servizio per cui viene creato il token di breve durata.
Per consentire a CALLER_ACCOUNT di creare credenziali
di breve durata per PRIV_SA, concedi
a CALLER_ACCOUNT il ruolo Creatore token account di servizio
(roles/iam.serviceAccountTokenCreator) su PRIV_SA.
Concedi il ruolo richiesto su PRIV_SA:
Console
-
Nella console Google Cloud , vai alla pagina Service account.
- Seleziona un progetto.
-
Fai clic sull'indirizzo email del account di servizio con privilegi,
PRIV_SA. - Fai clic sulla scheda Autorizzazioni.
- In Entità con accesso a questo service account, fai clic su Concedi l'accesso.
-
Inserisci l'identificatore dell'entità dell'account chiamante,
CALLER_ACCOUNT.Ad esempio,
my-user@example.com. -
Seleziona il ruolo Creatore token service account
(
roles/iam.serviceAccountTokenCreator). - Fai clic su Salva per concedere il ruolo all'account utente.
gcloud
Il comando
gcloud iam service-accounts add-iam-policy-binding
concede un ruolo su un account di servizio.
Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:
-
PRIV_SA: l'indirizzo email del account di servizio con privilegi per cui viene generato il token. -
CALLER_ACCOUNT: l'indirizzo email dell'account utente utilizzato per richiedere il token di breve durata.
Esegui questo comando:
Linux, macOS o Cloud Shell
gcloud iam service-accounts add-iam-policy-binding PRIV_SA \ --member=user:CALLER_ACCOUNT --role=roles/iam.serviceAccountTokenCreator --format=json
Windows (PowerShell)
gcloud iam service-accounts add-iam-policy-binding PRIV_SA ` --member=user:CALLER_ACCOUNT --role=roles/iam.serviceAccountTokenCreator --format=json
Windows (cmd.exe)
gcloud iam service-accounts add-iam-policy-binding PRIV_SA ^ --member=user:CALLER_ACCOUNT --role=roles/iam.serviceAccountTokenCreator --format=json
Dovresti ricevere una risposta simile alla seguente:
Updated IAM policy for serviceAccount [PRIV_SA].
{
"bindings": [
{
"members": [
"user:my-user@example.com"
],
"role": "roles/iam.serviceAccountTokenCreator"
}
],
"etag": "BwX1ZbefjXU=",
"version": 1
}
REST
-
Leggi la policy di autorizzazione per
PRIV_SA:Il metodo
serviceAccounts.getIamPolicyrecupera il criterio di autorizzazione di un account di servizio.Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
PROJECT_ID: il tuo ID progetto Google Cloud . Gli ID progetto sono stringhe alfanumeriche, comemy-project.-
PRIV_SA: l'indirizzo email del account di servizio con privilegi per cui viene creato il token di breve durata. POLICY_VERSION: La versione della policy da restituire. Le richieste devono specificare la versione più recente delle norme, ovvero la versione 3. Per maggiori dettagli, vedi Specificare una versione delle norme quando si recuperano le norme.
Metodo HTTP e URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA:getIamPolicy
Corpo JSON della richiesta:
{ "options": { "requestedPolicyVersion": POLICY_VERSION } }Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "user:my-user@example.com" ] } ] }Se non hai concesso ruoli al account di servizio, la risposta contiene solo un valore
etag. Includi questo valoreetagnel passaggio successivo. -
Modifica la policy di autorizzazione per concedere a
CALLER_ACCOUNTil ruolo Creatore token service account (roles/iam.serviceAccountTokenCreator).Ad esempio, per modificare la risposta di esempio del passaggio precedente, aggiungi quanto segue:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "user:my-user@example.com" ] }, { "role": "roles/iam.serviceAccountTokenCreator", "members": [ "user:my-user@example.com" ] } ] }
-
Scrivi la policy di autorizzazione aggiornata:
Il metodo
serviceAccounts.setIamPolicyimposta un criterio di autorizzazione aggiornato per il account di servizio.Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
PROJECT_ID: il tuo ID progetto Google Cloud . Gli ID progetto sono stringhe alfanumeriche, comemy-project.-
PRIV_SA: l'indirizzo email del account di servizio con privilegi per il quale viene creato il token di breve durata. POLICY_VERSION: La versione della policy da restituire. Le richieste devono specificare la versione più recente delle norme, ovvero la versione 3. Per maggiori dettagli, vedi Specificare una versione delle norme quando si recuperano le norme.-
POLICY: una rappresentazione JSON della policy che vuoi impostare. Per ulteriori informazioni sul formato di una policy, consulta il riferimento alle policy.Ad esempio, per impostare la policy di autorizzazione mostrata nel passaggio precedente, sostituisci
POLICYcon quanto segue, doveCALLER_ACCOUNTè l'account utente che crea il token temporaneo:{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "user:my-user@example.com" ] }, { "role": "roles/iam.serviceAccountTokenCreator", "members": [ "CALLER_ACCOUNT" ] } ] }
Metodo HTTP e URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA:setIamPolicy
Corpo JSON della richiesta:
{ "policy": POLICY }Per inviare la richiesta, espandi una di queste opzioni:
La risposta contiene la policy di autorizzazione aggiornata.
Genera il blob autofirmato
Genera un blob autofirmato per il account di servizio:
REST
Il metodo serviceAccounts.signBlob
dell'API Service Account Credentials firma un blob utilizzando la chiave privata gestita dal sistema di un account di servizio.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
-
PRIV_SA: l'indirizzo email del account di servizio con privilegi per cui viene creato il token di breve durata. -
BLOB_PAYLOAD: una stringa di byte codificata in Base64. Ad esempio,VGhlIHF1aWNrIGJyb3duIGZveCBqdW1wZWQgb3ZlciB0aGUgbGF6eSBkb2cu.
Metodo HTTP e URL:
POST https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/PRIV_SA:signBlob
Corpo JSON della richiesta:
{
"payload": "BLOB_PAYLOAD"
}
Per inviare la richiesta, espandi una di queste opzioni:
Se la richiesta signBlob è andata a buon fine, il corpo della risposta contiene un blob firmato e
l'ID della chiave di firma utilizzata per firmare il blob. Puoi utilizzare il valore signedBlob
come token di autenticazione per autenticare direttamente una richiesta per conto delaccount di serviziot. Il token
è valido fino alla scadenza della chiave privata gestita dal sistema delaccount di serviziot. L'ID di questa chiave è il
valore del campo keyId nella risposta.
{
"keyId": "42ba1e...fc0a",
"signedBlob": "eyJ0eXAi...NiJ9"
}