Private Service Connect para las API de Google

1. Introducción

Con Private Service Connect, puedes crear extremos privados con direcciones IP internas globales dentro de tu red de VPC para acceder a las APIs de Google. Puedes asignar nombres DNS a estas direcciones IP internas con nombres significativos, como storage-pscendpoint.p.googleapis.com y bigtable-adsteam.p.googleapis.com. En lugar de enviar solicitudes a la API a extremos de servicio público, como storage.googleapis.com, puedes enviar las solicitudes al extremo de Private Service Connect, que es privado e interno de tu red de VPC.

Estos nombres y direcciones IP son internos de tu red de VPC y de cualquier red local que esté conectada a esta mediante túneles de Cloud VPN o adjuntos de Cloud Interconnect (VLAN).

Puedes controlar qué tráfico se dirige a cada extremo y también puedes demostrar que el tráfico permanece dentro de Google Cloud.

Qué aprenderás

  • Casos de uso de Private Service Connect
  • Requisitos de red
  • API admitidas
  • Crear un extremo de Private Service Connect
  • Cree un bucket de Cloud Storage
  • Crea y actualiza zonas privadas de Cloud DNS
  • Crea una puerta de enlace de NAT para acceder a las APIs públicas de Google
  • Crea y actualiza un archivo de configuración de BOTO
  • Realiza una lista de gsutil en la VM1 que se resolvió en tu extremo de servicio de PSC
  • Realiza una lista de gsutil en VM2 resuelta en googleapis.com público
  • Usa Tcpdump para validar la resolución de DNS

Requisitos

  • Conocimiento de DNS y del editor nano o vi

2. Casos de uso de Private Service Connect

Puedes crear varios extremos de Private Service Connect en la misma red de VPC. No hay límite en el ancho de banda para un extremo en particular. Dado que los extremos de Private Service Connect usan direcciones IP internas globales, cualquier recurso en tu red de VPC puede usarlos.

Con varios extremos, puedes especificar diferentes rutas de acceso a la red con Cloud Router y las reglas de firewall.

  • Puedes crear reglas de firewall para evitar que algunas VMs accedan a las APIs de Google a través de un extremo de Private Service Connect, a la vez que permite que otras VMs tengan acceso.
  • Puedes tener una regla de firewall en una instancia de VM que prohíba todo el tráfico a Internet. El tráfico que se envíe a los extremos de Private Service Connect seguirá llegando a Google.
  • Si tienes hosts locales conectados a una VPC con un túnel de Cloud VPN o un adjunto de Cloud Interconnect (VLAN), puedes enviar algunas solicitudes a través del túnel o VLAN mientras envías otras solicitudes a través de la Internet pública. Esta configuración te permite omitir el túnel o la VLAN para servicios como Google Libros que no son compatibles con el Acceso privado a Google. Para crear esta configuración, crea un extremo de Private Service Connect, anuncia las direcciones IP del extremo de Private Service Connect con los anuncios de ruta personalizados de Cloud Router y habilita una política de reenvío entrante de Cloud DNS. La aplicación puede enviar algunas solicitudes a través del túnel de Cloud VPN o el adjunto de Cloud Interconnect (VLAN) mediante el nombre del extremo de Private Service Connect, y otras a través de Internet con el nombre de DNS predeterminado.
  • Si conectas tu red local a tu red de VPC con varios adjuntos de Cloud Interconnect (VLAN), puedes enviar parte del tráfico local a través de una VLAN y el resto a través de otros medios, como se muestra en la figura 2. Esto te permite usar tus propias redes en áreas extensas, en lugar de las de Google, y controlar el movimiento de datos para cumplir con los requisitos geográficos. Para crear esta configuración, crea dos extremos de Private Service Connect. Crea un anuncio de ruta personalizado para el primer extremo de la sesión de BGP del Cloud Router que administra la primera VLAN y crea un anuncio de ruta personalizado diferente para el segundo extremo de la sesión de BGP del Cloud Router que administra la segunda VLAN. Los hosts locales que están configurados para usar el nombre del extremo de Private Service Connect envían tráfico en el adjunto de Cloud Interconnect (VLAN) correspondiente.
  • También puedes usar varios adjuntos de Cloud Interconnect (VLAN) en una topología activa/activa. Si anuncias la misma dirección IP del extremo de Private Service Connect con anuncios de ruta personalizados para las sesiones de BGP en los routers de Cloud que administran las VLAN, los paquetes enviados desde sistemas locales a los extremos se enrutan en todas las VLAN que usan ECMP.

5e142c2fbf6f010e.png

Figura 1: Si configuras Private Service Connect, Cloud Router y los hosts locales, puedes controlar qué adjunto de Cloud Interconnect (VLAN) se usa para enviar tráfico a las APIs de Google.

3. Requisitos de red

Para usar Private Service Connect, las instancias de máquina virtual (VM) sin direcciones IP externas deben tener su interfaz principal en una subred con el Acceso privado a Google habilitado.

Una VM con una dirección IP externa puede acceder a los servicios y las APIs de Google a través de extremos de Private Service Connect, independientemente de si el Acceso privado a Google está habilitado para su subred. La conectividad con el extremo de Private Service Connect permanece dentro de la red de Google.

No se puede acceder a los extremos de Private Service Connect desde redes de VPC con intercambio de tráfico.

APIs compatibles

Cuando creas un extremo de Private Service Connect, eliges a qué paquete de APIs necesitas acceder: all-apis o vpc-sc.

Los paquetes de APIs proporcionan acceso a las mismas APIs que están disponibles a través de los VIP del Acceso privado a Google.

  • El paquete all-apis proporciona acceso a las mismas APIs que private.googleapis.com.
  • El paquete vpc-sc proporciona acceso a las mismas APIs que restricted.googleapis.com.

4. Topología y caso de uso del codelab

2ac275eb86f26338.png

Figura 1: Topología del codelab

Caso de uso del codelab:

Nuestro cliente requiere una combinación de acceso privado (interconexión) y público a googleapis para la transferencia de datos de Cloud Storage. Para satisfacer los requisitos de nuestros clientes, implementaremos Private Service Connect, que consta de una dirección /32 única, una configuración de BOTO y actualizaciones de registros DNS. La máquina virtual 1 utilizará PSC para acceder al bucket de Cloud Storage, mientras que la VM2 utilizará rangos de IP públicos de googleapis.com a través de la puerta de enlace de NAT.

Todos los aspectos del lab se implementan en Google Cloud Platform, pero el mismo caso de uso se aplica a la implementación de la nube híbrida que requiere separación del tráfico.

5. Configuración y requisitos

Configuración del entorno de autoaprendizaje

  1. Accede a la consola de Cloud y crea un proyecto nuevo o reutiliza uno existente. Si aún no tienes una cuenta de Gmail o de Google Workspace, debes crear una.

96a9c957bc475304.png

b9a10ebdf5b5a448.png

a1e3c01a38fa61c2.png

Recuerde el ID de proyecto, un nombre único en todos los proyectos de Google Cloud (el nombre anterior ya se encuentra en uso y no lo podrá usar). Se mencionará más adelante en este codelab como PROJECT_ID.

  1. A continuación, deberás habilitar la facturación en la consola de Cloud para usar los recursos de Google Cloud recursos.

Ejecutar este codelab no debería costar mucho, tal vez nada. Asegúrate de seguir las instrucciones de la sección “Realiza una limpieza”, en la que se aconseja cómo cerrar recursos para que no se te facture más allá de este instructivo. Los usuarios nuevos de Google Cloud son aptos para participar en el programa Prueba gratuita de USD 300.

Inicia Cloud Shell

Si bien Google Cloud y Spanner se pueden operar de manera remota desde tu laptop, en este codelab usarás Google Cloud Shell, un entorno de línea de comandos que se ejecuta en la nube.

En GCP Console, haga clic en el ícono de Cloud Shell en la barra de herramientas superior derecha:

bce75f34b2c53987.png

El aprovisionamiento y la conexión al entorno deberían tomar solo unos minutos. Cuando termine el proceso, debería ver algo como lo siguiente:

f6ef2b5f13479f3a.png

Esta máquina virtual está cargada con todas las herramientas de desarrollo que necesitarás. Ofrece un directorio principal persistente de 5 GB y se ejecuta en Google Cloud, lo que permite mejorar considerablemente el rendimiento de la red y la autenticación. Puedes realizar todo tu trabajo en este lab usando simplemente un navegador.

6. Antes de comenzar

Habilita las APIs

En Cloud Shell, asegúrate de que tu ID del proyecto esté configurado.

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname

Habilita todos los servicios necesarios

gcloud services enable compute.googleapis.com
gcloud services enable servicedirectory.googleapis.com
gcloud services enable dns.googleapis.com

7. Crear red de VPC

Red de VPC

Desde Cloud Shell

gcloud compute networks create psc-lab --subnet-mode custom

Crear subred

Desde Cloud Shell

gcloud compute networks subnets create psclab-subnet \
--network psc-lab --range 10.0.0.0/24 --region us-central1 --enable-private-ip-google-access

Crea reglas de firewall

Para permitir que IAP se conecte a tus instancias de VM, crea una regla de firewall que cumpla con lo siguiente:

  • Se aplica a todas las instancias de VM a las que deseas acceder mediante IAP.
  • Permite el tráfico de entrada desde el rango de IP 35.235.240.0/20. Este rango contiene todas las direcciones IP que IAP usa para el reenvío de TCP.

Desde Cloud Shell

gcloud compute firewall-rules create psclab-ssh \
    --network psc-lab --allow tcp:22 --source-ranges=35.235.240.0/20

Crea una instancia de Cloud NAT

Crea un Cloud Router

Desde Cloud Shell

gcloud compute routers create crnat \
    --network psc-lab \
    --asn 65000 \
    --region us-central1

Crea Cloud NAT

Desde Cloud Shell

gcloud compute routers nats create cloudnat \
    --router=crnat \
    --auto-allocate-nat-external-ips \
    --nat-all-subnet-ip-ranges \
    --enable-logging \
    --region us-central1

8. Crea un extremo de Private Service Connect

Cuando configures la IP del extremo de Private Service Connect <pscendpointip>, deberás proporcionar una dirección IP única que no esté definida en tu VPC.

Desde Cloud Shell

gcloud compute addresses create psc-ip \
    --global \
    --purpose=PRIVATE_SERVICE_CONNECT \
    --addresses=192.168.255.250 \
    --network=psc-lab

Almacena "pscendpointip" durante la duración del lab

pscendpointip=$(gcloud compute addresses list --filter=name:psc-ip --format="value(address)")

echo $pscendpointip

Crea una regla de reenvío para conectar el extremo a los servicios y las APIs de Google.

Desde Cloud Shell

gcloud compute forwarding-rules create pscendpoint \
    --global \
    --network=psc-lab \
    --address=psc-ip \
    --target-google-apis-bundle=all-apis

Enumera los extremos de Private Service Connect configurados

Desde Cloud Shell

gcloud compute forwarding-rules list  \
--filter target="(all-apis OR vpc-sc)" --global

Describe los extremos de Private Service Connect configurados

Desde Cloud Shell

gcloud compute forwarding-rules describe \
    pscendpoint --global

9. Crea un bucket

Crea un bucket de Cloud Storage y reemplaza BUCKET_NAME por el nombre único a nivel global que prefieras.

Desde Cloud Shell

gsutil mb  -l us-central1 -b on gs://BUCKET_NAME

Almacena “BUCKET_NAME” durante el lab

BUCKET_NAME=YOUR BUCKET NAME
echo $BUCKET_NAME

10. Configuración de DNS

Cuando creas un extremo de Private Service Connect, el Directorio de servicios genera un registro DNS para las APIs y los servicios que están disponibles a través de ese extremo.

Los registros DNS apuntan a la dirección IP del extremo de Private Service Connect y tienen el siguiente formato: SERVICE-ENDPOINT.p.googleapis.com.

Puedes usar estos nombres de DNS en tus solicitudes a la API para dirigir la solicitud a tu extremo de Private Service Connect. También puedes usar estos nombres DNS en el encabezado Host de tu solicitud.

Si deseas usar un extremo de Private Service Connect con un cliente o aplicación que acceda a las APIs y los servicios de Google, actualiza tu cliente o aplicación para usar los nombres de DNS p.googleapis.com.

Consulta la documentación de tu cliente o biblioteca cliente para obtener detalles. Por ejemplo:

  • Python: Puedes configurar api_endpoint en la clase Client options del paquete google-api-core.
  • Go: Puedes configurar WithEndpoint en el paquete Client options del paquete api.
  • gcloud: You can configure api_endpoint_overrides using this command. gcloud config set api_endpoint_overrides/SERVICE ENDPOINT_URL

Por ejemplo: gcloud config set api_endpoint_overrides/storage https://storage-xyz.p.googleapis.com/storage/v1/

Si no puedes configurar tu cliente o aplicación para que use un extremo diferente, crea registros DNS para que coincidan con los nombres DNS predeterminados. Por ejemplo, storage.googleapis.com. Consulta Crea registros DNS con nombres DNS predeterminados.

Valida el registro DNS

En la consola de Cloud, valida la entrada de DNS generada que se encuentra en Servicios de red → Cloud DNS. Ten en cuenta el nombre de DNS generado "p.googleapis.com".

11. Cree máquinas virtuales

Crea la máquina virtual (psc-instance-1) que se usa para validar Private Service Connect

Desde Cloud Shell

  gcloud compute instances create psc-instance-1 \
    --subnet psclab-subnet \
    --zone us-central1-a \
    --image=centos-7-v20210122 \
    --image-project=centos-cloud \
    --no-address \
    --metadata=startup-script=yum\ install\ tcpdump\ -y$'\n'yum\ install\ bind-utils\ -y$'\n'yum\ install\ nano\ -y 

Accede a la instancia de VM (psc-instance-1)

Conéctate a la VM a través de SSH en Cloud Shell

gcloud compute ssh --zone "us-central1-a" "psc-instance-1" --project "$projectname"

Haz clic en + (captura de pantalla a continuación) tres veces para crear terminales de Cloud Shell adicionales.

69ea94e1527912bb.png

Crea la máquina virtual (psc-instance-2) que se usa para validar las APIs públicas de Google

Desde la pestaña 2

  gcloud compute instances create psc-instance-2 \
    --subnet psclab-subnet \
    --zone us-central1-a \
    --image=centos-7-v20210122 \
    --image-project=centos-cloud \
    --no-address \
    --metadata=startup-script=yum\ install\ tcpdump\ -y$'\n'yum\ install\ bind-utils\ -y$'\n'yum\ install\ nano\ -y 

En la pestaña 2, conéctate a la VM a través de SSH en Cloud Shell

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname


gcloud compute ssh --zone "us-central1-a" "psc-instance-2" --project "$projectname"

En la pestaña 3, establece una conexión SSH a psc-instance-1 a través de Cloud Shell.

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname


gcloud compute ssh --zone "us-central1-a" "psc-instance-1" --project "$projectname"

En la pestaña 4, establece una conexión SSH a psc-instance-2 a través de Cloud Shell

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname


gcloud compute ssh --zone "us-central1-a" "psc-instance-2" --project "$projectname"

12. Verifica el comportamiento existente de Gsutil

En la pestaña 4 (psc-instance-2), inicia tcpdump y supervisa el tráfico de DNS.

sudo tcpdump -vv -i eth0 port 53

Inspecciona la búsqueda de DNS del bucket de almacenamiento desde la pestaña 2 (psc-instance-2)

BUCKET_NAME=YOUR BUCKET NAME
echo $BUCKET_NAME
gsutil -D ls gs://$BUCKET_NAME

Inspecciona la depuración de gsutil. Se usa HOST storage.googleapis.com para la resolución de DNS.

<snip>
send: 'GET /storage/v1/b/$BUCKET_NAME/o?delimiter=%2F&projection=noAcl&versions=False&fields=prefixes%2CnextPageToken%2Citems%2Fname&alt=json&maxResults=1000 HTTP/1.1\r\nHost: storage.googleapis.com\r\ncontent-length: 0\r\nauthorization: Bearer ya29.c.KpkB7wfaMjfc_WXEKCeNF4Md0fEHnfDU7tqBf3cd0u43yEmYXqj8fX_X5wWdNdDVH6k1EkjeAeIJDzKGvyjPOkf1Io2kVeUqYX69sDv53huW1NslffjAHKchbZ0CP3Cg83TS3Pa55jLcuE0TLbYycVrgSbD3H90LaapUGbWD3kj4IsJLf9J8R98Bqobu8HZwwqk92hlZ4zVzRqOM\r\naccept-encoding: gzip, deflate\r\naccept: application/json\r\nuser-agent: apitools Python/2.7.5 gsutil/4.57 (linux2) analytics/disabled interactive/True command/ls google-cloud-sdk/324.0.0\r\n\r\n'
reply: 'HTTP/1.1 200 OK\r\n'
<snip>

En la pestaña 4 (psc-instance-2), verifica que se usen los registros A de DNS públicos de GoogleAPIs.com cuando se accede al bucket de almacenamiento.

metadata.google.internal.domain > psc-instance-2.c.yourprojectname.internal.33973: [udp sum ok] 36442 q: A? storage.googleapis.com. 11/0/0 storage.googleapis.com. A 108.177.111.128, storage.googleapis.com. A 142.250.128.128, storage.googleapis.com. A 74.125.70.128, storage.googleapis.com. A 74.125.201.128, storage.googleapis.com. A 64.233.183.128, storage.googleapis.com. A 173.194.198.128, storage.googleapis.com. A 172.217.219.128, storage.googleapis.com. A 142.250.136.128, storage.googleapis.com. A 209.85.234.128, storage.googleapis.com. A 172.217.212.128, storage.googleapis.com. A 172.217.214.128

13. Cómo modificar el comportamiento de Gsutil

Recuerda que, en un paso anterior, creaste una zona de DNS privado y un registro A asignado a la dirección IP del extremo de PSC. En el siguiente paso, controlaremos el comportamiento de gsutil actualizando el archivo BOTO de la VM en psc-instance-1.

Visualiza la configuración predeterminada de BOTO desde la terminal de la instancia de VM en la pestaña 1 (psc-instance-1).

[psc-instance ~]$ more  /etc/boto.cfg

Resultado (tu project_id será diferente)

[GSUtil]
default_project_id  = [your project number]
default_api_version = 2

[GoogleCompute]
service_account = default

Actualiza la configuración de BOTO con el editor nano o VI. Asegúrate de copiar y pegar todas las entradas.

Ejemplo: sudo nano /etc/boto.cfg

o

Ejemplo: sudo vi /etc/boto.cfg

En la pestaña de la terminal de la instancia de VM 1(psc-instance-1)

[Credentials]
gs_host = storage-pscendpoint.p.googleapis.com
gs_host_header = storage.googleapis.com
gs_json_host = storage-pscendpoint.p.googleapis.com
gs_json_host_header = www.googleapis.com

Valida la configuración. El orden de [Credentials] es fundamental para la búsqueda de DNS.

more /etc/boto.cfg
[Credentials]
gs_host = storage-pscendpoint.p.googleapis.com
gs_host_header = storage.googleapis.com
gs_json_host = storage-pscendpoint.p.googleapis.com
gs_json_host_header = www.googleapis.com

[GSUtil]
default_project_id  = [your project number
default_api_version = 2

[GoogleCompute]
service_account = default

14. Verifica el comportamiento de búsqueda actualizado de gsutil

En la pestaña 3 (psc-instance-1), inicia tcpdump y supervisa el tráfico de DNS.

sudo tcpdump -vv -i eth0 port 53

Inspecciona la búsqueda de gsutil del bucket de almacenamiento desde la pestaña 1 (psc-instance-1).

BUCKET_NAME=YOUR BUCKET NAME
echo $BUCKET_NAME

gsutil -D ls gs://$BUCKET_NAME

Los registros de depuración confirman que se puede acceder al bucket de almacenamiento a través del extremo de Private Service Connect "pscendpoint".

Resultado:

<snip>
INFO 0131 22:14:18.795986 base_api.py] Making http GET to https://storage-pscendpoint.p.googleapis.com/storage/v1/b/$BUCKET_NAME/o?delimiter=%2F&projection=noAcl&versions=False&fields=prefixes%2CnextPageToken%2Citems%2Fname&alt=json&maxResults=1000
INFO 0131 22:14:18.796415 base_api.py] Headers: {u'Host': 'www.googleapis.com',
 'accept': 'application/json',
 'accept-encoding': 'gzip, deflate',
 'content-length': '0',
 'user-agent': 'apitools Python/2.7.5 gsutil/4.57 (linux2) analytics/disabled interactive/True command/ls google-cloud-sdk/324.0.0'}
INFO 0131 22:14:18.796502 base_api.py] Body: (none)
connect: (storage-pscendpoint.p.googleapis.com, 443)
send: 'GET /storage/v1/b/psc-bucket/o?delimiter=%2F&projection=noAcl&versions=False&fields=prefixes%2CnextPageToken%2Citems%2Fname&alt=json&maxResults=1000 HTTP/1.1\r\ncontent-length: 0\r\naccept-encoding: gzip, deflate\r\naccept: application/json\r\nuser-agent: apitools Python/2.7.5 gsutil/4.57 (linux2) analytics/disabled interactive/True command/ls google-cloud-sdk/324.0.0\r\nhost: www.googleapis.com\r\nauthorization: Bearer ya29.c.KpkB7wd3XWiYeRyTuth5_HPlNV-hPwc2Nn7RSIeMpzrpa_j4EsMPl2m_mDGKAcGHvYIgiC5bT2UVQirAPpSbbpToa6G6lkaBbH5SZwHwgNXYfisp5Ww1UjXe4rTa69a_Wp0WesafcwPNnYzDo3xf5VGh3iGhySA04kTXuyT--MgOU8U-XLII2LJQxUWlV8KEdrvyCuqRb-jsDdk_\r\n\r\n'
reply: 'HTTP/1.1 200 OK\r\n'
<snip>

En la pestaña 3 (psc-instance-1), verifica que la IP de tu extremo de PSC sea el registro A de DNS que se usa cuando intentas acceder a tu bucket de almacenamiento.

@psc-instance-1 ~]$ sudo tcpdump -vv -i eth0 port 53
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
05:02:33.936256 IP (tos 0x0, ttl 64, id 55416, offset 0, flags [DF], proto UDP (17), length 82)
    psc-instance-1.c.yourprojectname.internal.42296 > metadata.google.internal.domain: [bad udp cksum 0x5e4e -> 0xcceb!] 34796+ A? storage-pscendpoint.p.googleapis.com. (54)
05:02:33.936269 IP (tos 0x0, ttl 64, id 55417, offset 0, flags [DF], proto UDP (17), length 82)
    psc-instance-1.c.yourprojectname.internal.42296 > metadata.google.internal.domain: [bad udp cksum 0x5e4e -> 0x3ebd!] 5632+ AAAA? storage-pscendpoint.p.googleapis.com. (54)
05:02:33.944018 IP (tos 0x0, ttl 64, id 0, offset 0, flags [none], proto UDP (17), length 98)
    metadata.google.internal.domain > psc-instance-1.c.yourprojectname.42296: [udp sum ok] 34796 q: A? storage-pscendpoint.p.googleapis.com. 1/0/0 storage-pscendpoint.p.googleapis.com. A 10.10.110.10 (70)
05:02:33.946005 IP (tos 0x0, ttl 64, id 0, offset 0, flags [none], proto UDP (17), length 175)

Verifica que ahora se use la IP del extremo de Private Service Connect para la resolución de DNS

Desde tab1

nslookup storage-pscendpoint.p.googleapis.com

Salida

@psc-instance ~]$ nslookup storage-pscendpoint.p.googleapis.com
Server:         169.254.169.254
Address:        169.254.169.254#53

Non-authoritative answer:
Name:   storage-pscendpoint.p.googleapis.com
Address: <pscip>

15. Pasos para la limpieza

Sal de la instancia de VM (todas las pestañas)

exit

Borra los componentes del lab desde una sola terminal de Cloud Shell

gcloud compute routers nats delete cloudnat --router=crnat --region=us-central1 --quiet

gcloud compute routers delete crnat --region=us-central1 --quiet

gcloud compute forwarding-rules delete pscendpoint --global --quiet

gcloud compute addresses delete psc-ip --global --quiet

gsutil rm -r gs://$BUCKET_NAME

gcloud compute instances delete psc-instance-1 --zone=us-central1-a --quiet

gcloud compute instances delete psc-instance-2 --zone=us-central1-a --quiet

gcloud compute firewall-rules delete psclab-ssh --quiet

gcloud compute networks subnets delete psclab-subnet --region us-central1 --quiet

gcloud compute networks delete psc-lab --quiet

En la consola, asegúrate de estar viendo el proyecto correcto y, luego, selecciona Servicios de redes → Cloud DNS.

16. ¡Felicitaciones!

Felicitaciones por completar el codelab.

Temas abordados

  • Casos de uso de Private Service Connect
  • Requisitos de red
  • API admitidas
  • Se creó un extremo de Private Service Connect
  • Creaste un bucket de Cloud Storage
  • Se actualizó un archivo de configuración de BOTO
  • Se creó una puerta de enlace de NAT.
  • Realiza una lista de gsutil en VM1 que se resuelva en tu extremo de servicio de PSC
  • Realiza una lista de gsutil en VM2 que se resuelva en googleapis.com público
  • Usa Tcpdump para validar la resolución de DNS