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:
- 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. Consulta Delegare le autorizzazioni dell'agente di servizio a un account di servizio 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
È 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:
Crea il trasferimento utilizzando la Google Cloud console. La console applica automaticamente le autorizzazioni richieste.
Utilizza
gcloud transfer authorize --add-missing
. Consulta Il metodo più semplice per concedere le autorizzazioni.
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 |
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 |
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: