Trasferimento di dati da Amazon S3 a Cloud Storage utilizzando Controlli di servizio VPC e Storage Transfer Service


Questo tutorial descrive come rafforzare i trasferimenti di dati da Amazon Simple Storage Service (Amazon S3) a Cloud Storage utilizzando Storage Transfer Service con un perimetro Controlli di servizio VPC. Questo tutorial è destinato ai proprietari di dati con dati che risiedono in Amazon S3 e che vogliono elaborare o migrare questi dati in modo sicuro su Google Cloud.

Questo tutorial presuppone la conoscenza di Amazon Web Services (AWS) e delle nozioni di base sull'utilizzo dei dati negli archivi di oggetti. Questo tutorial applica un metodo basato su account di servizio per controllare l'accesso utilizzando Gestore contesto accesso. Per livelli di accesso più avanzati oltre al metodo basato su account di servizio, consulta Creazione di un livello di accesso.

Architettura

Il seguente diagramma illustra l'architettura dei Controlli di servizio VPC.

Architettura dei Controlli di servizio VPC in cui la comunicazione tra i servizi Google Cloud è negata al di fuori del perimetro controllato.

Nel diagramma precedente, Controlli di servizio VPC nega esplicitamente la comunicazione tra i servizi Google Cloud, a meno che entrambi i progetti si trovino nel perimetro controllato.

Obiettivi

  • Configura l'accesso AWS.
  • Crea il perimetro dei Controlli di servizio VPC.
  • Crea un criterio di accesso e un livello di accesso utilizzando Gestore contesto accesso.
  • Utilizza Storage Transfer Service per spostare i dati tra Amazon S3 e Cloud Storage.
  • Pianifica Storage Transfer Service per recuperare i dati in base a una pianificazione.

Costi

In questo documento, utilizzi i seguenti componenti fatturabili di Google Cloud:

There are no extra costs to use Storage Transfer Service; however, Cloud Storage pricing and external provider costs apply when using Storage Transfer Service.

Per generare una stima dei costi in base all'utilizzo previsto, utilizza il Calcolatore prezzi. I nuovi utenti di Google Cloud potrebbero essere idonei per una prova gratuita.

Una volta completate le attività descritte in questo documento, puoi evitare la fatturazione continua eliminando le risorse che hai creato. Per ulteriori informazioni, consulta la pagina Pulizia.

Oltre alle risorse Google Cloud, questo tutorial utilizza le seguenti risorse Amazon Web Services (AWS), che potrebbero comportare dei costi:

Prima di iniziare

  1. Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

  4. Abilita le API Access Context Manager, Cloud Storage, and Storage Transfer Service.

    Abilita le API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

  7. Abilita le API Access Context Manager, Cloud Storage, and Storage Transfer Service.

    Abilita le API

  8. Nella console Google Cloud, attiva Cloud Shell.

    Attiva Cloud Shell

    Nella parte inferiore della console Google Cloud viene avviata una sessione di Cloud Shell che mostra un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installato e con valori già impostati per il progetto attuale. L'inizializzazione della sessione può richiedere alcuni secondi.

  9. Nella console Google Cloud, vai alla pagina IAM e amministrazione per assegnare al tuo account il ruolo di Amministratore Storage e Amministratore Gestore contesto accesso.
    Vai alla pagina IAM e amministrazione
  10. Il ruolo Amministratore Storage dispone delle seguenti autorizzazioni:

    • firebase.projects.get
    • resourcemanager.projects.get
    • resourcemanager.projects.list
    • storage.buckets.*
    • storage.objects.*

    Il ruolo Amministratore Gestore contesto accesso dispone delle seguenti autorizzazioni:

    • accesscontextmanager.accessLevels.*
    • accesscontextmanager.accessPolicies.*
    • accesscontextmanager.accessPolicies.setIamPolicy
    • accesscontextmanager.accessPolicies.update
    • accesscontextmanager.accessZones.*
    • accesscontextmanager.policies.*
    • accesscontextmanager.servicePerimeters.*
    • resourcemanager.organizations.get

Configurazione dell'accesso AWS

In questo tutorial lavorerai con gli utenti esistenti di AWS Identity and Access Management (AWS IAM) per creare un criterio AWS IAM per interfacciarsi con StorageTransfer Service. Questi criteri e utenti sono necessari per autenticare la tua connessione a Google Cloud e contribuire a proteggere i tuoi dati in transito. Questo tutorial richiede di avere un bucket Amazon S3 da cui trasferire i dati. Puoi utilizzare un bucket Amazon S3 esistente o creare un nuovo bucket. Puoi utilizzare un account AWS di test o sandbox per evitare di influire sulle risorse di produzione dello stesso account.

Crea un criterio AWS IAM per Storage Transfer Service e applicalo al bucket

  1. Nella console di gestione AWS, vai alla pagina IAM.
  2. Fai clic su Criteri e poi su Crea criterio.
  3. Nell'editor visivo, fai clic su Criterio IAM.
  4. Fai clic su S3.
  5. Seleziona le seguenti caselle di controllo per il livello di accesso:

    • Elenca
    • Leggi
    • Scrittura
  6. Nel riquadro Risorse, fai clic su Specifiche.

  7. Nel riquadro Bucket, fai clic su Aggiungi ARN.

  8. Nel campo Nome bucket, inserisci il nome del bucket da cui stai trasferendo i dati.

  9. Fai clic su Rivedi criterio e inserisci un nome, ad esempio transfer-user-policy.

  10. Fai clic su Crea criterio.

Aggiungi utenti AWS IAM al tuo criterio AWS IAM

  1. Nella console di gestione AWS, vai alla pagina IAM.
  2. Fai clic su Utenti e poi su Aggiungi utente.
  3. Nel campo Nome, inserisci transfer-user.
  4. In Tipo di accesso, fai clic su Accesso programmatico e collega il transfer-user-policy che hai creato per l'utente.
  5. Dopo aver creato l'utente, prendi nota della coppia di ID di accesso e chiave segreta perché verrà utilizzata più avanti nel tutorial.
  6. Fai clic su Salva.

Creazione di un bucket Cloud Storage

Prima di poter abilitare il perimetro dei Controlli di servizio VPC, devi creare un bucket Cloud Storage.

  1. Nella console Google Cloud, vai al browser Cloud Storage.

    Vai alla pagina Browser Cloud Storage

  2. Fai clic su Crea bucket.

  3. Nel campo Nome, inserisci un nome, ad esempio project-id-destination-bucket, dove project-id rappresenta l'ID progetto Google Cloud.

  4. In Classe di archiviazione predefinita del bucket, fai clic su Regional Storage.

  5. Nell'elenco a discesa Località, fai clic su una regione in cui sono archiviati i dati del bucket.

  6. Fai clic su Crea.

Individuare il nome dell'account di servizio delle operazioni di trasferimento

Storage Transfer Service utilizza un agente di servizio per comunicare con le risorse Cloud Storage e Pub/Sub all'interno del progetto. Devi determinare il nome dell'agente di servizio perché verrà utilizzato più avanti in questo tutorial. Se non hai mai utilizzato Storage Transfer Service, segui i passaggi riportati di seguito per creare l'agente di servizio Storage Transfer Service per te. Per ulteriori informazioni sugli agenti di servizio, consulta Agenti di servizio.

  1. Per determinare il nome dell'agente di servizio, vai alla pagina dell'API Storage Transfer Service.
  2. Nel campo Stringa, inserisci l'ID del tuo progetto Google Cloud.

    In genere il nome dell'agente di servizio ha il seguente formato: project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com

Creazione del criterio di accesso in Gestore contesto accesso

Un criterio di accesso raccoglie i perimetri di servizio e i livelli di accesso che crei per l'organizzazione. Un'organizzazione può avere un solo criterio di accesso.

  1. Nella console Google Cloud, vai alla pagina Impostazioni.

    Vai alla pagina Impostazioni

  2. Prendi nota dell'ID progetto Google Cloud e del nome dell'organizzazione.

  3. In Cloud Shell, crea un criterio:

    gcloud access-context-manager policies create \
        --organization organization-id --title policy-title
    
    • organization-id è l'ID organizzazione che hai trovato in precedenza.
    • policy-title è il titolo del perimetro. Ad esempio, Example-Company-Access-Policy.

    L'output è il seguente:

    Create request issued
    Waiting for operation [accessPolicies/policy-title/create/policy-number] to complete...done.
    Created.
    

    policy-number rappresenta un ID univoco assegnato al titolo del criterio.

Creazione del perimetro dei Controlli di servizio VPC

Quando crei il perimetro dei Controlli di servizio VPC, inizi senza traffico consentito. Quindi, crei un livello di accesso esplicito per consentire all'operazione di trasferimento di inviare dati al perimetro controllato.

  1. Nella console Google Cloud, vai alla pagina Controlli di servizio VPC.

    Vai alla pagina Controlli di servizio VPC

  2. Fai clic su Nuovo perimetro.

  3. Nel campo Nome, inserisci un nome per il perimetro, ad esempio data-transfer-perimeter.

  4. Lascia selezionato Perimetro regolare.

  5. Fai clic su Aggiungi progetto e aggiungi il progetto creato tramite questo tutorial all'elenco dei progetti da proteggere.

  6. Fai clic su API Cloud Storage.

  7. Lascia invariato il valore predefinito per Livelli di accesso.

  8. Fai clic su Salva.

Creazione di un livello di accesso nel criterio di accesso

In questa sezione, limiterai l'accesso al VPC tramite l'account di servizio.

  1. In Cloud Shell, crea un file YAML denominato conditions.yaml che elenca le entità a cui vuoi fornire l'accesso:

     - members:
         - serviceAccount:project-project-number@storage-transfer-service.iam.gserviceaccount.com
         - user:sysadmin@example.com
     

  2. Crea il livello di accesso:

    gcloud access-context-manager levels create name \
        --title title \
        --basic-level-spec ~./conditions.yaml \
        --combine-function=OR \
        --policy=policy-id
    
    • name è il nome univoco del livello di accesso. Deve iniziare con una lettera e includere solo lettere, numeri e trattini bassi.
    • title è un titolo univoco per la norma, ad esempio trusted-identity-ingest.
    • policy-id è l'ID (numero) del criterio di accesso della tua organizzazione.
    • combine-function impostata su OR. Il valore predefinito AND richiede che tutte le condizioni siano soddisfatte prima che venga concesso un livello di accesso. Il valore OR concede l'accesso alle entità anche se non vengono soddisfatte altre condizioni, come l'indirizzo IP o quelle ereditate da altri livelli di accesso richiesti.

    L'output è simile al seguente:

    Create request issued for: name
    Waiting for operation [accessPolicies/policy-id/accessLevels/name/create/access-level-number] to complete...done.
    Created level name.
    

    access-level-number rappresenta un ID univoco assegnato al livello di accesso.

Associazione del livello di accesso ai Controlli di servizio VPC

  1. Nella console Google Cloud, vai a Controlli di servizio VPC.

    Vai alla pagina Controlli di servizio VPC

  2. Fai clic su Modifica per Controllo di servizio VPC.

  3. Fai clic su Livello di accesso e seleziona il livello di accesso trusted-identity-ingest.

  4. Fai clic su Salva.

Ora le uniche operazioni consentite nel perimetro controllato provengono dall'account di servizio che hai definito.

Avvio del trasferimento

  1. Nella console Google Cloud, vai alla pagina Trasferisci.

    Vai alla pagina Trasferisci

  2. Fai clic su Crea trasferimento.

  3. Fai clic su Bucket Amazon S3.

  4. Nel campo Bucket Amazon S3, inserisci il nome del bucket Amazon S3 di origine così come viene visualizzato nella Console di gestione AWS.

  5. Inserisci l'ID chiave di accesso e la chiave segreta associati al bucket Amazon S3. Hai copiato questi valori all'inizio di questo tutorial.

  6. In Seleziona destinazione, inserisci il nome del bucket che hai creato nel perimetro, ad esempio project-id-destination-bucket.

  7. In Configura trasferimento, pianifica il job di trasferimento su Esegui ora.

  8. (Facoltativo) Modifica il nome del job di trasferimento.

  9. In Descrizione utilizza un nome descrittivo univoco che ti aiuti a identificare in seguito il job di trasferimento.

  10. Fai clic su Crea.

Esegui la pulizia

Per evitare che al tuo Account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questo tutorial, elimina il progetto che contiene le risorse oppure mantieni il progetto ed elimina le singole risorse.

Elimina il progetto

  1. Nella console Google Cloud, vai alla pagina Gestisci risorse.

    Vai a Gestisci risorse

  2. Nell'elenco dei progetti, seleziona il progetto che vuoi eliminare, quindi fai clic su Elimina.
  3. Nella finestra di dialogo, digita l'ID del progetto e fai clic su Chiudi per eliminare il progetto.

Passaggi successivi