Accedere al servizio da un'altra rete VPC

Questo tutorial spiega come, in qualità di consumer di servizi, puoi accedere al servizio pubblicato creando un endpoint Private Service Connect. Quando invii richieste all'endpoint, Private Service Connect le inoltra al servizio pubblicato.

Questo tutorial è rivolto ad architetti cloud, architetti di rete, amministratori di rete e amministratori IT.

Obiettivi

  • Configura il networking per le risorse consumer di servizi
  • Creazione di un endpoint
  • Testa l'accesso all'endpoint

Costi

In questo documento vengono utilizzati i seguenti componenti fatturabili di Google Cloud:

Per generare una stima dei costi in base all'utilizzo previsto, utilizza il Calcolatore prezzi.

I nuovi utenti di Google Cloud potrebbero avere diritto a una prova senza costi.

Al termine delle attività descritte in questo documento, puoi evitare l'addebito di ulteriori costi eliminando le risorse che hai creato. Per saperne di più, consulta Esegui la pulizia.

Prima di iniziare

  1. Completa i due tutorial precedenti di questa serie:
  2. Crea o seleziona un progetto da utilizzare per le risorse del consumer di servizi. Questo progetto è denominato CONSUMER_PROJECT
    1. In the Google Cloud console, go to the project selector page.

      Go to project selector

    2. Select or create a Google Cloud project.

      Roles required to select or create a project

      • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
      • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.
  3. Enable the Compute Engine API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  4. Make sure that you have the following role or roles on the project: Compute Engine > Compute Network Admin, Compute Engine > Compute Instance Admin

    Check for the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

    4. For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.

    Grant the roles

    1. In the Google Cloud console, go to the IAM page.

      Vai a IAM
    2. Seleziona il progetto.
    3. Fai clic su Concedi l'accesso.
    4. Nel campo Nuove entità, inserisci il tuo identificatore dell'utente. In genere si tratta dell'indirizzo email di un Account Google.

    5. Fai clic su Seleziona un ruolo, quindi cerca il ruolo.
    6. Per concedere altri ruoli, fai clic su Aggiungi un altro ruolo e aggiungi ogni ruolo successivo.
    7. Fai clic su Salva.

Configura il networking

Le sezioni seguenti spiegano come creare una rete e una subnet per ospitare l'endpoint e come creare una regola firewall per consentire l'accesso SSH alla VM client utilizzata per testare l'endpoint.

Crea una rete e una subnet

Per creare la rete e la subnet del consumer di servizi, segui questi passaggi.

Console

  1. Nella console Google Cloud , vai alla pagina Reti VPC.

    Vai a Reti VPC

  2. Fai clic su Crea rete VPC.

  3. In Nome, inserisci consumer-network.

  4. In Modalità di creazione subnet, seleziona Personalizzata.

  5. Nella sezione Nuova subnet, inserisci le seguenti informazioni.

    1. In Nome, inserisci consumer-subnet.
    2. In Regione, seleziona la stessa regione del servizio pubblicato che hai creato.
    3. In Tipo di stack IP, seleziona IPv4 (stack singolo).
    4. In Intervallo IPv4, inserisci 192.168.10.0/24.
    5. Fai clic su Fine.
  6. Fai clic su Crea.

gcloud

  1. Crea una rete VPC in modalità personalizzata:

    gcloud compute networks create consumer-network --subnet-mode=custom
    
  2. Nella rete consumer-network, crea una subnet.

    gcloud compute networks subnets create consumer-subnet \
        --network=consumer-network \
        --range=192.168.10.0/24 \
        --region=REGION
    

    Sostituisci REGION con la stessa regione del servizio pubblicato che hai creato.

Configura le regole firewall

Crea una regola firewall denominata fw-allow-ssh per consentire al traffico SSH da 0.0.0.0/0 di raggiungere le VM con il tag di rete allow-ssh.

Console

  1. Nella console Google Cloud , vai alla pagina Policy del firewall.

    Vai a Criteri firewall

  2. Per consentire le connessioni SSH in entrata, fai clic su Crea regola firewall e utilizza le seguenti impostazioni:

    • In Nome, inserisci fw-allow-ssh.
    • In Rete, seleziona consumer-network.
    • In Priorità, inserisci 1000.
    • Per Direzione del traffico, seleziona In entrata.
    • In Azione in caso di corrispondenza, seleziona Consenti.
    • In Destinazioni, seleziona Tag di destinazione specificati.
    • In Tag di destinazione, inserisci allow-ssh.
    • In Filtro di origine, seleziona Intervalli IPv4.
    • In Intervalli IPv4 di origine, inserisci 0.0.0.0/0.
    • In Protocolli e porte, seleziona Protocolli e porte specificati, seleziona la casella di controllo TCP. In Porte, inserisci 22.
  3. Fai clic su Crea.

gcloud

  1. Crea la regola firewall fw-allow-ssh per consentire la connettività SSH alle VM con il tag di rete allow-ssh.

    gcloud compute firewall-rules create fw-allow-ssh \
        --network=consumer-network \
        --action=allow \
        --direction=ingress \
        --source-ranges=0.0.0.0/0 \
        --target-tags=allow-ssh \
        --rules=tcp:22
    

Creazione di un endpoint

Crea un endpoint che rimandi al servizio pubblicato che hai creato.

Console

  1. Nella console Google Cloud , vai alla pagina Private Service Connect.

    Vai a Private Service Connect

  2. Fai clic sulla scheda Endpoint connessi.

  3. Fai clic su Connetti endpoint.

  4. In Destinazione, seleziona Servizio pubblicato.

  5. In Servizio di destinazione, inserisci projects/PRODUCER_PROJECT/regions/REGION/serviceAttachments/published-service.

    Sostituisci PRODUCER_PROJECT con l'ID progetto del servizio pubblicato. Sostituisci REGION con la regione del servizio pubblicato.

  6. In Nome endpoint, inserisci ep-1.

  7. In Rete, seleziona consumer-network.

  8. In Subnet, seleziona consumer-subnet.

  9. Fai clic sul menu a discesa Indirizzo IP e seleziona Crea indirizzo IP.

    1. In Nome, inserisci ep-ip-1.
    2. In Indirizzo IP statico, seleziona Scelta manuale.
    3. In Indirizzo IP personalizzato, inserisci 192.168.10.5.
    4. Fai clic su Prenota.
  10. Fai clic su Aggiungi endpoint.

gcloud

  1. Prenota un indirizzo IP interno da assegnare all'endpoint.

    gcloud compute addresses create ep-ip-1 \
        --region=REGION \
        --subnet=consumer-subnet \
        --addresses=192.168.10.5
    

    Sostituisci REGION con la stessa regione del servizio pubblicato che hai creato.

  2. Crea una regola di forwarding per connettere l'endpoint al collegamento del servizio del producer di servizi.

    gcloud compute forwarding-rules create ep-1 \
        --region=REGION \
        --network=consumer-network \
        --address=ep-ip-1 \
        --target-service-attachment=projects/PRODUCER_PROJECT/regions/REGION/serviceAttachments/published-service
    

    Sostituisci quanto segue:

    • PRODUCER_PROJECT: l'ID progetto del progetto di producer di servizi.

    • REGION: la regione del collegamento del servizio.

Testa l'accesso all'endpoint

Per verificare che l'endpoint e il servizio pubblicato funzionino, crea una VM di test e invia una richiesta dall'endpoint.

Crea una VM client per i test

Crea una VM client nella stessa regione dell'endpoint.

Console

  1. Nella console Google Cloud , vai alla pagina Istanze VM.

    Vai a Istanze VM

  2. Fai clic su Crea istanza.

  3. In Nome, inserisci consumer-test.

  4. Per Regione, seleziona la stessa regione delle VM di backend.

  5. In Zona, seleziona una zona in quella regione.

  6. Fai clic su Networking e configura i seguenti campi:

    1. In Tag di rete, inserisci allow-ssh.
    2. In Interfacce di rete, seleziona quanto segue:
      • In Rete, seleziona consumer-network.
      • In Subnet, seleziona consumer-subnet.
  7. Fai clic su Crea.

gcloud

gcloud compute instances create consumer-test \
    --zone=ZONE \
    --image-family=debian-12 \
    --image-project=debian-cloud \
    --tags=allow-ssh \
    --subnet=consumer-subnet

Sostituisci ZONE con una zona che si trova nella stessa regione delle VM di backend.

Testa la connettività

Questo test contatta l'endpoint da una VM client. Il comportamento previsto è che il traffico venga distribuito tra le VM di backend del bilanciatore del carico.

  1. Connettiti all'istanza VM client.
    gcloud compute ssh consumer-test --zone=ZONE
    
    Sostituisci ZONE con la zona della VM client.
  2. Invia una richiesta web all'endpoint utilizzando curl per contattare il relativo indirizzo IP. Ripeti la richiesta per vedere che le risposte provengono da diverse VM di backend. Il nome della VM che genera la risposta viene visualizzato nel testo della risposta HTML a causa dei contenuti di /var/www/html/index.html su ogni VM di backend. Ad esempio, le risposte previste sono simili a Page served from: vm-1 e Page served from: vm-2.
    curl -s http://192.168.10.5
    

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 i progetti

Elimina sia il progetto produttore (PRODUCER_PROJECT) sia il progetto consumer (CONSUMER_PROJECT).

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

Passaggi successivi