Prima di creare un trasferimento basato su agente, devi configurare le autorizzazioni per il le seguenti entità:
L'account di servizio dell'utente o gestito dall'utente utilizzato per creare il trasferimento. Questo è il collegato alla console Google Cloud o l'account collegato specificato durante l'autenticazione nell'interfaccia a riga di comando
gcloud
. L'account utente può essere un account utente normale o un account di servizio gestito dall'utente.L'account di servizio gestito da Google, chiamato anche servizio usato da Storage Transfer Service. Questo account è generalmente identificato da il suo indirizzo email, che utilizza il formato
project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com
.L'account dell'agente trasferito che fornisce Google Cloud autorizzazioni per gli agenti di trasferimento. Per l'autenticazione, gli account agente di trasferimento utilizzano le credenziali dell'utente che li installa o le credenziali di un account di servizio gestito dall'utente.
Per ulteriori informazioni sulla concessione dei ruoli IAM, consulta Concedere, modificare e revocare l'accesso alle risorse.
Il metodo più semplice per concedere le autorizzazioni
È possibile utilizzare l'interfaccia a riga di comando gcloud
per concedere le autorizzazioni richieste al
dall'account di servizio gestito dall'utente o dall'utente e all'account di servizio gestito da Google.
Queste autorizzazioni consentono all'utente di creare, modificare
ed eliminare job di trasferimento,
e impostare o modificare i limiti di larghezza di banda.
Se queste autorizzazioni sono troppo ampie per i criteri 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 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.
Per l'account di servizio gestito dall'utente / 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 dell'account di servizio gestito dall'utente o dell'utente
Questa sezione illustra i ruoli richiesti per gestire e gestire eseguendo trasferimenti. I requisiti della tua organizzazione determineranno il ruoli per ogni utente tipo; in questa sezione si presuppone che creerai amministratore e utente.
Account amministratore
Gli account amministratore di Storage Transfer Service gestiscono gli agenti di trasferimento, impostano limiti di utilizzo della larghezza di banda ed eliminano i job di trasferimento.
Per configurare un account amministratore, assegna le seguenti autorizzazioni e 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 assegnalo. |
Amministratore Storage Transfer
(roles/storagetransfer.admin )
|
Consente azioni amministrative nel progetto di trasferimento, ad esempio la configurazione del progetto e il monitoraggio degli agenti. | 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 i trasferimenti. Questi account in genere non hanno 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 le autorizzazioni e i ruoli seguenti al :
Ruolo / Autorizzazione | Funzione | Note |
---|---|---|
resourcemanager.projects.getIamPolicy |
Utilizzato per confermare che l'account di servizio gestito da Google dispone della le autorizzazioni Pub/Sub 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. |
Utente Storage Transfer
(roles/storagetransfer.user )
|
Consente all'utente di creare, ottenere, 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 protocollo
Servizio gestito da Google
account per spostare i dati. Questo account di servizio viene creato automaticamente
la prima volta che crei un job di trasferimento, chiama
googleServiceAccounts.get
o visita la pagina per la creazione di offerte di lavoro nel
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 del tuo account di servizio, utilizza la chiamata API
googleServiceAccounts.get
.
Assegnazione automatica dei ruoli
Esistono due modi per assegnare automaticamente i ruoli corretti al Account di servizio gestito da Google:
Crea il trasferimento utilizzando la console Google Cloud. La console applica automaticamente le autorizzazioni richieste.
Usa
gcloud transfer authorize --add-missing
. Consulta Il metodo più semplice per concedere le autorizzazioni.
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 |
---|---|---|
Creator di oggetti archiviazione
(roles/storage.objectCreator )
|
Consente a Storage Transfer Service di creare log di trasferimento nel bucket Cloud Storage collegato a questo trasferimento. |
Concedere a tutti i bucket Cloud Storage utilizzati in un trasferimento. Se
appropriato per la tua situazione, puoi concedere il ruolo
dal livello di progetto al progetto da cui è in esecuzione Storage Transfer Service.
Per un elenco dettagliato delle autorizzazioni concesse da questi ruoli, consulta Ruoli predefiniti di Cloud Storage. |
Visualizzatore oggetti Storage
(roles/storage.objectViewer )
|
Consente a Storage Transfer Service di determinare se un file è già stato trasferito a o da Cloud Storage. | |
Agente Storage Transfer
(roles/storagetransfer.serviceAgent )
|
Consente a Storage Transfer Service di creare e modificare automaticamente gli argomenti Pub/Sub per comunicare da Google Cloud agli agenti di trasferimento. |
Applicare il ruolo a livello di progetto al progetto
Storage Transfer Service è in esecuzione.
Per un elenco dettagliato delle autorizzazioni concesse da questo ruolo, consulta Autorizzazioni e ruoli. |
Storage Legacy Bucket Reader
(roles/storage.legacyBucketReader )
|
Consente a Storage Transfer Service di leggere i metadati dei bucket Cloud Storage. |
Concedere la licenza a ogni bucket Cloud Storage utilizzato in un trasferimento. È possibile concedere solo ruoli |
Per le istruzioni, vedi Concedere le autorizzazioni richieste.
Autorizzazioni account agente di trasferimento
Gli agenti di trasferimento di Storage Transfer Service possono essere eseguiti con l'account dell'utente o con un account di servizio.
Per configurare un account di servizio o un account utente dell'agente di trasferimento che esegue gli agenti di trasferimento, assegna il seguente ruolo:
Ruolo/Autorizzazione | Funzione | Note |
---|---|---|
Agente Storage Transfer
(roles/storagetransfer.transferAgent )
|
Concede agli agenti di trasferimento le autorizzazioni di Storage Transfer Service e Pub/Sub necessarie per completare un trasferimento. |
Concedi questo ruolo all'account utente o di servizio utilizzato dagli agenti.
Per un elenco dettagliato delle autorizzazioni concesse da questo ruolo, consulta Controllo dell'accesso con IAM. |
Autorizzazioni di origine e destinazione
Devi inoltre assicurarti che l'account agente disponga delle autorizzazioni corrette per accedere ai dati di origine e scrivere nella destinazione.
File system, archiviazione compatibile con S3 o HDFS a Cloud Storage
Se la destinazione di trasferimento è un bucket Cloud Storage, l'agente di trasferimento deve disporre delle seguenti autorizzazioni per il bucket di destinazione. Per istruzioni, consulta Aggiungere un'entità a un criterio a livello di bucket.
Autorizzazione | Descrizione |
---|---|
storage.objects.create |
Consente all'account agente di scrivere oggetti Cloud Storage durante il trasferimento. |
storage.objects.get |
Consente all'account agente di leggere i dati e i metadati degli oggetti. |
storage.objects.list |
Consente all'account agente di elencare gli oggetti in Cloud Storage di sincronizzare la directory di una VM con un bucket. |
storage.objects.delete |
Obbligatorio se il trasferimento è configurato per sovrascrivere o eliminare gli oggetti
nel lavandino; ad esempio, se
overwriteObjectsAlreadyExistingInSink
o deleteObjectsUniqueInSink sono impostati nel
TransferOptions. |
Per concedere queste autorizzazioni, concedi il seguente ruolo:
- Storage Object Admin (
roles/storage.objectAdmin
)
In alternativa, crea un ruolo personalizzato con l'impostazione autorizzazioni e concedere il ruolo personalizzato.
Sono necessarie autorizzazioni aggiuntive per abilita i caricamenti multiparte.
Da Cloud Storage a file system
Se l'origine del trasferimento è un bucket Cloud Storage, l'agente di trasferimento deve disporre della seguente autorizzazione sul bucket di origine.
Autorizzazione | Descrizione |
---|---|
storage.objects.create |
Consente all'account agente di scrivere i log di trasferimento e i relativi metadati al bucket di origine Cloud Storage. |
storage.objects.get |
Consente all'account agente di leggere i dati e i metadati degli oggetti. |
storage.objects.list |
Consente all'account agente di elencare gli oggetti nel bucket Cloud Storage. |
storage.objects.delete |
Obbligatorio se il trasferimento è configurato per eliminare gli oggetti
dall'origine. Consulta:
deleteObjectsFromSourceAfterTransfer . |
Per concedere questa autorizzazione, concedi il seguente ruolo:
- Storage Object Viewer (
roles/storage.objectViewer
)
In alternativa, crea un ruolo personalizzato con l'opzione e concedere il ruolo personalizzato.
Da file system a file system
Se il trasferimento è tra due file system, l'agente di trasferimento deve avere le seguenti autorizzazioni per il bucket intermedio.
Autorizzazione | Descrizione |
---|---|
storage.objects.create |
Consente all'account agente di scrivere oggetti Cloud Storage durante il trasferimento. |
storage.objects.get |
Consente all'account agente di leggere i dati e i metadati degli oggetti. |
storage.objects.list |
Consente all'account agente di elencare gli oggetti nel bucket Cloud Storage. |
storage.objects.delete |
Obbligatorio se il trasferimento è configurato per eliminare oggetti nel al bucket intermedio al termine del trasferimento. |
Per concedere queste autorizzazioni, concedi il seguente ruolo:
- Storage Object Admin (
roles/storage.objectAdmin
)
In alternativa, crea un ruolo personalizzato con le autorizzazioni specifiche e concedilo.
Per abilitare i caricamenti suddivisi in più parti sono necessarie autorizzazioni aggiuntive.
Caricamenti multiparte
Per attivare caricamenti multiparte dei file system in Cloud Storage, i trasferimenti o i trasferimenti tra file system, concedi inoltre le seguenti autorizzazioni all'agente.
- Per i trasferimenti a Cloud Storage, assegna le autorizzazioni alla destinazione di sincronizzare la directory di una VM con un bucket.
- Per i trasferimenti tra file system, assegnare le autorizzazioni al livello intermedio di sincronizzare la directory di una VM con un bucket.
Nome autorizzazione caricamento multiparte | Descrizione |
---|---|
storage.multipartUploads.create |
Caricare oggetti in più parti. |
storage.multipartUploads.abort |
Interrompi le sessioni di caricamento multiparte. |
storage.multipartUploads.listParts |
Elenca le parti dell'oggetto caricate in una sessione di caricamento multiparte. |
storage.multipartUploads.list |
Elenca le sessioni di caricamento con più parti in un bucket. |
Per concedere queste autorizzazioni, assegna il ruolo seguente:
- Amministratore oggetti Storage (
roles/storage.objectAdmin
)
In alternativa, crea un ruolo personalizzato con l'impostazione autorizzazioni e concedere il ruolo personalizzato.