I trasferimenti senza agenti includono i trasferimenti all'interno di Cloud Storage oppure 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 agenti, devi concedere autorizzazioni a due entità:
- L'account utente che crea o gestisce il trasferimento.
- Un agente di servizio gestito da Google che viene creato automaticamente la prima volta che interagisci con Storage Transfer Service. Puoi delegare le autorizzazioni dell'agente di servizio a un account di servizio gestito dall'utente. Per maggiori informazioni, consulta Delegare le autorizzazioni dell'agente di servizio a un service account gestito dall'utente.
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 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 autorizzazioni a un account di servizio gestito dall'utente al posto dell'utente, passa il file delle chiavi del account di servizio:
gcloud transfer authorize --add-missing --creds-file=path/to/key.json
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
All'agente di servizio gestito da Google:
roles/storage.adminroles/storagetransfer.serviceAgent
Per istruzioni sull'installazione della CLI gcloud, 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 Storage Transfer o Amministratore Storage Transfer.
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 il 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 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. |
| Uno dei seguenti ruoli: | ||
Storage Transfer Admin
(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 Storage Transfer
(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 dell'agente di servizio gestito 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 .
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][googleServiceAccounts.get].
Assegnazione automatica dei ruoli
Esistono due modi per assegnare automaticamente i ruoli corretti all'agente di servizio:
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 service agent di accedere alle risorse necessarie per completare i trasferimenti, assegna i seguenti ruoli o autorizzazioni equivalenti al service agent.
| 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 gli oggetti nel bucket di destinazione. |
Concessione sul bucket Cloud Storage di destinazione. I ruoli Cloud Storage |
Visualizzatore oggetti Storage
(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 esiste già nella destinazione Cloud Storage e se è stato modificato. |
Concedi l'accesso al bucket di origine Cloud Storage se esegui il trasferimento da Cloud Storage. Concedi anche l'accesso al bucket di destinazione Cloud Storage se il trasferimento è configurato per [sovrascrivere gli oggetti](/storage-transfer/docs/reference/rest/v1/TransferOptions#OverwriteWhen) nel sink quando è diverso o mai. Non è necessario se l'impostazione di trasferimento è sempre sovrascrittura. Se appropriato per la tua situazione, puoi concedere il ruolo a livello di progetto al progetto da cui viene eseguito Storage Transfer Service. |
Storage Legacy Bucket Reader
(roles/storage.legacyBucketReader)
|
Consente a Storage Transfer Service di leggere i metadati del bucket Cloud Storage. |
Concedi l'accesso al bucket di origine Cloud Storage se esegui il trasferimento da Cloud Storage. I ruoli Cloud Storage |
Per istruzioni, vedi Concedere le autorizzazioni richieste.
Delega a un account di servizio gestito dall'utente
Puoi delegare le autorizzazioni dell'agente di servizio a un service account gestito dall'utente. In questo modo puoi separare le autorizzazioni del bucket per diversi job di trasferimento tra i service account, anziché centralizzarle in un unico service agent.
Per maggiori dettagli, vedi Delegare le autorizzazioni dell'agente di servizio a un service account gestito dall'utente.
Trasferimenti 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 sul bucket di origine sia su quello di destinazione. L'agente di servizio appartiene al progetto da cui stai creando il trasferimento.
L'utente o il service account gestito dall'utente ha bisogno solo delle autorizzazioni per il progetto che sta creando il trasferimento.
Per ottenere l'email dell'agente di servizio, consulta Trovare l'email dell'agente di servizio.
Nel bucket di origine, concedi i seguenti ruoli a livello di bucket all'agente di servizio:
Storage Legacy Bucket ReaderStorage Object Viewer
Nel bucket di destinazione, concedi il seguente ruolo a livello di bucket allo stesso service agent:
Storage Legacy Bucket Writer
Per istruzioni sulla concessione di ruoli a livello di bucket, consulta le seguenti pagine:
I ruoli Cloud Storage Legacy non possono essere concessi a livello di progetto.
Restrizioni dell'organizzazione
Se la tua organizzazione ha applicato vincoli dei criteri dell'organizzazione, ad esempio limitazioni del dominio (constraints/iam.allowedPolicyMemberDomains) o disattivazione dell'associazione di service account 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 dei Controlli di servizio VPC per supportare i trasferimenti tra progetti. Consulta Configurare i Controlli di servizio VPC per i trasferimenti di archiviazione di oggetti cloud.
Autorizzazioni AWS e Microsoft
Devi anche configurare l'accesso ai file sorgente se si trovano in AWS S3 o Microsoft Azure Storage. I seguenti documenti descrivono in dettaglio i passaggi richiesti: