Utilizza un gateway VPC/VPN per l'accesso in loco privato e sicuro alle risorse cloud

Questa esercitazione comporterà degli addebiti. Utilizza lo stimatore costi per generare una stima dei costi basata sul tuo utilizzo previsto.

IBM offre una serie di modi per estendere in modo sicuro una rete di computer in loco con le risorse in IBM Cloud. Questo vi permette di beneficiare dell'elasticità del provisioning delle risorse cloud quando ne avete bisogno e di rimuoverle quando non sono più necessarie. Inoltre, puoi connettere in modo facile e sicuro le tue capacità in loco ai servizi IBM Cloud.

Questa esercitazione fornisce l'automazione per creare risorse che dimostrano la connettività VPN (Virtual Private Network) tra i server in loco e le risorse cloud come i servizi di dati IBM Cloud® Virtual Private Cloud Virtual Service Instances (VSI) e IBM Cloud. È configurata anche la risoluzione DNS per le risorse cloud. Il popolare gateway VPN strongSwan viene usato per rappresentare il gateway VPN in loco.

Obiettivi

  • Accedi a un ambiente VPC (Virtual Private Cloud) da un data center in loco
  • Raggiungere in modo sicuro i servizi cloud utilizzando gateway endpoint privati
  • Utilizzare DNS in loco per accedere alle risorse cloud tramite VPN

Il seguente diagramma mostra le risorse create da questa esercitazione

dell'architettura del

Una configurazione terraform creerà le seguenti risorse:

  1. L'infrastruttura (VPC, Subnets, Security Groups with rules, Network ACL e VSI).
  2. I gateway endpoint privati Object Storage e Databases for PostgreSQL ai servizi dati.
  3. Il software del gateway IPsec open source di strongSwan viene utilizzato in loco per stabilire la connessione VPN con l'ambiente cloud.
  4. Viene eseguito il provisioning di un gateway VPC/VPN per consentire la connessione privata tra le risorse in loco e le risorse cloud.
  5. Il resolver DNS in loco è connesso all'ubicazione del resolver DNS cloud per consentire l'accesso TLS alle risorse cloud, incluso l'accesso ai gateway endpoint privati virtuali tramite una VPN.

Prima di iniziare

Questa esercitazione richiede:

  • la CLI IBM Cloud,
    • Plugin IBM Cloud Schematics (schematics),
  • jq per eseguire query sui file JSON,
  • git to optionally clone source code repository,
  • Terraform CLI per eseguire facoltativamente Terraform sul tuo desktop invece del servizio Schematics.

Troverai le istruzioni per scaricare e installare questi strumenti per il tuo ambiente operativo nella guida Introduzione alle esercitazioni.

Il data center in loco in questa esercitazione verrà simulato utilizzando una VSI all'interno di un VPC.

Il meccanismo preferito per collegare i VPC è Transit Gateway. La simulazione di un ambiente in loco con VPC, VSI e VPN viene utilizzata solo a scopo illustrativo.

Inoltre:

Utilizza Schematics per creare le risorse

  1. Accedi a IBM Cloud.
  2. Passare a Crea spazi di lavoro Schematics Nella sezione Specifica modello, verificare:
    1. L' URL del repository è https://github.com/IBM-Cloud/vpc-tutorials/tree/master/vpc-site2site-vpn.
    2. La versione di Terraform è terraform_v1.2
  3. In Dettagli area di lavoro,
    1. Fornire il nome dell'area di lavoro: vpnsts.
    2. Scegliere un Resource Group e un Location.
    3. Fare clic su Avanti.
  4. Verificare i dettagli e cliccare su Crea.
  5. Nella sezione Variabili, fornire i valori richiesti (nome_gruppo_risorse, nome_chiave_ssh) facendo clic sul menu di overflow e selezionando Modifica per ogni riga. Il valore della variabile maintenance deve essere impostato su true.
  6. Scorrere fino alla parte superiore della pagina e fare clic su Applica piano. Controllare i log per visualizzare lo stato dei servizi creati.

Esplorare le risorse che sono state create facendo clic di seguito e selezionando l'istanza con il prefisso corrispondente. Individuare tutte le risorse nel diagramma precedente.

Verifica connettività

L'output dello spazio di lavoro Schematics contiene le variabili che possono essere utilizzate per verificare la connettività VPN.

  1. Ottenere l'elenco di spazi di lavoro, prendere nota della colonna ID, impostare la variabile shell:

    ibmcloud schematics workspace list
    
  2. Impostare la variabile WORKSPACE:

    WORKSPACE_ID=YOUR_WORKSPACE_ID
    
  3. Ottieni le variabili di ambiente per le risorse cloud:

    ibmcloud schematics output --id $WORKSPACE_ID --output json | jq -r '.[0].output_values[].environment_variables.value'
    
  4. Il risultato sarà simile al seguente. Copiare / incollare questi risultati nella shell per impostarli nell'ambiente:

    IP_FIP_ONPREM=169.48.x.x
    IP_PRIVATE_ONPREM=10.0.0.4
    IP_PRIVATE_CLOUD=10.1.1.4
    IP_FIP_BASTION=52.118.x.x
    IP_PRIVATE_BASTION=10.1.0.4
    IP_DNS_SERVER_0=10.1.0.5
    IP_DNS_SERVER_1=10.1.1.6
    IP_ENDPOINT_GATEWAY_POSTGRESQL=10.1.1.9
    IP_ENDPOINT_GATEWAY_COS=10.1.1.5
    HOSTNAME_POSTGRESQL=a43ddb63-dcb1-430a-a2e4-5d87a0dd12a6.6131b73286f34215871dfad7254b4f7d.private.databases.appdomain.cloud
    HOSTNAME_COS=s3.direct.us-south.cloud-object-storage.appdomain.cloud
    PORT_POSTGRESQL=32525
    
  5. Ora puoi SSH in ciascuna delle istanze che seguono percorsi diversi, incluso il passaggio attraverso la VPN. Il diagramma mostra i percorsi di comunicazione esercitati dai passi.

    Se la chiave SSH non è quella predefinita per SSH, è possibile impostare l'opzione -I PATH_TO_PRIVATE_KEY_FILE o consultare il manuale di riferimento SSH per ulteriori informazioni.

Verifica connettività
Verifica connettività

  1. Verifica l'accesso alla VSI in loco:
    ssh root@$IP_FIP_ONPREM
    
  2. Verifica l'accesso al bastion cloud:
    ssh root@$IP_FIP_BASTION
    
  3. Verifica l'accesso alla VSI cloud tramite bastion:
    ssh -J root@$IP_FIP_BASTION root@$IP_PRIVATE_CLOUD
    
  4. Verifica l'accesso alla VSI cloud tramite on - premise, tramite il tunnel VPN, tramite bastion:
    ssh -J root@$IP_FIP_ONPREM,root@$IP_FIP_BASTION root@$IP_PRIVATE_CLOUD
    
  5. Verifica l'accesso alla VSI in loco tramite il bastion, tramite la VSI cloud, tramite il tunnel VPN:
    ssh -J root@$IP_FIP_BASTION,root@$IP_PRIVATE_CLOUD root@$IP_PRIVATE_ONPREM
    

Verifica risoluzione DNS

La risoluzione DNS in loco è stata configurata per utilizzare l'ubicazione del resolver DNS IBM Cloud VPC. Ciò consente l'accesso ai servizi cloud in base al nome e la risoluzione agli indirizzi IP dei gateway endpoint privati.

Verifica la soluzione DNS per Postgresql e Object Storage tramite Virtual Endpoint Gateway. I due percorsi in fase di verifica sono mostrati nel seguente diagramma:

Verifica risoluzione DNS
Verifica risoluzione DNS

  1. Accedi alla VSI in loco.

    ssh root@$IP_FIP_ONPREM
    
  2. Copiare e incollare tre (3) delle variabili catturate in precedenza: HOSTNAME_POSTGRESQL, HOSTNAME_COS, PORT_POSTGRESQL.

  3. Eseguire un comando dig per confermare la risoluzione all'istanza del database tramite il gateway endpoint virtuale.

    dig $HOSTNAME_POSTGRESQL
    
  4. Verificare la connettività al database emettendo un comando telnet. Dovrebbe visualizzare "connesso".

    telnet $HOSTNAME_POSTGRESQL $PORT_POSTGRESQL
    
  5. Una volta connessi al database, immettere un Ctrl+C per disconnettersi.

  6. Eseguire un comando dig per confermare la risoluzione all'istanza di archiviazione oggetti cloud tramite il gateway endpoint virtuale.

    dig $HOSTNAME_COS
    
  7. Verificare la connettività all'istanza Cloud Object Storage emettendo un comando telnet. Dovrebbe visualizzare "connesso".

    telnet $HOSTNAME_COS 443
    
  8. Una volta connessi all'istanza Cloud Object Storage, emettere un Ctrl+C per disconnettersi.

In caso di problemi, vedi la sezione troubleshoot nel repository GitHub.

Come opzione, espandere l'esercitazione

Vuoi aggiungere qualcosa o estendere questa esercitazione? Ecco alcune idee:

  • Nel repositoryGitHub è presente un'applicazione che può essere distribuita che utilizza il database e l'archiviazione oggetti cloud. Le istruzioni su come eseguire la distribuzione si trovano nel README.
  • Se hai distribuito l'applicazione, aggiungi una zona DNS per l'applicazione.
  • Esegui l'applicazione su più Virtual Servers for VPC e aggiungi un programma di bilanciamento del carico per distribuire il traffico del microservizio in entrata.

Rimuovi le risorse

  1. Vai a Schematics Workspaces, fai clic sul tuo workspace
  2. Fare clic su Azioni... > Distruggi risorse
  3. Fare clic su Azioni... > Elimina spazio di lavoro