Storage Transfer Service utilizza un
agente di servizio
per spostare i dati da un bucket di origine Cloud Storage. Questo agente di servizio viene creato la prima volta che chiami googleServiceAccounts.get.
Il bucket di origine non deve 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 nel bucket di origine:
storage.buckets.getIamPolicystorage.buckets.setIamPolicy
Il ruolo Storage Legacy Bucket Owner (roles/storage.legacyBucketOwner) o il ruolo Storage Admin (roles/storage.admin) forniscono 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 per il bucket di origine.
Puoi saltare i passaggi di questa pagina e passare direttamente alla creazione di un trasferimento.
Autorizzazioni obbligatorie
L'agente di servizio deve disporre delle seguenti autorizzazioni per il bucket di origine:
| Autorizzazione | Descrizione |
|---|---|
storage.buckets.get |
Consente all'agente di servizio di ottenere la località del bucket. |
storage.objects.list |
Consente all'agente di servizio di elencare gli oggetti nel bucket. |
storage.objects.get |
Consente all'agente di servizio di leggere gli oggetti nel bucket. |
storage.objects.create |
Consente all'agente di servizio di creare oggetti nel bucket. Obbligatorio se il trasferimento avviene in un file system. Storage Transfer Service crea e compila due cartelle nel bucket di origine: |
storage.objects.delete |
Consente all'agente di servizio di eliminare gli oggetti nel bucket. Obbligatorio se imposti deleteObjectsFromSourceAfterTransfer su true.
|
storage.objects.getIamPolicy |
Consente all'agente di servizio di leggere gli ACL sugli oggetti di origine. Obbligatorio se è abilitata la conservazione degli ACL degli oggetti (ACL_PRESERVE).
|
I seguenti ruoli predefiniti concedono insieme le autorizzazioni richieste:
- Uno dei seguenti:
- Storage Object Viewer (
roles/storage.objectViewer) se il trasferimento avviene in un altro bucket Cloud Storage. - Storage Object Creator (
roles/storage.objectCreator) se il trasferimento avviene verso un file system.
- Storage Object Viewer (
- Inoltre, uno dei seguenti:
- Storage Legacy Bucket Writer (
roles/storage.legacyBucketWriter) se è richiesta l'autorizzazione per l'eliminazione degli oggetti. - Storage Legacy Bucket Reader (
roles/storage.legacyBucketReader) se non è richiesta l'autorizzazione per l'eliminazione degli oggetti.
- Storage Legacy Bucket Writer (
- Inoltre, se conservi gli ACL degli oggetti con
ACL_PRESERVE:- Storage Legacy Object Owner (
roles/storage.legacyObjectOwner)
- Storage Legacy Object Owner (
Qualsiasi ruolo Cloud Storage contrassegnato come ruolo legacy può essere concesso solo a livello di bucket.
Per un elenco completo dei ruoli di Cloud Storage e delle relative autorizzazioni, consulta Ruoli IAM.
Concedi le autorizzazioni richieste
Per concedere le autorizzazioni richieste all'agente di servizio, segui questi passaggi.
Trova l'indirizzo email dell'agente di servizio
Vai alla pagina di riferimento di
googleServiceAccounts.get.Si apre un riquadro interattivo intitolato Prova questo metodo.
Nel riquadro, in Parametri della 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 origine.
Fai clic su Esegui.
L'email dell'agente di servizio viene restituita come valore di
accountEmail. Copia questo valore.L'email dell'agente di servizio utilizza il formato
project-PROJECT_NUMBER@storage-transfer-service..
Aggiungi l'agente di servizio a una policy 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 per il quale vuoi concedere un ruolo a un'entità.
Scegli accesso in modifica.
Fai clic sul pulsante + Aggiungi entità.
Nel campo Nuove entità, inserisci l'indirizzo email dell'account dell'agente di servizio.
Seleziona
Storage Object VieweroStorage Object Creatordal menu a discesa Seleziona un ruolo.Fai clic su Aggiungi un altro ruolo.
Seleziona
Storage Legacy Bucket WriteroStorage Legacy Bucket Reader.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.objectViewer
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \ --member=serviceAccount:YOUR_AGENT_EMAIL --role=roles/storage.legacyBucketReader
Sostituisci quanto segue:
BUCKET_NAMEè il nome del bucket a cui stai concedendo l'accesso all'entità. Ad esempio,my-bucket.YOUR_AGENT_EMAILè l'indirizzo email dell'account dell'agente che hai copiato in Trova 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 eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura 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 eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura 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 eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura 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 eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura 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 eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura 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 eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura 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 eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura 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 eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Rust
JSON
Avere gcloud CLI installato e inizializzato, che ti consente di generare un token di accesso per l'intestazione
Authorization.Crea un file JSON che contenga le seguenti informazioni:
{ "bindings":[ { "role": "roles/storage.objectViewer", "members":[ "YOUR_AGENT_EMAIL" ] }, { "role": "roles/storage.legacyBucketReader", "members":[ "YOUR_AGENT_EMAIL" ] } ] }
Sostituisci quanto segue:
YOUR_AGENT_EMAILè l'indirizzo email dell'account dell'agente che hai copiato in Trova l'indirizzo email dell'agente di servizio.
Utilizza
cURLper 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./storage/v1/b/BUCKET_NAME/iam"
Sostituisci quanto segue:
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 all'entità. Ad esempio,my-bucket.