Autorizzazioni di trasferimento senza agente

I trasferimenti senza agente includono i 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à:

  • L'account di servizio gestito dall'utente o 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 in AWS S3, Microsoft Azure o Cloud Storage.

Per informazioni su come concedere i ruoli IAM, consulta la pagina 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 o all'utente e all'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 della larghezza di banda.

Se queste autorizzazioni sono troppo ampie per i criteri della tua organizzazione, fai riferimento alle sezioni successive di questo documento per informazioni sulle autorizzazioni minime richieste da Storage Transfer Service.

Per esaminare le autorizzazioni esistenti e stampare i 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 della chiave 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 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 per gli account di servizio gestiti o gestiti dall'utente

Questa sezione illustra i ruoli necessari per gli account che gestiscono ed eseguono trasferimenti. I requisiti della tua organizzazione determineranno i ruoli esatti per ogni utente tipo; questa sezione presuppone che creerai un amministratore e un utente.

Account amministratore

Gli account amministratore di Storage Transfer Service 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 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. 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.

Autorizzazioni dell'account di servizio gestite 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.

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:

Assegnare i ruoli manualmente

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

Ruolo / Autorizzazione Funzione Note
Writer bucket legacy Storage (roles/storage.legacyBucketWriter) Abilita Storage Transfer Service a leggere i metadati del bucket, elencare gli oggetti nel bucket e scrivere oggetti nel bucket di destinazione. Concedi nel bucket di destinazione 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. Concedi nel bucket di origine Cloud Storage se stai eseguendo il trasferimento da Cloud Storage. Se adatto alla tua situazione, puoi concedere il ruolo a livello di progetto al progetto da cui viene eseguito Storage Transfer Service.
Lettore bucket legacy Storage (roles/storage.legacyBucketReader) Abilita Storage Transfer Service a leggere i metadati del bucket Cloud Storage.

Concedi nel bucket di origine Cloud Storage se stai eseguendo il trasferimento da Cloud Storage.

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

Per istruzioni, consulta 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 nel bucket di origine che in quello di destinazione. L'account di servizio gestito da Google appartiene al progetto da cui stai creando il trasferimento.

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

Per ottenere l'email dell'account di servizio gestito da Google, consulta Trovare l'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 ruolo seguente a livello di bucket allo stesso account di servizio gestito da Google:

  • Storage Legacy Bucket Writer

Per istruzioni sulla concessione dei ruoli a livello di bucket, consulta le seguenti pagine:

Limitazioni dell'organizzazione

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

Potresti anche dover aggiornare le impostazioni di controllo del servizio VPC per supportare i trasferimenti tra progetti. Vedi Configurare Controlli di servizio VPC per i trasferimenti di oggetti Cloud Storage.

Autorizzazioni AWS e Microsoft

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