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 è rivolto ai proprietari di 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 le nozioni di base 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 viene 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 si trovino nel perimetro controllato.

Obiettivi

  • Configurare 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 dati tra Amazon S3 e Cloud Storage.
  • Pianifica Storage Transfer Service in modo che recuperi i dati in base a una pianificazione.

Costi

In questo documento vengono utilizzati 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 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 assegnare al tuo account il ruolo Amministratore Storage e Amministratore Gestore contesto accesso.
    Vai alla pagina IAM e amministrazione
  10. Il ruolo Amministratore Storage ha le 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 StorageTransfer Service. Questi criteri e questi utenti sono necessari per autenticare la connessione a Google Cloud e per proteggere i dati in transito. Questo tutorial richiede 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 nello 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, quindi 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 Livello di accesso:

    • Elenca
    • Letto
    • Scrittura
  6. Nel riquadro Risorse, fai clic su Specifica.

  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 le 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, quindi su Aggiungi utente.
  3. Nel campo Nome, inserisci transfer-user.
  4. In Tipo di accesso, fai clic su Accesso programmatico e allega 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é verrà utilizzata più avanti nel tutorial.
  6. Fai clic su Salva.

Creazione di un bucket Cloud Storage

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

  4. Per Classe di archiviazione predefinita per il bucket, fai clic su Archiviazione regionale.

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

  6. Fai clic su Crea.

Individuazione del 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 tuo 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, i passaggi seguenti creano 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 il tuo ID progetto Google Cloud.

    Il nome dell'agente di servizio è in genere nel 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 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, all'inizio non è consentito alcun traffico. Quindi, creerai un livello di accesso esplicito per consentire all'operazione di trasferimento di inviare dati nel 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 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 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:[email protected]
     

  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 contenere solo lettere, numeri e trattini bassi.
    • title è un titolo univoco per il criterio, 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 tutte le condizioni siano soddisfatte prima che venga concesso un livello di accesso. Il valore OR consente alle entità di accedere 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 il 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 aiuterà 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