Autenticazione Cloud Storage

La maggior parte delle operazioni eseguite in Cloud Storage deve essere autenticata. Le uniche eccezioni sono le operazioni su risorse che consentono l'accesso anonimo. Una risorsa ha accesso anonimo se il gruppo allUsers è incluso nell'ACL della risorsa o se il gruppo allUsers è incluso in un criterio IAM applicato alla risorsa. Il gruppo allUsers include chiunque sia presente su internet.

Autenticazione OAuth 2.0

Cloud Storage utilizza OAuth 2.0 per l'autenticazione e l'autorizzazione delle API. L'autenticazione è il processo di determinazione dell'identità di un client. I dettagli dell'autenticazione variano a seconda del modo in cui accedi a Cloud Storage, ma si possono suddividere in due tipi generali:

  • Un flusso incentrato sui server consente a un'applicazione di memorizzare direttamente le credenziali di un account di servizio per completare l'autenticazione. Utilizza questo flusso se l'applicazione utilizza i propri dati anziché quelli utente. I progetti Google Cloud hanno account di servizio predefiniti che puoi utilizzare oppure puoi crearne nuovi.

  • Un flusso incentrato sull'utente consente a un'applicazione di ottenere le credenziali da un utente finale. L'utente accede per completare l'autenticazione. Utilizza questo flusso se la tua applicazione deve accedere ai dati utente. Consulta Credenziali dell'account utente per scenari in cui è appropriato un flusso incentrato sull'utente.

Tieni presente che in un'applicazione puoi utilizzare entrambi i tipi di autenticazione. Per ulteriori informazioni sull'autenticazione, consulta la Guida all'autenticazione di Google Cloud.

Autenticazione dell'interfaccia a riga di comando

Se utilizzi Cloud Storage utilizzando Google Cloud CLI, in genere devi autenticarti con le credenziali del tuo account utente. Per farlo, esegui il comando gcloud auth login e segui le istruzioni, che includono l'accesso al tuo account utente. Per ulteriori opzioni di autenticazione, consulta Eseguire l'autenticazione per l'utilizzo di gcloud CLI.

Autenticazione libreria client

Le librerie client possono utilizzare le credenziali predefinite dell'applicazione per autenticarsi facilmente con le API di Google e inviare richieste a queste API. Con Credenziali predefinite dell'applicazione, puoi testare l'applicazione in locale ed eseguirne il deployment senza modificare il codice sottostante. Per ulteriori informazioni, consulta <atrack-type="common generate" l10n-attrs-original-order="href,track-type,track-name" l10n-encrypted-href="WDE63JFVMK0YqIWBqG8nCycgwkRfOeEqRvzYs1N+2tJUEhcZvE5WLink-reference for AuthenticatehcZvE5WLink-reference for Authenticate

  • Google Cloud

    Se esegui la tua applicazione su servizi che supportano gli account di servizio collegati, come App Engine, Cloud Functions, Cloud Run o Compute Engine, l'ambiente fornisce già informazioni di autenticazione dell'account di servizio, quindi non sono necessarie ulteriori configurazioni. Per Compute Engine, l'ambito dell'account di servizio dipende da come è stata creata l'istanza. Consulta Ambiti di accesso nella documentazione di Compute Engine. Per App Engine, viene utilizzato l'ambito cloud-platform.

  • Altri ambienti

    Per inizializzare l'ambiente di sviluppo o produzione locale, crea un account di servizio Google Cloud, scarica la relativa chiave e imposta la variabile di ambiente GOOGLE_APPLICATION_CREDENTIALS per utilizzare la chiave. Per informazioni dettagliate, consulta Configurare l'autenticazione con le librerie client di Cloud Storage.

Autenticazione API

Per effettuare richieste all'API XML o all'API JSON di Cloud Storage tramite OAuth 2.0, includi il token di accesso della tua applicazione nell'intestazione Authorization in ogni richiesta che richiede l'autenticazione. Puoi generare un token di accesso da OAuth 2.0 Playground:

  1. In OAuth 2.0 Playground, fai clic su API Cloud Storage v1, quindi seleziona un livello di accesso per la tua applicazione (full_control, read_only o read_write).

  2. Fai clic su Autorizza API.

  3. Accedi al tuo account quando richiesto. Nella finestra di dialogo visualizzata, fai clic su Consenti.

  4. Nel passaggio 2 del parco giochi, fai clic su Scambia codice di autorizzazione per i token per il codice di autorizzazione visualizzato.

  5. Copia il token di accesso e includilo nell'intestazione Authorization della tua richiesta:

    Authorization: Bearer OAUTH2_TOKEN

Di seguito è riportato un esempio di richiesta che elenca gli oggetti in un bucket.

API JSON

Utilizza il metodo list della risorsa Oggetti.

GET /storage/v1/b/example-bucket/o HTTP/1.1
Host: www.googleapis.com
Authorization: Bearer ya29.AHES6ZRVmB7fkLtd1XTmq6mo0S1wqZZi3-Lh_s-6Uw7p8vtgSwg

Per autorizzare le richieste dalla riga di comando o per i test, puoi utilizzare il comando curl con la seguente sintassi:

curl -H "Authorization: Bearer OAUTH2_TOKEN" "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o"

Per i test locali, puoi utilizzare il comando gcloud auth application-default print-access-token per generare un token.

API XML

Utilizza una richiesta Elenco oggetti.

GET / HTTP/1.1
Host: example-bucket.storage.googleapis.com
Authorization: Bearer ya29.AHES6ZRVmB7fkLtd1XTmq6mo0S1wqZZi3-Lh_s-6Uw7p8vtgSwg

Per autorizzare le richieste dalla riga di comando o per i test, puoi utilizzare il comando curl con la seguente sintassi:

curl -H "Authorization: Bearer OAUTH2_TOKEN" "https://BUCKET_NAME.storage.googleapis.com"

Per i test locali, puoi utilizzare il comando gcloud auth application-default print-access-token per generare un token.

A causa della complessità della gestione e dell'aggiornamento dei token di accesso e dei rischi per la sicurezza derivanti dall'interazione diretta con le applicazioni crittografiche, ti consigliamo vivamente di utilizzare una libreria client verificata.

Se stai cercando chiavi HMAC da utilizzare con l'API XML per l'accesso interoperabile con Amazon S3, consulta Gestione delle chiavi HMAC per gli account di servizio.

Passaggi successivi