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 cloud provider in un trasferimento senza agente, devi concedere le autorizzazioni a due entità principali:

Per scoprire come concedere i ruoli IAM, consulta Concessione, modifica e revoca dell'accesso alle risorse.

Metodo più semplice per concedere le autorizzazioni

È possibile utilizzare la CLI gcloud per concedere le autorizzazioni richieste all'account 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 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 autorizzazioni a un account di servizio gestito dall'utente al posto dell'utente, invia il file della chiave dell'account di servizio:

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

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'agente 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 dell'account utente

L'account utente deve disporre dell'autorizzazione per eseguire le operazioni di Storage Transfer Service. Queste autorizzazioni vengono concesse tramite uno dei due ruoli: Utente di trasferimento dati o Amministratore di trasferimento dati.

Inoltre, l'account deve disporre dell'autorizzazione per recuperare l'agente di servizio gestito da Google al fine di verificarne le autorizzazioni.

Per configurare l'account utente o l'account di servizio gestito dall'utente, concedi i seguenti ruoli e autorizzazioni 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 assegnalo.
Uno dei seguenti ruoli:
Amministratore trasferimento dati (roles/storagetransfer.admin) Consente tutte le operazioni di Storage Transfer Service, inclusa l'eliminazione dei job di trasferimento. Per un elenco dettagliato delle autorizzazioni concesse, consulta Ruoli predefiniti di Storage Transfer Service.
Utente di trasferimento dati archiviati (roles/storagetransfer.user) Consente all'utente di creare, recuperare, aggiornare ed elencare i trasferimenti. Non consente all'utente di eliminare i job di trasferimento. Per un elenco dettagliato delle autorizzazioni concesse, consulta Ruoli predefiniti di Storage Transfer Service.

Autorizzazioni agente di servizio gestite da Google

Storage Transfer Service utilizza un agente 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][googleServiceAccounts.get].

Assegnazione automatica dei ruoli

Esistono due modi per assegnare automaticamente i ruoli corretti all'agente di servizio:

Assegnazione manuale dei ruoli

Per consentire all'agente di servizio di accedere alle risorse necessarie per completare i trasferimenti, assegna all'agente 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.

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

Storage Object Viewer (roles/storage.objectViewer)

Consente a Storage Transfer Service di copiare oggetti da un'origine Cloud Storage.

Consente inoltre a Storage Transfer Service di determinare se un file esistente nella destinazione Cloud Storage è stato modificato.

Concedi l'autorizzazione sul bucket di origine Cloud Storage se effettui il trasferimento da Cloud Storage.

Concedi l'autorizzazione anche al bucket di destinazione Cloud Storage se il trasferimento è configurato per [sovrascrivere gli oggetti](/storage-transfer/docs/reference/rest/v1/TransferOptions#OverwriteWhen) nel sink se diverso o mai. Non è necessario se l'impostazione di trasferimento è sempre sovrascrittura.

Se opportuno per la tua situazione, puoi concedere il ruolo a livello di progetto al progetto in 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 sul bucket di origine Cloud Storage se effettui il trasferimento da Cloud Storage.

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

Per istruzioni, consulta Concedere le autorizzazioni richieste.

Delega a un account di servizio gestito dall'utente

Puoi delegare le autorizzazioni dell'agente di servizio a un account di servizio gestito dall'utente. In questo modo puoi separare le autorizzazioni dei bucket per diversi job di trasferimento tra gli account di servizio, anziché centralizzarle in un unico agente di servizio.

Per maggiori dettagli, vedi Delegare le autorizzazioni dell'agente di servizio a un account di servizio gestito dall'utente.

Trasferimenti di Cloud Storage tra progetti

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

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

Per ottenere l'indirizzo email dell'agente di servizio, consulta Trovare l'indirizzo email dell'agente di servizio.

Nel bucket di origine, concedi i seguenti ruoli all'agente di servizio a livello di bucket:

  • Storage Legacy Bucket Reader
  • Storage Object Viewer

Nel bucket di destinazione, concedi il seguente ruolo a livello di bucket allo stesso agente di servizio:

  • Storage Legacy Bucket Writer

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

I ruoli Legacy di Cloud Storage non possono essere concessi a livello di progetto.

Restrizioni dell'organizzazione

Se la tua organizzazione ha applicato vincoli delle norme 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 Controlli 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 richiesti: