Quando trasferisci dati a un file system on-premise o cloud privato (ad esempio POSIX, NFS o SMB), devi configurare quanto segue:
- Autorizzazioni del file system locale: concedi agli agenti di trasferimento di destinazione l'accesso in scrittura a livello di sistema operativo alle directory di destinazione.
- Autorizzazioni del bucket intermedio (solo da file a file): concedi i ruoli IAM sul bucket Cloud Storage intermedio utilizzato per la gestione temporanea dei file tra i file system.
Prerequisiti
- Autorizzazioni utente: assicurati che il tuo account utente o account di servizio gestito dall'utente disponga dell'autorizzazione per configurare i job di trasferimento e i pool di agenti. Consulta Autorizzazioni utente richieste.
- Autorizzazioni a livello di progetto basate su agenti: assicurati di aver configurato i ruoli a livello di progetto richiesti per l'account dell'agente di servizio e dell'agente di trasferimento. Vedi Autorizzazioni a livello di progetto basate su agenti.
Autorizzazioni del file system di destinazione locale
Gli agenti di trasferimento scrivono i file direttamente nel file system host. Per consentire scritture riuscite:
Autorizzazioni utente del sistema operativo: assicurati che l'utente del sistema operativo che esegue il processo del container disponga delle autorizzazioni di lettura, scrittura ed esecuzione nell'albero delle directory di destinazione.
Monta le directory: quando installi gli agenti di destinazione, monta il percorso della directory di destinazione nel container utilizzando il flag
--mount-directories:gcloud transfer agents install --pool=DESTINATION_POOL_NAME \ --mount-directories=/path/to/destination/dir
Autorizzazioni per i bucket intermedi (trasferimenti da file a file)
I trasferimenti tra due file system utilizzano un bucket Cloud Storage intermedio per la gestione temporanea dei file durante il trasferimento.
I seguenti ruoli predefiniti concedono al service agent l'accesso richiesto al bucket intermedio:
- Storage Object Creator (
roles/storage.objectCreator) - Storage Object Viewer (
roles/storage.objectViewer) - Storage Legacy Bucket Reader (
roles/storage.legacyBucketReader)
Il seguente ruolo concede l'accesso richiesto al bucket intermedio agli account degli agenti di trasferimento:
- Storage Object User (
roles/storage.objectUser)
Concedi questi ruoli nel bucket intermedio:
Console
- Nella console Google Cloud , vai alla pagina Bucket in Cloud Storage.
- Fai clic sul menu Extra bucket () per il bucket intermedio e seleziona accesso in modifica.
- Fai clic su + Aggiungi entità.
- In Nuove entità, inserisci l'indirizzo email del service agent.
- Seleziona
Storage Object Creator,Storage Object ViewereStorage Legacy Bucket Readerdai menu a discesa Seleziona un ruolo. - Fai di nuovo clic su + Aggiungi entità.
- Inserisci l'indirizzo email degli account degli agenti di trasferimento utilizzati per i pool di agenti di origine e di destinazione.
- Seleziona
Storage Object Userdal menu a discesa Seleziona un ruolo. - Fai clic su Salva.
gcloud
Concedi i ruoli di logging e metadati all'agente di servizio:
gcloud storage buckets add-iam-policy-binding gs://INTERMEDIATE_BUCKET_NAME \ --member=serviceAccount:SERVICE_AGENT_EMAIL --role=roles/storage.objectCreatorgcloud storage buckets add-iam-policy-binding gs://INTERMEDIATE_BUCKET_NAME \ --member=serviceAccount:SERVICE_AGENT_EMAIL --role=roles/storage.objectViewergcloud storage buckets add-iam-policy-binding gs://INTERMEDIATE_BUCKET_NAME \ --member=serviceAccount:SERVICE_AGENT_EMAIL --role=roles/storage.legacyBucketReaderConcedi i ruoli di gestione degli oggetti agli account degli agenti di trasferimento per i pool di agenti di origine e di destinazione:
gcloud storage buckets add-iam-policy-binding gs://INTERMEDIATE_BUCKET_NAME \ --member=serviceAccount_OR_user:TRANSFER_AGENT_ACCOUNT --role=roles/storage.objectUserSostituisci:
- INTERMEDIATE_BUCKET_NAME: il nome del bucket di gestione temporanea intermedio.
- SERVICE_AGENT_EMAIL: l'indirizzo email dell'agente di servizio.
- serviceAccount_OR_user: specifica
serviceAccountse l'account dell'agente di trasferimento è un account di servizio ouserse gli agenti sono stati installati con un account utente. - TRANSFER_AGENT_ACCOUNT: l'indirizzo email dell'account che esegue gli agenti di trasferimento. Ripeti questo comando se i pool di agenti di origine e di destinazione utilizzano account diversi.
API REST
Genera un token di accesso per autenticare la tua richiesta. Se utilizzi l'interfaccia a riga di comando
gcloud, esegui:gcloud auth print-access-token
Recupera la policy IAM del bucket esistente (
GET https://storage./storage/v1/b/<var>INTERMEDIATE_BUCKET_NAME</var>/iam), aggiungi le seguenti associazioni al relativo arraybindingse salva la policy unita comeintermediate_policy.json:{ "bindings": [ { "role": "roles/storage.objectCreator", "members": ["serviceAccount:SERVICE_AGENT_EMAIL"] }, { "role": "roles/storage.objectViewer", "members": ["serviceAccount:SERVICE_AGENT_EMAIL"] }, { "role": "roles/storage.legacyBucketReader", "members": ["serviceAccount:SERVICE_AGENT_EMAIL"] }, { "role": "roles/storage.objectUser", "members": ["serviceAccount_OR_user:TRANSFER_AGENT_ACCOUNT"] } ] }
Sostituisci:
- SERVICE_AGENT_EMAIL: l'indirizzo email dell'agente di servizio.
- serviceAccount_OR_user: specifica
serviceAccountse l'account dell'agente di trasferimento è un account di servizio ouserse gli agenti sono stati installati con un account utente. - TRANSFER_AGENT_ACCOUNT: l'indirizzo email dell'account che ha installato gli agenti di trasferimento. Se i pool di agenti di origine e di destinazione utilizzano account diversi, includi entrambi gli account nell'array
membersperroles/storage.objectUser.
Aggiorna la policy del bucket intermedio tramite
curl:curl -X PUT --data-binary @intermediate_policy.json \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Type: application/json" \ "https://storage./storage/v1/b/INTERMEDIATE_BUCKET_NAME/iam"Sostituisci:
- OAUTH2_TOKEN: il token di accesso OAuth 2.0 generato nel passaggio 1.
- INTERMEDIATE_BUCKET_NAME: il nome del bucket intermedio.
Per ulteriori informazioni sulle architetture file-to-file, consulta Trasferimenti da file system a file system.
Prestazioni e ottimizzazione
- Per massimizzare la velocità effettiva durante il trasferimento a file system di grandi dimensioni, installa più agenti nel pool di agenti di destinazione (minimo consigliato: 3). Consulta le best practice per gli agenti di trasferimento.
- Per i file di grandi dimensioni nei trasferimenti da file a file, valuta la possibilità di attivare i caricamenti multiparte nel bucket intermedio. Quando utilizzi Storage Object User (
roles/storage.objectUser), le autorizzazioni di caricamento multiparte richieste (storage.multipartUploads.*) vengono incluse automaticamente.
Passaggi successivi
- Scopri come installare gli agenti di trasferimento.
- Scopri come configurare l'accesso a un'origine: file system.
- Scopri come configurare l'accesso a un'origine: Cloud Storage.
- Scopri come trasferire dati tra file system.