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.

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

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
- 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.



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.
- 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:

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:

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.

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