Configurare l'accesso a un'origine: archiviazione Microsoft Azure

Prima di trasferire i dati da un bucket di Azure Storage, devi configurare l'accesso a questo bucket in modo che Storage Transfer Service possa recuperare i relativi oggetti.

Storage Transfer Service supporta i seguenti metodi di autenticazione di Azure:

  • Token di firma di accesso condiviso (SAS). I token SAS possono essere specificati direttamente durante la creazione di un job di trasferimento oppure possono essere archiviati in Secret Manager.

  • Le chiavi condivise di Azure possono essere archiviate in Secret Manager e il secret può essere passato durante la creazione di un job di trasferimento.

  • Le credenziali federate vengono passate in un oggetto federatedIdentityConfig durante la creazione del job di trasferimento.

Questo documento include anche informazioni sull'aggiunta degli indirizzi IP dei worker di Storage Transfer Service al firewall di Azure Storage per consentire l'accesso. Per maggiori dettagli, consulta la sezione Limitazioni degli indirizzi IP.

Aree geografiche supportate

Storage Transfer Service è in grado di trasferire dati dalle seguenti regioni di Microsoft Azure Storage:
  • Americhe: East US, East US 2, West US, West US 3, Central US, North Central US, South Central US, West Central US, Canada Central, Canada East, Brazil South
  • Asia Pacifico: Australia Central, Australia East, Australia Southeast, Central India, South India, West India, Southeast Asia, East Asia, Japan East, Japan West, Korea South, Korea Central
  • Europa, Medio Oriente, Africa (EMEA): France Central, Germany West Central, Norway East, Sweden Central, Switzerland North, North Europe, West Europe, UK South, UK West, Qatar Central, UAE North, South Africa North

Opzione 1: autenticazione tramite un token SAS

Segui questi passaggi per configurare l'accesso a un container di Microsoft Azure Storage utilizzando un token SAS. In alternativa, puoi salvare il token SAS in Secret Manager. Per farlo, segui le istruzioni riportate in Eseguire l'autenticazione utilizzando una chiave condivisa di Azure o un token SAS in Secret Manager.

  1. Crea o utilizza un utente di Microsoft Azure Storage esistente per accedere all'account di archiviazione per il container Blob di Microsoft Azure Storage.

  2. Crea un token SAS a livello di container. Per istruzioni, consulta Concedere l'accesso limitato alle risorse di Azure Storage utilizzando le firme di accesso condiviso.

    1. I servizi consentiti devono includere Blob.

    2. Per Tipi di risorse consentiti , seleziona sia Container sia Oggetto.

    3. Le autorizzazioni consentite devono includere Lettura ed Elenco. Se il trasferimento è configurato per eliminare gli oggetti dall'origine, devi includere anche l'autorizzazione Elimina.

    4. Il tempo di scadenza predefinito per i token SAS è di 8 ore. Imposta un tempo di scadenza ragionevole che ti consenta di completare correttamente il trasferimento.

    5. Non specificare indirizzi IP nel campo Indirizzi IP consentiti. Storage Transfer Service utilizza vari indirizzi IP e non supporta la limitazione degli indirizzi IP.

    6. I protocolli consentiti devono essere solo HTTPS.

  3. Una volta creato il token, prendi nota del valore del token SAS restituito. Questo valore ti servirà per configurare il trasferimento con Storage Transfer Service.

Opzione 2: autenticazione tramite una chiave condivisa di Azure o un token SAS in Secret Manager

Secret Manager è un servizio sicuro che archivia e gestisce dati sensibili come le password. Utilizza una crittografia efficace, controllo dell'accesso basato sui ruoli e la registrazione delle attività di audit per proteggere i secret.

Storage Transfer Service supporta i nomi delle risorse di Secret Manager che fanno riferimento alle credenziali di Azure archiviate in modo sicuro.

Per utilizzare una chiave condivisa di Azure, devi salvarla in Secret Manager. I token SAS possono essere salvati in Secret Manager o passati direttamente.

Quando specifichi una chiave condivisa, Storage Transfer Service la utilizza per generare una SAS del servizio con ambito limitato al container di Azure specificato nel job di trasferimento.

Abilita l'API

Abilita l'API Secret Manager.

Ruoli richiesti per abilitare le API

Per abilitare le API, devi disporre dell'autorizzazione serviceusage.services.enable. Se hai creato il progetto, probabilmente hai già questa autorizzazione tramite il ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il ruolo Amministratore utilizzo servizi (roles/serviceusage.serviceUsageAdmin). Scopri come concedere i ruoli.

Abilita l'API

Configura autorizzazioni aggiuntive

Autorizzazioni utente

L'utente che crea il secret richiede il seguente ruolo:

  • Secret Manager Admin (roles/secretmanager.admin)

Scopri come concedere un ruolo.

Autorizzazioni service agent

Il service agent Storage Transfer Service richiede il seguente ruolo IAM:

  • Secret Manager Secret Accessor (roles/secretmanager.secretAccessor)

Per concedere il ruolo al service agent:

console Cloud

  1. Segui le istruzioni per recuperare l'indirizzo email del service agent.

  2. Vai alla pagina IAM nella Google Cloud console.

    Vai a IAM

  3. Fai clic su Concedi l'accesso.

  4. Nella casella di testo Nuove entità, inserisci l'indirizzo email del service agent.

  5. Nel menu a discesa Seleziona un ruolo, cerca e seleziona Secret Manager Secret Accessor.

  6. Fai clic su Salva.

gcloud

Utilizza il comando gcloud projects add-iam-policy-binding per aggiungere il ruolo IAM al service agent.

  1. Segui le istruzioni per recuperare l'indirizzo email del service agent.

  2. Dalla riga di comando, inserisci il seguente comando:

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member='serviceAccount:SERVICE_AGENT_EMAIL' \
      --role='roles/secretmanager.secretAccessor'
    

Crea un secret

Crea un secret con Secret Manager:

console Cloud

  1. Vai alla pagina Secret Manager nella Google Cloud console.

    Vai a Secret Manager

  2. Fai clic su Crea secret.

  3. Inserisci un nome.

  4. Nella casella di testo Valore secret, inserisci le credenziali in uno dei seguenti formati.

    {
      "sas_token" : "SAS_TOKEN_VALUE"
    }
    

    Oppure:

    {
      "access_key" : "ACCESS_KEY"
    }
    
  5. Fai clic su Crea secret.

  6. Una volta creato il secret, prendi nota del nome completo della risorsa:

    1. Seleziona la scheda Panoramica.

    2. Copia il valore di Nome risorsa. Utilizza il seguente formato:

      projects/1234567890/secrets/SECRET_NAME

gcloud

Per creare un nuovo secret utilizzando lo strumento a riga di comando gcloud, passa le credenziali in formato JSON al comando gcloud secrets create:

printf '{
  "sas_token" : "SAS_TOKEN_VALUE"
}' | gcloud secrets create SECRET_NAME --data-file=-

Oppure:

printf '{
  "access_key" : "ACCESS_KEY"
}' | gcloud secrets create SECRET_NAME --data-file=-

Recupera il nome completo della risorsa del secret:

gcloud secrets describe SECRET_NAME

Prendi nota del valore di name nella risposta. Utilizza il seguente formato:

projects/1234567890/secrets/SECRET_NAME

Per maggiori dettagli sulla creazione e la gestione dei secret, consulta la documentazione di Secret Manager.

Passa il secret al comando di creazione del job

L'utilizzo di Secret Manager con Storage Transfer Service richiede l'utilizzo dell'API REST per creare un job di trasferimento.

Passa il nome della risorsa di Secret Manager come valore del transferSpec.azureBlobStorageDataSource.credentialsSecret campo:

POST h