Storage Transfer Service utilizza un
account di servizio gestito da Google,
noto come 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
.
Non è necessario che il bucket di origine appartenga 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 richieste all'agente di servizio, devi avere le autorizzazioni pertinenti nel bucket di origine:
storage.buckets.getIamPolicy
storage.buckets.setIamPolicy
Il ruolo Proprietario bucket di archiviazione precedente (roles/storage.legacyBucketOwner
) o il ruolo Amministratore Storage (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 necessarie nel bucket di origine.
Puoi saltare i passaggi riportati in questa pagina e andare 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 recuperare la posizione 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 su un file system. Storage Transfer Service crea e completa due cartelle nel bucket di origine: |
storage.objects.delete |
Consente all'agente di servizio di eliminare oggetti nel bucket. Obbligatorio
se imposti deleteObjectsFromSourceAfterTransfer su
true .
|
I seguenti ruoli predefiniti concedono le autorizzazioni richieste:
- Una delle seguenti opzioni:
- Visualizzatore oggetti Storage (
roles/storage.objectViewer
) se il trasferimento è a un altro bucket Cloud Storage. - Creatore oggetti Storage (
roles/storage.objectCreator
) se il trasferimento avviene su un file system.
- Visualizzatore oggetti Storage (
- Più uno di:
- Writer bucket legacy Storage (
roles/storage.legacyBucketWriter
) se è richiesta l'autorizzazione di eliminazione degli oggetti. - Lettore bucket Storage legacy (
roles/storage.legacyBucketReader
) se non è richiesta l'autorizzazione di eliminazione degli oggetti.
- Writer bucket legacy Storage (
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 autorizzazioni che contengono, consulta i ruoli IAM.
Concedi le autorizzazioni richieste
Per concedere le autorizzazioni richieste all'agente di servizio, segui questi passaggi.
Trovare l'indirizzo email dell'agente di servizio
Vai alla pagina di riferimento
googleServiceAccounts.get
.Si apre un riquadro interattivo, intitolato Prova questo metodo.
Nel riquadro, in Parametri di richiesta, inserisci il tuo ID progetto. Il progetto specificato qui deve essere il progetto che utilizzi per gestire Storage Transfer Service, che potrebbe essere diverso dal progetto del bucket di origine.
Fai clic su Execute (Esegui).
L'indirizzo email dell'agente di servizio viene restituito come valore di
accountEmail
. Copia questo valore.L'indirizzo email dell'agente di servizio utilizza il formato
project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com
.
Aggiungi l'agente di servizio a un criterio a livello di bucket
Console
- Nella console Google Cloud, vai alla pagina Bucket di Cloud Storage.
Fai clic sul menu overflow del bucket (
) associato al 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 dell'agente di servizio.
Seleziona
Storage Object Viewer
oStorage Object Creator
dal menu a discesa Seleziona un ruolo.Fai clic su Aggiungi un altro ruolo.
Seleziona
Storage Legacy Bucket Writer
oStorage Legacy Bucket Reader
.Fai clic su Salva.
gsutil
Utilizza il comando gsutil iam ch
:
gsutil iam ch \ serviceAccount:YOUR_AGENT_EMAIL:objectViewer,legacyBucketReader \ gs://BUCKET_NAME
Dove:
YOUR_AGENT_EMAIL
è l'indirizzo email dell'account agente copiato in Trovare l'indirizzo email dell'agente di servizio.BUCKET_NAME
è il nome del bucket a cui stai concedendo l'accesso all'entità. Ad esempio,my-bucket
.
Esempi di codice
C++
Per scoprire come installare e utilizzare la libreria client per Cloud Storage, consulta Librerie client di Cloud Storage. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API C++ di Cloud Storage.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
C#
Per scoprire come installare e utilizzare la libreria client per Cloud Storage, consulta Librerie client di Cloud Storage. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API C# di Cloud Storage.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Go
Per scoprire come installare e utilizzare la libreria client per Cloud Storage, consulta Librerie client di Cloud Storage. Per ulteriori informazioni, 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ù, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Java
Per scoprire come installare e utilizzare la libreria client per Cloud Storage, consulta Librerie client di Cloud Storage. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Java di Cloud Storage.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per scoprire come installare e utilizzare la libreria client per Cloud Storage, consulta Librerie client di Cloud Storage. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Node.js di Cloud Storage.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
PHP
Per scoprire come installare e utilizzare la libreria client per Cloud Storage, consulta Librerie client di Cloud Storage. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API PHP di Cloud Storage.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Python
Per scoprire come installare e utilizzare la libreria client per Cloud Storage, consulta Librerie client di Cloud Storage. Per ulteriori informazioni, 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ù, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Ruby
Per scoprire come installare e utilizzare la libreria client per Cloud Storage, consulta Librerie client di Cloud Storage. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Ruby di Cloud Storage.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
JSON
- Richiedi un token di accesso all'autorizzazione da Playground per OAuth 2.0. Configura l'area giochi in modo che utilizzi le tue credenziali OAuth. Per le istruzioni, consulta Autenticazione API.
Crea un file JSON contenente le seguenti informazioni:
{ "bindings":[ { "role": "roles/storage.objectViewer", "members":[ "YOUR_AGENT_EMAIL" ] }, { "role": "roles/storage.legacyBucketReader", "members":[ "YOUR_AGENT_EMAIL" ] } ] }
Dove:
YOUR_AGENT_EMAIL
è l'indirizzo email dell'account agente copiato in Trovare l'indirizzo email dell'agente di servizio.
Utilizza
cURL
per chiamare l'API JSON con una richiesta diPUT 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 creato al 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
.