Prima di creare un trasferimento basato su agente, devi configurare le autorizzazioni per le seguenti entità:
L'account di servizio gestito dall'utente o dall'utente utilizzato per creare il trasferimento. Si tratta dell'account a cui è stato eseguito l'accesso alla console Google Cloud o dell'account specificato durante l'autenticazione all'interfaccia a riga di comando
gcloud
. L'account utente può essere un normale account utente o un account di servizio gestito dall'utente.L'account di servizio gestito da Google, chiamato anche agente di servizio, utilizzato da Storage Transfer Service. Questo account è generalmente identificato dal relativo indirizzo email, che utilizza il formato
project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com
.L'account agente trasferito che fornisce le autorizzazioni Google Cloud per gli agenti di trasferimento. Gli account agente di trasferimento utilizzano le credenziali dell'utente che li installa o quelle di un account di servizio gestito dall'utente per l'autenticazione.
Per maggiori informazioni sulla concessione dei ruoli IAM, consulta Concessione, modifica e revoca dell'accesso alle risorse.
Il metodo più semplice per concedere le autorizzazioni
L'interfaccia a riga di comando gcloud
può essere utilizzata per concedere le autorizzazioni richieste
all'account di servizio gestito dall'utente / dall'utente e all'account di servizio gestito da Google.
Queste autorizzazioni consentono all'utente di creare, modificare ed eliminare job di trasferimento, nonché di impostare o modificare i limiti della larghezza di banda.
Se queste autorizzazioni sono troppo ampie per i criteri della tua organizzazione, consulta le sezioni successive di questo documento per le autorizzazioni minime richieste da Storage Transfer Service.
Per ispezionare le autorizzazioni esistenti e stampare gli eventuali ruoli mancanti, esegui questo comando:
gcloud transfer authorize
Per applicare automaticamente questi ruoli, utilizza il flag --add-missing
:
gcloud transfer authorize --add-missing
Per concedere le autorizzazioni a un account di servizio gestito dall'utente, passa il file delle chiavi dell'account di servizio:
gcloud transfer authorize --add-missing --creds-file=path/to/key.json
Per istruzioni sulla creazione di un account di servizio, consulta Creazione e gestione degli account di servizio.
Il comando concede le seguenti autorizzazioni.
All'account di servizio gestito dall'utente o gestito dall'utente:
roles/owner
roles/storagetransfer.admin
roles/storagetransfer.transferAgent
roles/storage.objectAdmin
roles/pubsub.editor
All'account di servizio gestito da Google:
roles/storage.admin
roles/storagetransfer.serviceAgent
Per istruzioni sull'installazione dell'interfaccia a riga di comando gcloud
, consulta la guida rapida di gcloud
.
Autorizzazioni dell'account di servizio gestite dall'utente o dall'utente
Questa sezione illustra i ruoli richiesti per gli account che gestiscono ed eseguono i trasferimenti. I requisiti della tua organizzazione determineranno i ruoli esatti per ogni utente tipo; questa sezione presuppone la creazione di un amministratore e un utente.
Account amministratore
Gli account amministratore di Storage Transfer Service gestiscono gli agenti di trasferimento, impostano limiti di utilizzo della larghezza di banda ed eliminano i job di trasferimento.
Per configurare un account amministratore, assegna le autorizzazioni e i ruoli IAM seguenti:
Ruolo / Autorizzazione | Funzione | Note |
---|---|---|
resourcemanager.projects.getIamPolicy |
Questa autorizzazione viene utilizzata per confermare che l'account di servizio gestito da Google disponga delle autorizzazioni necessarie per un trasferimento. | Per concedere questa autorizzazione, concedi il ruolo predefinito Visualizzatore ruoli (roles/iam.roleViewer ) oppure crea un ruolo personalizzato con questa singola autorizzazione e concedi il ruolo personalizzato. |
Amministratore Storage Transfer
(roles/storagetransfer.admin )
|
Abilita le azioni amministrative nel progetto di trasferimento, come la configurazione del progetto e il monitoraggio degli agenti. | Per un elenco dettagliato delle autorizzazioni concesse, consulta Ruoli predefiniti di Storage Transfer Service. |
Account utente
Gli account utente di Storage Transfer Service vengono utilizzati per creare ed eseguire trasferimenti. Questi account in genere non hanno accesso per eliminare i job di trasferimento.
Un account utente può essere un account della console Google Cloud o un account di servizio. Se utilizzi un account di servizio, il metodo utilizzato per passare le credenziali a Storage Transfer Service varia in base all'interfaccia utilizzata.
Per configurare un account utente, assegna all'account le autorizzazioni e i ruoli seguenti:
Ruolo / Autorizzazione | Funzione | Note |
---|---|---|
resourcemanager.projects.getIamPolicy |
Utilizzato per confermare che l'account di servizio gestito da Google disponga delle autorizzazioni Pub/Sub necessarie per un trasferimento. | Per concedere questa autorizzazione, concedi il ruolo predefinito Visualizzatore ruoli (roles/iam.roleViewer ) oppure crea un ruolo personalizzato con questa singola autorizzazione e concedi il ruolo personalizzato. |
Utente Storage Transfer
(roles/storagetransfer.user )
|
Consente all'utente di creare, scaricare, aggiornare ed elencare i trasferimenti. | Per un elenco dettagliato delle autorizzazioni concesse, consulta Ruoli predefiniti di Storage Transfer Service. |
Autorizzazioni per gli account di servizio gestiti da Google
Storage Transfer Service utilizza un account di servizio gestito da Google per spostare i tuoi dati. Questo account di servizio viene creato automaticamente la prima volta che crei un job di trasferimento, chiami googleServiceAccounts.get
o visiti la pagina di creazione del job nella console Google Cloud.
Il formato dell'account di servizio è in genere
project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com
.
Per recuperare l'identificatore dell'account di servizio, utilizza la
chiamata API
googleServiceAccounts.get
.
Assegnazione automatica dei ruoli
Esistono due modi per assegnare automaticamente i ruoli corretti all'account di servizio gestito da Google:
Crea il trasferimento utilizzando la console Google Cloud. La console applica automaticamente le autorizzazioni richieste.
Usa
gcloud transfer authorize --add-missing
. Vedi Il metodo più semplice per concedere le autorizzazioni.
Assegnazione manuale dei ruoli
Per consentire all'account di servizio gestito da Google di accedere alle risorse necessarie per completare i trasferimenti, assegna i ruoli seguenti o autorizzazioni equivalenti all'account di servizio.
Ruolo / Autorizzazione | Funzione | Note |
---|---|---|
Creatore oggetti Storage
(roles/storage.objectCreator )
|
Consente a Storage Transfer Service di creare i log di trasferimento nel bucket Cloud Storage collegato a questo trasferimento. |
Concedi a tutti i bucket Cloud Storage utilizzati in un trasferimento. Se appropriato per la tua situazione, puoi concedere il ruolo a livello di progetto al progetto da cui è in esecuzione Storage Transfer Service.
Per un elenco dettagliato delle autorizzazioni concesse da questi ruoli, vedi Ruoli predefiniti di Cloud Storage. |
Visualizzatore oggetti Storage
(roles/storage.objectViewer )
|
Abilita Storage Transfer Service per determinare se un file è già stato trasferito da o verso Cloud Storage. | |
Agente di servizio Storage Transfer
(roles/storagetransfer.serviceAgent )
|
Consente a Storage Transfer Service di creare e modificare automaticamente gli argomenti Pub/Sub per comunicare da Google Cloud agli agenti trasferiti. |
Applica il ruolo a livello di progetto al progetto da cui è in esecuzione Storage Transfer Service.
Per un elenco dettagliato delle autorizzazioni concesse da questo ruolo, vedi Autorizzazioni e ruoli. |
Lettore bucket legacy Storage
(roles/storage.legacyBucketReader )
|
Abilita Storage Transfer Service a leggere i metadati del bucket Cloud Storage. |
Concedi a ogni bucket Cloud Storage utilizzato in un trasferimento. I ruoli |
Per istruzioni, vedi Concedere le autorizzazioni richieste.
Trasferisci le autorizzazioni dell'account agente
Gli agenti di trasferimento di Storage Transfer Service possono essere eseguiti con l'account dell'utente o con un account di servizio.
Per configurare un account di servizio o un account utente dell'agente di trasferimento che esegue gli agenti di trasferimento, assegna il ruolo seguente:
Ruolo / Autorizzazione | Funzione | Note |
---|---|---|
Agente Storage Transfer
(roles/storagetransfer.transferAgent )
|
Concede agli agenti di trasferimento le autorizzazioni Storage Transfer Service e Pub/Sub necessarie per completare un trasferimento. |
Concedi questo ruolo all'utente o all'account di servizio utilizzato dagli agenti.
Per un elenco dettagliato delle autorizzazioni concesse da questo ruolo, vedi Controllo dell'accesso con IAM. |
Autorizzazioni di origine e destinazione
Devi inoltre assicurarti che l'account agente disponga delle autorizzazioni corrette per accedere ai dati di origine e scrivere nella destinazione.
File system, archiviazione compatibile con S3 o HDFS in Cloud Storage
Se la destinazione di trasferimento è un bucket Cloud Storage, l'agente di trasferimento deve disporre delle seguenti autorizzazioni per il bucket di destinazione. Per le istruzioni, consulta Aggiungere un'entità a un criterio a livello di bucket.
Autorizzazione | Descrizione |
---|---|
storage.objects.create |
Consente all'account agente di scrivere oggetti Cloud Storage durante il trasferimento. |
storage.objects.get |
Consente all'account agente di leggere i dati e i metadati degli oggetti. |
storage.objects.list |
Consente all'account agente di elencare gli oggetti nel bucket Cloud Storage. |
storage.objects.delete |
Obbligatorio se il trasferimento è configurato per sovrascrivere o eliminare gli oggetti nel sink, ad esempio se overwriteObjectsAlreadyExistingInSink o deleteObjectsUniqueInSink sono impostati nella configurazione
transferOptions del trasferimento. |
Per concedere queste autorizzazioni, assegna il ruolo seguente:
- Amministratore oggetti Storage (
roles/storage.objectAdmin
)
In alternativa, crea un ruolo personalizzato con autorizzazioni specifiche e concedi il ruolo personalizzato.
Per abilitare i caricamenti multiparte, sono necessarie autorizzazioni aggiuntive.
Da Cloud Storage a file system
Se l'origine del trasferimento è un bucket Cloud Storage, l'agente di trasferimento richiede la seguente autorizzazione per il bucket di origine.
Autorizzazione | Descrizione |
---|---|
storage.objects.create |
Consente all'account agente di scrivere i log di trasferimento e i metadati relativi al trasferimento nel bucket di origine Cloud Storage. |
storage.objects.get |
Consente all'account agente di leggere i dati e i metadati degli oggetti. |
storage.objects.list |
Consente all'account agente di elencare gli oggetti nel bucket Cloud Storage. |
storage.objects.delete |
Obbligatorio se il trasferimento è configurato in modo da eliminare gli oggetti dall'origine. Consulta
deleteObjectsFromSourceAfterTransfer . |
Per concedere questa autorizzazione, assegna il ruolo seguente:
- Storage Object Viewer (
roles/storage.objectViewer
) (Visualizzatore oggetti Storage)
In alternativa, crea un ruolo personalizzato con la singola autorizzazione e concedi il ruolo personalizzato.
Da file system a file system
Se il trasferimento avviene tra due file system, l'agente di trasferimento deve disporre delle seguenti autorizzazioni per il bucket intermedio.
Autorizzazione | Descrizione |
---|---|
storage.objects.create |
Consente all'account agente di scrivere oggetti Cloud Storage durante il trasferimento. |
storage.objects.get |
Consente all'account agente di leggere i dati e i metadati degli oggetti. |
storage.objects.list |
Consente all'account agente di elencare gli oggetti nel bucket Cloud Storage. |
storage.objects.delete |
Obbligatorio se il trasferimento è configurato in modo da eliminare gli oggetti nel bucket intermedio al termine del trasferimento. |
Per concedere queste autorizzazioni, assegna il ruolo seguente:
- Amministratore oggetti Storage (
roles/storage.objectAdmin
)
In alternativa, crea un ruolo personalizzato con autorizzazioni specifiche e concedi il ruolo personalizzato.
Per abilitare i caricamenti multiparte, sono necessarie autorizzazioni aggiuntive.
Caricamenti multiparte
Per abilitare i caricamenti multipart per i trasferimenti o i trasferimenti del file system in Cloud Storage tra file system, concedi anche le seguenti autorizzazioni all'agente.
- Per i trasferimenti a Cloud Storage, assegna le autorizzazioni al bucket di destinazione.
- Per i trasferimenti tra file system, assegna le autorizzazioni al bucket intermedio.
Nome autorizzazione caricamento multiparte | Descrizione |
---|---|
storage.multipartUploads.create |
Caricare oggetti in più parti. |
storage.multipartUploads.abort |
Interrompi le sessioni di caricamento multiparte. |
storage.multipartUploads.listParts |
Elenca le parti degli oggetti caricate in una sessione di caricamento con più parti. |
storage.multipartUploads.list |
Elenca le sessioni di caricamento multiparte in un bucket. |
Per concedere queste autorizzazioni, assegna il ruolo seguente:
- Amministratore oggetti Storage (
roles/storage.objectAdmin
)
In alternativa, crea un ruolo personalizzato con autorizzazioni specifiche e concedi il ruolo personalizzato.