Autorizzazioni di trasferimento senza agente

I trasferimenti senza agente includono trasferimenti all'interno di Cloud Storage o da Amazon S3, Azure Blob Storage o Data Lake Storage Gen2 o elenchi di URL di oggetti pubblici. Non richiedono agenti di trasferimento o pool di agenti.

Quando trasferisci dati tra provider cloud in un trasferimento senza agente, devi concedere le autorizzazioni a due entità:

  • L'account utente o di servizio gestito dall'utente che sta creando o gestendo il trasferimento.
  • Un account di servizio gestito da Google creato automaticamente la prima volta che interagisci con Storage Transfer Service.

Inoltre, devi configurare l'accesso ai file di origine su AWS S3, Microsoft Azure o Cloud Storage.

Per scoprire come concedere i 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'account di servizio dell'utente / gestito dall'utente e all'account di servizio gestito da Google. Queste autorizzazioni consentono all'utente di creare, modificare ed eliminare i job di trasferimento, nonché di impostare o modificare i limiti di larghezza di banda.

Se queste autorizzazioni sono troppo ampie per le norme della tua organizzazione, consulta le sezioni successive di questo documento per conoscere le autorizzazioni minime richieste da Storage Transfer Service.

Per controllare le autorizzazioni esistenti e stampare eventuali 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, passa il file della chiave dell'account di servizio:

gcloud transfer authorize --add-missing --creds-file=path/to/key.json

Per istruzioni su come creare un account di servizio, consulta Creare e gestire gli account di servizio.

Il comando concede le seguenti autorizzazioni.

  • All'utente / all'account di servizio 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 su come installare gcloud CLI, consulta la guida rapida di gcloud.

Autorizzazioni utente o dell'account di servizio gestito 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 persona. Questa sezione presuppone che tu crei un amministratore e un utente.

Account amministratore

Gli account amministratore di Storage Transfer Service impostano i limiti di utilizzo della larghezza di banda ed eliminano i job di trasferimento.

Per configurare un account amministratore, assegna le seguenti autorizzazioni e i seguenti ruoli IAM:

Ruolo / Autorizzazione Funzione Note
resourcemanager.projects.getIamPolicy Questa autorizzazione viene utilizzata per verificare che l'account di servizio gestito da Google abbia le autorizzazioni necessarie per un trasferimento. Per concedere questa autorizzazione, assegna il ruolo predefinito Visualizzatore dei ruoli (roles/iam.roleViewer) o crea un ruolo personalizzato con questa singola autorizzazione e assegna il ruolo personalizzato.
Amministratore trasferimento dati archiviazione (roles/storagetransfer.admin) Consente azioni amministrative nel progetto di trasferimento, ad esempio la configurazione del progetto. 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 i trasferimenti. In genere, questi account non hanno accesso all'eliminazione dei 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 seguenti autorizzazioni e i seguenti ruoli:

Ruolo / Autorizzazione Funzione Note
resourcemanager.projects.getIamPolicy Viene utilizzato per verificare che l'account di servizio gestito da Google disponga delle autorizzazioni Pub/Sub richieste per un trasferimento. Per concedere questa autorizzazione, assegna il ruolo predefinito Visualizzatore dei ruoli (roles/iam.roleViewer) o crea un ruolo personalizzato con questa singola autorizzazione e assegna il ruolo personalizzato.
Utente di trasferimento dati archiviati (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 degli account di servizio gestiti da Google

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, chiami googleServiceAccounts.get o visiti la pagina di creazione del job nella console Google Cloud.

In genere, il formato dell'account di servizio è project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com. Per recuperare l'identificatore del tuo 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:

Assegnazione manuale dei ruoli

Per consentire all'account di servizio gestito da Google di accedere alle risorse necessarie per completare i trasferimenti, assegna all'account di servizio i seguenti ruoli o autorizzazioni equivalenti.

Ruolo / Autorizzazione Funzione Note
Storage Legacy Bucket Writer (roles/storage.legacyBucketWriter) Consente a Storage Transfer Service di leggere i metadati del bucket, elencare gli oggetti nel bucket e scrivere oggetti nel bucket di destinazione. Concessione nel bucket di destinazione Cloud Storage.
Storage Object Viewer (roles/storage.objectViewer) Consente a Storage Transfer Service di determinare se un file è già stato trasferito a o da Cloud Storage. Concedi l'autorizzazione nel bucket di origine Cloud Storage se stai trasferendo i dati da Cloud Storage. Se opportuno per la tua situazione, puoi concedere il ruolo a livello di progetto al progetto su cui è in esecuzione Storage Transfer Service.
Storage Legacy Bucket Reader (roles/storage.legacyBucketReader) Consente a Storage Transfer Service di leggere i metadati dei bucket Cloud Storage.

Concedi l'autorizzazione nel bucket di origine Cloud Storage se stai trasferendo dati da Cloud Storage.

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

Per le istruzioni, consulta la sezione Concedere le autorizzazioni richieste.

Trasferimenti di Cloud Storage tra progetti

Per trasferire oggetti tra bucket Cloud Storage in progetti diversi, devi concedere l'autorizzazione a un singolo account di servizio gestito da Google sia al bucket di origine sia al bucket di destinazione. L'account di servizio gestito da Google appartiene al progetto da cui stai creando il trasferimento.

L'account di servizio dell'utente o gestito dall'utente richiede autorizzazioni solo sul progetto che sta creando il trasferimento.

Per ottenere l'indirizzo email dell'account di servizio gestito da Google, consulta Trovare l'indirizzo email dell'agente di servizio.

Nel bucket di origine, concedi i seguenti ruoli a livello di bucket all'account di servizio gestito da Google:

  • Storage Legacy Bucket Reader
  • Storage Object Viewer

Nel bucket di destinazione, concedi il seguente ruolo a livello di bucket allo stesso account di servizio gestito da Google:

  • Storage Legacy Bucket Writer

Per istruzioni su come concedere i ruoli a livello di bucket, consulta le seguenti pagine:

Restrizioni dell'organizzazione

Se la tua organizzazione ha applicato vincoli dei criteri dell'organizzazione, come limitazioni del dominio (constraints/iam.allowedPolicyMemberDomains) o disattivazione dell'attacco degli account di servizio alle risorse in altri progetti (constraints/iam.disableCrossProjectServiceAccountUsage), questi vincoli devono essere aggiornati prima che i trasferimenti tra progetti possano essere completati.

Potresti anche dover aggiornare le impostazioni di Controllo di servizio VPC per supportare i trasferimenti tra progetti. Consulta Configurare i Controlli di servizio VPC per i trasferimenti di oggetti archiviati nel cloud.

Autorizzazioni AWS e Microsoft

Devi anche configurare l'accesso ai file di origine se si trovano in AWS S3 o in Microsoft Azure Storage. I seguenti documenti descrivono nel dettaglio i passaggi obbligatori: