Prima di creare un trasferimento basato su agenti, devi configurare le autorizzazioni per le seguenti entità:
L'utente o il service account gestito dall'utente utilizzato per creare il trasferimento. Questo è l'account con cui è stato eseguito l'accesso alla console Google Cloud o l'account specificato durante l'autenticazione alla CLI
gcloud. L'account utente può essere un account utente normale o un account di servizio gestito dall'utente.Il service account gestito da Google, noto anche come agente di servizio, utilizzato da Storage Transfer Service. Questo account è generalmente identificato dal suo indirizzo email, che utilizza il formato
project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com.L'account agente di trasferimento 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 le credenziali di un account di serviziont gestito dall'utente per l'autenticazione.
Per saperne di più sulla concessione dei ruoli IAM, consulta Concessione, modifica e revoca dell'accesso alle risorse.
Metodo più semplice per concedere le autorizzazioni
La CLI gcloud può essere utilizzata per concedere le autorizzazioni richieste all'utente / al account di servizio gestito dall'utente e al account di servizio gestito da Google.
Queste autorizzazioni consentono all'utente di creare, modificare ed eliminare i job di trasferimento
e impostare o modificare i limiti di larghezza di banda.
Se queste autorizzazioni sono troppo ampie per le policy della tua organizzazione, consulta le sezioni successive di questo documento per le autorizzazioni minime richieste da Storage Transfer Service.
Per esaminare le autorizzazioni esistenti e stampare i ruoli mancanti, esegui il seguente 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, trasmetti il file delle chiavi del account di servizio:
gcloud transfer authorize --add-missing --creds-file=path/to/key.json
Per istruzioni sulla creazione di un account di servizio, vedi Creazione e gestione dei service account.
Il comando concede le seguenti autorizzazioni.
All'utente / al account di servizio gestito dall'utente:
roles/ownerroles/storagetransfer.adminroles/storagetransfer.transferAgentroles/storage.objectAdminroles/pubsub.editor
Al account di servizio gestito da Google:
roles/storage.adminroles/storagetransfer.serviceAgent
Per istruzioni sull'installazione della CLI gcloud, consulta la
guida rapida di gcloud.
Autorizzazioni per l'utente o il account di servizio gestito dall'utente
Questa sezione descrive i ruoli richiesti per la gestione degli account e l'esecuzione dei trasferimenti. I requisiti della tua organizzazione determineranno i ruoli esatti per ogni persona. Questa sezione presuppone che tu crei un amministratore e un utente.
Account amministratore
Gli account amministratore Storage Transfer Service gestiscono gli agenti di trasferimento, impostano i limiti di utilizzo della larghezza di banda ed eliminano i job di trasferimento.
Per configurare un account amministratore, assegna i seguenti ruoli e autorizzazioni IAM:
| Ruolo / Autorizzazione | Funzione | Note |
|---|---|---|
resourcemanager.projects.getIamPolicy |
Questa autorizzazione viene utilizzata per confermare che l'account di servizio gestito da Google dispone 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. |
Storage Transfer Admin
(roles/storagetransfer.admin)
|
Consente azioni amministrative nel progetto di trasferimento, ad esempio 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 Storage Transfer Service vengono utilizzati per creare ed eseguire i trasferimenti. In genere, questi account non hanno accesso per eliminare i job di trasferimento.
Un account utente può essere un utente della console o un account di servizio account. Google Cloud Se utilizzi un account di servizio, il metodo utilizzato per trasmettere le credenziali a Storage Transfer Service varia a seconda dell'interfaccia utilizzata.
Per configurare un account utente, assegna all'account i seguenti ruoli e autorizzazioni:
| Ruolo / Autorizzazione | Funzione | Note |
|---|---|---|
resourcemanager.projects.getIamPolicy |
Utilizzato per confermare che il account di servizio gestito da Google disponga delle autorizzazioni Pub/Sub richieste 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, recuperare, aggiornare ed elencare i trasferimenti. | Per un elenco dettagliato delle autorizzazioni concesse, consulta Ruoli predefiniti di Storage Transfer Service. |
Autorizzazioni account di servizio gestiti da Google
Storage Transfer Service utilizza un
service account 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
consoleGoogle Cloud .
Il formato del account di servizio è in genere
project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com.
Per recuperare l'identificatore del account di servizio, utilizza la chiamata API
googleServiceAccounts.get.
Assegnazione automatica dei ruoli
Esistono due modi per assegnare automaticamente i ruoli corretti al account di servizio gestito da Google:
Crea il trasferimento utilizzando la console Google Cloud . La console applica automaticamente le autorizzazioni richieste.
Utilizza
gcloud transfer authorize --add-missing. Vedi Metodo più semplice per concedere le autorizzazioni.
Assegnazione manuale dei ruoli
Per consentire al account di servizio gestito da Google di accedere alle risorse necessarie per completare i trasferimenti, assegna i seguenti ruoli o autorizzazioni equivalenti aaccount di serviziont.
| Ruolo / Autorizzazione | Funzione | Note |
|---|---|---|
Storage Object Creator
(roles/storage.objectCreator)
|
Consente a Storage Transfer Service di creare 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 viene eseguito Storage Transfer Service.
Per un elenco dettagliato delle autorizzazioni concesse da questi ruoli, consulta Ruoli predefiniti di Cloud Storage. |
Visualizzatore oggetti Storage
(roles/storage.objectViewer)
|
Consente a Storage Transfer Service di determinare se un file è già stato trasferito a o da Cloud Storage. | |
Agente Storage Transfer Service
(roles/storagetransfer.serviceAgent)
|
Consente a Storage Transfer Service di creare e modificare automaticamente gli argomenti Pub/Sub per comunicare da Google Cloud agli agenti di trasferimento. |
Applica il ruolo a livello di progetto al progetto da cui
viene eseguito Storage Transfer Service.
Per un elenco dettagliato delle autorizzazioni concesse da questo ruolo, consulta Autorizzazioni e ruoli. |
Storage Legacy Bucket Reader
(roles/storage.legacyBucketReader)
|
Consente a Storage Transfer Service di leggere i metadati del bucket Cloud Storage. |
Concedi a ogni bucket Cloud Storage utilizzato in un trasferimento. I ruoli Cloud Storage |
Per istruzioni, vedi Concedere le autorizzazioni richieste.
Trasferire le autorizzazioni dell'account agente
Gli agenti di trasferimento di Storage Transfer Service possono essere eseguiti con l'account dell'utente o con un service account.
Per configurare un account di servizio o un account utente dell'agente di trasferimento che esegue gli agenti di trasferimento, assegna il seguente ruolo:
| Ruolo / Autorizzazione | Funzione | Note |
|---|---|---|
Storage Transfer Agent
(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 al account di servizio utilizzato dagli agenti.
Per un elenco dettagliato delle autorizzazioni concesse da questo ruolo, consulta Controllo dell'accesso con IAM. |
Autorizzazioni di origine e destinazione
Devi anche assicurarti che l'account agente disponga delle autorizzazioni corrette per accedere ai dati di origine e scrivere nella destinazione.
File system, spazio di archiviazione compatibile con S3 o HDFS a Cloud Storage
Se la destinazione del trasferimento è un bucket Cloud Storage, l'agente di trasferimento necessita delle seguenti autorizzazioni per il bucket di destinazione. Per istruzioni, vedi Aggiungere un principal a una policy 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 oggetti
nel sink, ad esempio se
overwriteObjectsAlreadyExistingInSink
o deleteObjectsUniqueInSink sono impostati nella configurazione
transferOptions del trasferimento. |
Per concedere queste autorizzazioni, assegna il seguente ruolo:
- Storage Object Admin (
roles/storage.objectAdmin)
In alternativa, crea un ruolo personalizzato con le autorizzazioni specifiche e concedi il ruolo personalizzato.
Sono richieste autorizzazioni aggiuntive per abilitare i caricamenti in più parti.
Da Cloud Storage al file system
Se l'origine del trasferimento è un bucket Cloud Storage, l'agente di trasferimento ha bisogno della seguente autorizzazione sul bucket di origine.
| Autorizzazione | Descrizione |
|---|---|
storage.objects.create |
Consente all'account agente di scrivere log di trasferimento e metadati correlati 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 per eliminare gli oggetti
dall'origine. Vedi
deleteObjectsFromSourceAfterTransfer. |
Per concedere questa autorizzazione, assegna il seguente ruolo:
- Storage Object Viewer (
roles/storage.objectViewer)
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 ha bisogno 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 per eliminare gli oggetti nel bucket intermedio al termine del trasferimento. |
Per concedere queste autorizzazioni, assegna il seguente ruolo:
- Storage Object Admin (
roles/storage.objectAdmin)
In alternativa, crea un ruolo personalizzato con le autorizzazioni specifiche e concedi il ruolo personalizzato.
Sono richieste autorizzazioni aggiuntive per abilitare i caricamenti in più parti.
Caricamenti multiparte
Per attivare i caricamenti in più parti per i trasferimenti dal file system a Cloud Storage o tra file system, concedi inoltre 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 dell'autorizzazione di caricamento multiparte | Descrizione |
|---|---|
storage.multipartUploads.create |
Carica gli oggetti in più parti. |
storage.multipartUploads.abort |
Interrompi le sessioni di caricamento multiparte. |
storage.multipartUploads.listParts |
Elenca le parti dell'oggetto caricate in una sessione di caricamento multiparte. |
storage.multipartUploads.list |
Elenca le sessioni di caricamento in più parti in un bucket. |
Per concedere queste autorizzazioni, assegna il seguente ruolo:
- Storage Object Admin (
roles/storage.objectAdmin)
In alternativa, crea un ruolo personalizzato con le autorizzazioni specifiche e concedi il ruolo personalizzato.