Cloud Storage utilizza un
service agent
per spostare i dati in un bucket Cloud Storage. Questo service agent
viene creato la prima volta che chiami
googleServiceAccounts.get.
Il bucket di destinazione non deve necessariamente appartenere allo stesso progetto del service agent. I passaggi sono gli stessi indipendentemente dal progetto in cui si trova il bucket.
Autorizzazioni utente
Per concedere le autorizzazioni richieste al service agent, devi disporre delle autorizzazioni pertinenti per il bucket di destinazione:
storage.buckets.getIamPolicystorage.buckets.setIamPolicy
Il ruolo Storage Legacy Bucket Owner (roles/storage.legacyBucketOwner) o il ruolo Amministratore spazio di archiviazione (roles/storage.admin) forniscono le autorizzazioni richieste.
Concessione automatica delle autorizzazioni nella Google Cloud console
Se utilizzi la Google Cloud console per creare il trasferimento e disponi delle autorizzazioni elencate in Autorizzazioni utente, al service agent verranno concesse automaticamente le autorizzazioni richieste per il bucket di destinazione.
Puoi saltare i passaggi descritti in questa pagina. Se necessario, configura l'accesso all'origine, quindi crea un trasferimento.
Autorizzazioni obbligatorie
Il service agent deve disporre delle seguenti autorizzazioni per il bucket di destinazione:
| Autorizzazione | Descrizione |
|---|---|
storage.buckets.get |
Consente al account di servizio di ottenere la località del bucket. |
storage.objects.get |
Consente al account di servizio di visualizzare gli oggetti e i relativi metadati, esclusi gli ACL. Obbligatorio se il trasferimento è configurato per [sovrascrivere gli oggetti](/storage-transfer/docs/reference/rest/v1/TransferOptions#OverwriteWhen) nel sink quando sono diversi o mai. Non è obbligatorio se l'impostazione di trasferimento è di sovrascrivere sempre. |
storage.objects.create |
Consente al account di servizio di aggiungere oggetti al bucket. |
storage.objects.delete |
Consente al account di servizio di eliminare gli oggetti nel bucket.
Obbligatorio se imposti Tieni presente che se il bucket di destinazione ha
il controllo delle versioni degli oggetti
abilitato, né |
storage.objects.list |
Consente al account di servizio di elencare gli oggetti nel bucket. Obbligatorio se
imposti overwriteObjectsAlreadyExistingInSink su
false o deleteObjectsUniqueInSink su
true. |
Il seguente ruolo predefinito concede le autorizzazioni richieste:
- Storage Legacy Bucket Writer (
roles/storage.legacyBucketWriter)
Inoltre, per i trasferimenti configurati per sovrascrivere gli oggetti nel sink quando sono diversi o mai, assegna il seguente ruolo predefinito al service agent:
- Storage Object Viewer (
roles/storage.objectViewer)
Per un elenco completo dei ruoli di Cloud Storage e delle autorizzazioni che li contengono, consulta Ruoli IAM.
Concedi le autorizzazioni richieste
Per concedere i ruoli Storage Legacy Bucket Writer e Storage Object Viewer al service agent, segui questi passaggi.
Trova l'indirizzo email del service agent
Vai alla pagina di riferimento
googleServiceAccounts.get.Si apre un riquadro interattivo intitolato Prova questo metodo.
Nel riquadro, in Parametri della richiesta, inserisci il tuo ID progetto. Il progetto che specifichi qui deve essere il progetto che utilizzi per gestire Storage Transfer Service, che potrebbe essere diverso dal progetto del bucket di destinazione.
Fai clic su Esegui.
L'indirizzo email del service agent viene restituito come valore di
accountEmail. Copia questo valore.L'indirizzo email del service agent utilizza il formato
project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com.
Aggiungi il service agent a un criterio a livello di bucket
Console
- Nella Google Cloud console, vai alla pagina Bucket di Cloud Storage.
Fai clic sul menu Overflow del bucket () associato a l bucket a cui 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 del service agent.
Seleziona
Storage Legacy Bucket Writerdal menu a discesa Seleziona un ruolo.Fai clic su Salva.
Ripeti l'operazione per aggiungere il ruolo
Storage Object Viewerse il trasferimento è configurato per sovrascrivere gli oggetti nel sink quando sono diversi o mai.
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
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 del service agent.
Per concedere il ruolo Storage Object Viewer per le configurazioni di trasferimento configurate per
sovrascrivere gli oggetti nel sink
quando sono diversi o mai:
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \ --member=serviceAccount:YOUR_AGENT_EMAIL --role=roles/storage.objectViewer
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'APIC++ di Cloud Storage.
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'C# API di Cloud Storage.
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 Go di Cloud Storage.
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 Java Cloud Storage.
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'Node.js API di Cloud Storage.
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 PHP Cloud Storage.
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 Python di Cloud Storage.
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
Assicurati che gcloud CLI sia installato e inizializzato, in modo da poter 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" ] }, { "role": "roles/storage.objectViewer", "members":[ "YOUR_AGENT_EMAIL" ] } ] }
Sostituisci quanto segue:
Utilizza
cURLper chiamare la API JSON con unaPUT setIamPolicyrichiesta: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"
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.
Per saperne di più sull'assegnazione dei ruoli IAM alle risorse di Cloud Storage, consulta la documentazione IAM di Cloud Storage.