Autorizzazioni di trasferimento basate su agenti

Utilizza l'amministratore del progetto Google Cloud, un utente con privilegi di resourcemanager.projects.setIamPolicy, per concedere autorizzazioni o ruoli IAM (Identity and Access Management) agli utenti e agli account di servizio appropriati.

L'account amministratore del progetto Google Cloud deve solo concedere le autorizzazioni agli utenti e agli account di servizio. Non è necessario avviare i job di trasferimento.

Per ulteriori informazioni sulla concessione dei ruoli IAM, consulta Concessione, modifica e revoca dell'accesso alle risorse.

Se vuoi creare ruoli personalizzati per Storage Transfer Service, consulta Informazioni sui ruoli IAM personalizzati.

Account amministratore

Gli account amministratore di 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 le autorizzazioni e i ruoli IAM seguenti:

Ruolo / Autorizzazione Funzione Note
resourcemanager.projects.getIamPolicy Questa autorizzazione viene utilizzata per verificare 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) o crea un ruolo personalizzato con questa singola autorizzazione e concedi il ruolo personalizzato.
Amministratore Storage Storage (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, vedi Ruoli predefiniti di Storage Transfer Service.

Account utente

Gli account utente di Storage Transfer Service vengono utilizzati per creare ed eseguire trasferimenti. Questi account non dispongono in genere dell'accesso per eliminare i job di trasferimento.

Un account utente può essere un utente 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 a seconda dell'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 dispone delle autorizzazioni Pub/Sub necessarie per un trasferimento. Per concedere questa autorizzazione, concedi il ruolo predefinito Visualizzatore ruoli (roles/iam.roleViewer) o crea un ruolo personalizzato con questa singola autorizzazione e concedi il ruolo personalizzato.
Utente Storage Transfer (roles/storagetransfer.user) Consente all'utente di creare, ricevere, aggiornare ed elencare i trasferimenti. Per un elenco dettagliato delle autorizzazioni concesse, vedi Ruoli predefiniti di Storage Transfer Service.

Account di servizio

Storage Transfer Service utilizza un account di servizio gestito da Google per spostare i dati. Questo account di servizio viene creato automaticamente la prima volta che crei un job di trasferimento, crei un pool di agente, 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 determinare il PROJECT_NUMBER specifico, utilizza la chiamata API googleServiceAccounts.get.

Per consentire all'account di servizio Storage Transfer Service di accedere alle risorse necessarie per completare i trasferimenti, assegna i seguenti ruoli o autorizzazioni equivalenti all'account di servizio:

Ruolo / Autorizzazione Funzione Note
Creatore oggetti Storage (roles/storage.objectCreator) Abilita Storage Transfer Service a creare log di trasferimento nel bucket Cloud Storage connesso a questo trasferimento. Concedi a tutti i bucket Cloud Storage utilizzati in un trasferimento. Se adatto alla 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, 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 in Cloud Storage.
Agente di servizio Storage Transfer (roles/storagetransfer.serviceAgent) Abilita Storage Transfer Service a creare e modificare automaticamente argomenti Pub/Sub per comunicare da Google Cloud al trasferimento degli agenti. Applica il ruolo a livello di progetto al progetto da cui Storage Transfer Service è in esecuzione.

Per un elenco dettagliato delle autorizzazioni concesse da questo ruolo, consulta Autorizzazioni e ruoli.
Lettore bucket legacy Storage (roles/storage.legacyBucketReader) Abilita Storage Transfer Service a leggere i metadati del bucket Cloud Storage.

Concedere a ciascun bucket Cloud Storage utilizzato in un trasferimento.

I ruoli Cloud Storage legacy possono essere concessi solo a livello di bucket.

Agenti di trasferimento

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 per gli agenti di trasferimento che eseguono 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'account utente o 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 di destinazione

Devi inoltre assicurarti che l'account agente abbia le autorizzazioni corrette per accedere ai dati di origine e scrivere nella destinazione.

Da file system a Cloud Storage

Se la tua destinazione di trasferimento è un bucket Cloud Storage, l'agente di trasferimento ha bisogno delle seguenti autorizzazioni per il bucket di destinazione. Per istruzioni, consulta la sezione 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.delete Obbligatorio se il trasferimento è configurato per sovrascrivere o eliminare gli oggetti nel sink; ad esempio, se overwriteObjectsAlreadyExistingInSink o deleteObjectsUniqueInSink sono configurati nella configurazione di transferOptions del trasferimento.

Per concedere queste autorizzazioni, concedi il ruolo seguente:

In alternativa, crea un ruolo personalizzato con le autorizzazioni specifiche e concedi il ruolo personalizzato.

Per abilitare i caricamenti a più parti sono necessarie autorizzazioni aggiuntive.

Da Cloud Storage a file system

Se l'origine del trasferimento è un bucket Cloud Storage, l'agente di trasferimento ha bisogno della seguente autorizzazione nel bucket di origine.

Autorizzazione Descrizione
storage.objects.get Consente all'account agente di leggere i dati e i metadati degli oggetti.

Per concedere questa autorizzazione, concedi il ruolo seguente:

In alternativa, crea un ruolo personalizzato con la singola autorizzazione e concedi il ruolo personalizzato.

Da file system a file system

Se il trasferimento è tra due file system, l'agente di trasferimento ha bisogno delle seguenti autorizzazioni nel 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.delete Obbligatorio se il trasferimento è configurato per eliminare gli oggetti nel bucket intermedio al termine del trasferimento.

Per concedere queste autorizzazioni, concedi il ruolo seguente:

In alternativa, crea un ruolo personalizzato con le autorizzazioni specifiche e concedi il ruolo personalizzato.

Per abilitare i caricamenti a più parti sono necessarie autorizzazioni aggiuntive.

Archiviazione compatibile con S3 in Cloud Storage

L'account agente di trasferimento ha bisogno delle seguenti autorizzazioni per il bucket di destinazione. Per istruzioni, consulta la sezione 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.delete Obbligatorio se il trasferimento è configurato per sovrascrivere o eliminare gli oggetti nel sink; ad esempio, se overwriteObjectsAlreadyExistingInSink o deleteObjectsUniqueInSink sono configurati nella configurazione di transferOptions del trasferimento.

Per concedere queste autorizzazioni, concedi il ruolo seguente:

In alternativa, crea un ruolo personalizzato con le autorizzazioni specifiche e concedi il ruolo personalizzato.

Caricamenti multiparte

Per attivare i caricamenti multiparte per i file system in Cloud Storage per i trasferimenti o tra i file system, concedi all'agente anche le seguenti autorizzazioni.

  • 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.

I caricamenti a più parti possono velocizzare i trasferimenti che includono file di grandi dimensioni e sono supportati solo per i bucket che utilizzano la classe di archiviazione standard.

Nome autorizzazione caricamento a più parti Descrizione
storage.multipartUploads.create Caricare oggetti in più parti.
storage.multipartUploads.abort Interrompi le sessioni di caricamento a più parti.
storage.multipartUploads.listParts Elenca le parti dell'oggetto caricate in una sessione di caricamento a più parti.
storage.multipartUploads.list Elenca le sessioni di caricamento con più parti in un bucket.

Per concedere queste autorizzazioni, concedi il ruolo seguente:

In alternativa, crea un ruolo personalizzato con le autorizzazioni specifiche e concedi il ruolo personalizzato.