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
Il bucket di origine 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 richieste all'agente di servizio, devi avere le autorizzazioni pertinenti sul bucket di origine:
storage.buckets.getIamPolicy
storage.buckets.setIamPolicy
Il ruolo Proprietario bucket legacy Storage (roles/storage.legacyBucketOwner
) oppure
il ruolo Storage Admin (roles/storage.admin
) fornisce i requisiti
autorizzazioni aggiuntive.
Concessione automatica delle autorizzazioni nella console Google Cloud
Se utilizzi la console Google Cloud per creare il trasferimento e hai le autorizzazioni elencate in Autorizzazioni utente, all'agente di servizio verranno concesse automaticamente del bucket di origine.
Puoi saltare i passaggi in questa pagina 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
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 .
|
I seguenti ruoli predefiniti insieme concedono le autorizzazioni richieste:
- Uno dei seguenti:
- Visualizzatore oggetti Storage (
roles/storage.objectViewer
) se il trasferimento avviene in un altro bucket Cloud Storage. - Creatore oggetti Storage (
roles/storage.objectCreator
), se il trasferimento in un file system.
- Visualizzatore oggetti Storage (
- Più uno dei seguenti:
- Writer bucket legacy Storage (
roles/storage.legacyBucketWriter
) se è richiesta l'autorizzazione di eliminazione degli oggetti. - Lettore bucket Storage legacy (
roles/storage.legacyBucketReader
) se l'autorizzazione di eliminazione degli oggetti non è obbligatoria.
- Writer bucket legacy Storage (
Qualsiasi ruolo di Cloud Storage contrassegnato come legacy
può essere concesso solo al
a livello di bucket.
Per un elenco completo dei ruoli di Cloud Storage e delle autorizzazioni che contengono, consulta Ruoli IAM.
Per gli ACL dell'oggetto, quando è impostato ACL_PRESERVE, è richiesto anche il ruolo Proprietario oggetti legacy Storage (roles/storage.legacyObjectOwner
) per l'oggetto di origine. Per ACL_PRESERVE, aggiungi manualmente l'account di servizio con il ruolo Proprietario oggetti legacy Storage in modo da concedere all'oggetto di origine l'autorizzazione storage.objects.getIamPolicy
.
Concedi le autorizzazioni richieste
Per concedere le autorizzazioni necessarie all'agente di servizio, segui i passaggi riportati di seguito.
Trovare l'email dell'agente di servizio
Vai alla pagina di riferimento di
googleServiceAccounts.get
.Viene visualizzato 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 stai per gestire Storage Transfer Service, che potrebbe essere diverso dall'origine progetto del bucket.
Fai clic su Execute (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.iam.gserviceaccount.com
.
Aggiungi 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 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.
gcloud
Usa 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
Dove:
BUCKET_NAME
è il nome del bucket a cui stai grantando 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 ulteriori informazioni, consulta API Cloud Storage C++ documentazione di riferimento.
Per autenticarti a Cloud Storage, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura 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 Cloud Storage C#.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, 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 Cloud Storage Go.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Java
Per scoprire come installare e utilizzare la libreria client per Cloud Storage, vedi Librerie client di Cloud Storage. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Cloud Storage Java.
Per autenticarti a Cloud Storage, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per scoprire come installare e utilizzare la libreria client per Cloud Storage, vedi Librerie client di Cloud Storage. Per ulteriori informazioni, consulta API Cloud Storage Node.js documentazione di riferimento.
Per autenticarti a Cloud Storage, configura le credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
PHP
Per scoprire come installare e utilizzare la libreria client per Cloud Storage, vedi Librerie client di Cloud Storage. Per ulteriori informazioni, consulta API Cloud Storage PHP documentazione di riferimento.
Per autenticarti a Cloud Storage, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura 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 Cloud Storage Python.
Per autenticarti a Cloud Storage, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Ruby
Per scoprire come installare e utilizzare la libreria client per Cloud Storage, vedi Librerie client di Cloud Storage. Per ulteriori informazioni, consulta API Cloud Storage Ruby documentazione di riferimento.
Per autenticarti a Cloud Storage, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
JSON
Avere gcloud CLI installato e inizializzato, che consente generi un token di accesso per l'intestazione
Authorization
.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:
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 generate nel passaggio 1.BUCKET_NAME
è il nome del bucket a cui vuoi concedere l'accesso principale. Ad esempio,my-bucket
.