Cloud Storage utilizza un
account di servizio gestito da Google,
noto come agente di servizio,
per spostare i dati in un bucket Cloud Storage. Questo agente di servizio viene creato la prima volta che chiami googleServiceAccounts.get
.
Il bucket di destinazione non deve necessariamente appartenere allo stesso progetto dell'agente di servizio. I passaggi sono gli stessi indipendentemente dal progetto in cui si trova il bucket.
Autorizzazioni utente
Per concedere le autorizzazioni necessarie all'agente di servizio, devi disporre delle autorizzazioni pertinenti sul bucket di destinazione:
storage.buckets.getIamPolicy
storage.buckets.setIamPolicy
Il ruolo Storage Legacy Bucket Owner (roles/storage.legacyBucketOwner
) o il ruolo Storage Admin (roles/storage.admin
) fornisce le autorizzazioni richieste.
Concessione automatica delle autorizzazioni nella console Google Cloud
Se utilizzi la console Google Cloud per creare il trasferimento e disponi delle autorizzazioni elencate in Autorizzazioni utente, all'agente di servizio verranno concesse automaticamente le autorizzazioni richieste sul bucket di destinazione.
Puoi saltare i passaggi in questa pagina. Se necessario, configura l'accesso all'origine, quindi crea un trasferimento.
Autorizzazioni obbligatorie
L'agente di servizio deve disporre delle seguenti autorizzazioni per il bucket di destinazione:
Autorizzazione | Descrizione |
---|---|
storage.buckets.get |
Consente all'account di servizio di ottenere la posizione del bucket. |
storage.objects.create |
Consente all'account di servizio di aggiungere oggetti al bucket. |
storage.objects.delete |
Consente all'account di servizio di eliminare gli oggetti nel bucket.
Obbligatorio se imposti Tieni presente che se nel bucket di destinazione è attivo il controllo delle versioni degli oggetti, né |
storage.objects.list |
Consente all'account di servizio di elencare gli oggetti nel bucket. Obbligatorio se impostate overwriteObjectsAlreadyExistingInSink su false o deleteObjectsUniqueInSink su true . |
Il seguente ruolo predefinito concede le autorizzazioni richieste:
- Storage Legacy Bucket Writer (
roles/storage.legacyBucketWriter
)
Qualsiasi ruolo Cloud Storage contrassegnato come ruolo legacy
può essere concesso solo a livello di secchio.
Per un elenco completo dei ruoli di Cloud Storage e delle autorizzazioni che contengono, consulta Ruoli IAM.
Concedi le autorizzazioni richieste
Per concedere il ruolo Writer bucket legacy Storage all'agente di servizio, segui i passaggi riportati di seguito.
Trovare l'email dell'agente di servizio
Vai alla pagina di riferimento
googleServiceAccounts.get
.Si apre un riquadro interattivo denominato Prova questo metodo.
Nel riquadro, in Parametri di richiesta, inserisci il tuo ID progetto. Il progetto specificato qui deve essere quello che utilizzi per gestire Storage Transfer Service, che potrebbe essere diverso dal progetto del bucket di destinazione.
Fai clic su Execute (Esegui).
L'indirizzo email dell'agente di servizio viene restituito come valore di
accountEmail
. Copia questo valore.L'email dell'agente di servizio utilizza il formato
project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com
.
Aggiungere l'agente di servizio a un criterio a livello di bucket
Console
- Nella console Google Cloud, vai alla pagina Bucket in Cloud Storage.
Fai clic sul menu Extra del bucket (
) associato al bucket a cui vuoi concedere un ruolo a un'entità.Scegli Modifica accesso.
Fai clic sul pulsante + Aggiungi entità.
Nel campo Nuove entità, inserisci l'indirizzo email dell'account dell'agente di servizio.
Seleziona
Storage Legacy Bucket Writer
dal menu a discesa Seleziona un ruolo.Fai clic su Salva.
gcloud
Utilizza il comando gcloud storage buckets add-iam-policy-binding
:
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \ --member=serviceAccount:YOUR_AGENT_EMAIL --role=roles/storage.legacyBucketWriter
Dove:
BUCKET_NAME
è il nome del bucket a cui concedi l'accesso principale. Ad esempio,my-bucket
.YOUR_AGENT_EMAIL
è l'indirizzo email dell'account dell'agente che hai copiato in Trovare l'indirizzo email dell'agente di servizio.
Esempi di codice
C++
Per scoprire come installare e utilizzare la libreria client per Cloud Storage, consulta Librerie client di Cloud Storage. Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage C++.
Per autenticarti a Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
C#
Per scoprire come installare e utilizzare la libreria client per Cloud Storage, consulta Librerie client di Cloud Storage. Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage C#.
Per autenticarti a Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Go
Per scoprire come installare e utilizzare la libreria client per Cloud Storage, consulta Librerie client di Cloud Storage. Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Go.
Per autenticarti a Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Java
Per scoprire come installare e utilizzare la libreria client per Cloud Storage, consulta Librerie client di Cloud Storage. Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Java.
Per autenticarti a Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Node.js
Per scoprire come installare e utilizzare la libreria client per Cloud Storage, consulta Librerie client di Cloud Storage. Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Node.js.
Per autenticarti a Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
PHP
Per scoprire come installare e utilizzare la libreria client per Cloud Storage, consulta Librerie client di Cloud Storage. Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage PHP.
Per autenticarti a Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Python
Per scoprire come installare e utilizzare la libreria client per Cloud Storage, consulta Librerie client di Cloud Storage. Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Python.
Per autenticarti a Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Ruby
Per scoprire come installare e utilizzare la libreria client per Cloud Storage, consulta Librerie client di Cloud Storage. Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Ruby.
Per autenticarti a Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
JSON
Avere installato e inizializzatogcloud CLI, che consente di generare un token di accesso per l'intestazione
Authorization
.Crea un file JSON contenente le seguenti informazioni:
{ "bindings":[ { "role": "roles/storage.legacyBucketWriter", "members":[ "YOUR_AGENT_EMAIL" ] } ] }
Dove:
Utilizza
cURL
per chiamare l'API JSON con una richiestaPUT setIamPolicy
:curl -X PUT --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/iam"
Dove:
JSON_FILE_NAME
è il percorso del file che hai creato nel passaggio 2.OAUTH2_TOKEN
è il token di accesso che hai generato nel passaggio 1.BUCKET_NAME
è il nome del bucket a cui vuoi concedere l'accesso principale. Ad esempio,my-bucket
.
Per ulteriori informazioni sull'assegnazione dei ruoli IAM alle risorse Cloud Storage, consulta la documentazione IAM di Cloud Storage.