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


Questo tutorial descrive come proteggere 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 che tu conosca Amazon Web Services (AWS) e le basi dell'utilizzo dei dati negli archivi di oggetti. Questo tutorial applica un metodo di controllo dell'accesso basato su account di servizio utilizzando Gestore contesto accesso. Per livelli di accesso più avanzati oltre al metodo basato sull'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 non rientrino 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 vengono utilizzati i seguenti componenti fatturabili di Google Cloud:

Non sono previsti costi aggiuntivi per l'utilizzo di Storage Transfer Service; tuttavia, per l'utilizzo di Storage Transfer Service si applicano i prezzi di Cloud Storage e i costi dei provider esterni.

Per generare una stima dei costi in base all'utilizzo previsto, utilizza il Calcolatore prezzi. I nuovi utenti di Google Cloud possono essere idonei a una prova senza costi aggiuntivi.

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 avere 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. Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  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. Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  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 concedere al tuo account il ruolo Amministratore Storage e Amministratore Gestore contesto accesso.
    Vai alla pagina IAM e amministrazione
  10. Il ruolo Amministratore archiviazione 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 AWS Identity and Access Management (AWS IAM) esistenti per creare un criterio AWS IAM da interfacciare con StorageTransferService. Questi criteri e questi utenti sono necessari per autenticare la connessione a Google Cloud e per proteggere i tuoi dati in transito. Questo tutorial richiede che tu disponga di 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 tuo bucket

  1. Nella console di gestione AWS, vai alla pagina IAM.
  2. Fai clic su Norme e poi su Crea norma.
  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
    • Lettura
    • 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 Leggi norme 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 di chiavi secret, perché viene utilizzata più avanti nel tutorial.
  6. Fai clic su Salva.

Creazione di un bucket Cloud Storage

Prima di poter abilitare il tuo perimetro 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 il tuo ID progetto Google Cloud.

  4. In Classe di archiviazione predefinita per il bucket, fai clic su Archiviazione a livello di regione.

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

  6. Fai clic su Crea.

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

Storage Transfer Service utilizza un account di servizio gestito da Google per comunicare con le risorse Cloud Storage e Pub/Sub all'interno del tuo progetto. Devi determinare il nome dell'account di servizio perché verrà utilizzato più avanti in questo tutorial. Se non hai mai utilizzato Storage Transfer Service, l'account di servizio Storage Transfer Service viene creato per te. Per ulteriori informazioni sugli account di servizio gestiti da Google, consulta Account di servizio.

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

    Il nome dell'account di servizio ha in genere 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 la tua 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 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, creerai 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 che hai creato tramite questo tutorial all'elenco dei progetti da proteggere.

  6. Fai clic su API Cloud Storage.

  7. Lascia 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 limiti 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, come trusted-identity-ingest.
    • policy-id è l'ID (numero) del criterio di accesso della tua organizzazione.
    • combine-function è impostato su OR. Il valore predefinito AND richiede che vengano soddisfatte tutte le condizioni prima che venga concesso un livello di accesso. Il valore OR concede alle entità l'accesso anche se non vengono soddisfatte altre condizioni, come l'indirizzo IP o quelle ereditate da altri livelli di accesso obbligatori.

    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 secret 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 il job di trasferimento in un secondo momento.

  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