Cómo crear y administrar conexiones VPN

En esta página, se describe cómo crear y administrar recursos de conexión de VPN de Google Distributed Cloud en una zona de Distributed Cloud.

Esta función solo está disponible en racks de Distributed Cloud. Los servidores de Distributed Cloud no admiten recursos de conexión de VPN.

Para obtener más información sobre las conexiones de Cloud VPN de Distributed Cloud, consulta Cómo funciona Distributed Cloud.

Ten en cuenta lo siguiente:

  • Debes configurar tu red para permitir el tráfico que requieren las conexiones de VPN de Distributed Cloud.

  • Cuando creas una conexión de VPN de Distributed Cloud, Distributed Cloud crea los recursos necesarios de Cloud VPN y Cloud Router. El nombre de la puerta de enlace de Cloud VPN tiene el prefijo anthos-mcc. El nombre de Cloud Router tiene el prefijo gdce. No debes modificar estos recursos; de lo contrario, es posible que la conexión de VPN de Distributed Cloud deje de funcionar. Si modificas estos recursos por accidente, debes borrar y volver a crear la conexión de VPN de Distributed Cloud afectada.

  • Distributed Cloud crea un solo Cloud Router por Google Cloud proyecto y por región cuando creas tu primera conexión de VPN de Distributed Cloud en eseGoogle Cloud proyecto y región. Todas las conexiones de VPN que se creen posteriormente en ese Google Cloud proyecto y región reutilizan el mismo recurso de Cloud Router resource.

  • Un recurso de Cloud Router solo se puede borrar cuando no tiene interfaces de red secundarias conectadas. Distributed Cloud borra automáticamente un Cloud Router cuando borras la última conexión de VPN restante conectada a él.

  • Las conexiones de VPN de Distributed Cloud solo admiten direcciones IPv4.

  • Solo puedes crear una conexión de VPN por clúster de Distributed Cloud.

  • Si tu red local usa varias puertas de enlace de traducción de direcciones de red (NAT), debes configurarlas para que tu instalación de Distributed Cloud use una sola dirección IP para el tráfico saliente a tu red de nube privada virtual (VPC).

  • De forma predeterminada, Distributed Cloud configura un solo cliente de VPN en un solo nodo para conectarse mediante dos túneles VPN, también conocidos como VPN con alta disponibilidad en el Google Cloud extremo. Google Cloud Puedes aumentar aún más la disponibilidad de la conexión de VPN con la marca --high-availability. Esta marca le indica a Distributed Cloud que configure dos clientes de VPN en dos nodos separados para un total de cuatro túneles VPN.

  • Debes borrar y volver a crear una conexión de VPN si deseas cambiar su configuración.

  • Puedes administrar las conexiones de VPN con Google Cloud CLI o la API de Distributed Cloud Edge Container.

Crear una conexión de VPN

Para crear una conexión de Cloud VPN de Distributed Cloud, completa los pasos de esta sección.

Para completar esta tarea, debes tener el rol de administrador de Edge Container (roles/edgecontainer.admin) en tu Google Cloud proyecto.

gcloud

Usa el comando gcloud edge-cloud container vpn-connections create:

gcloud edge-cloud container vpn-connections create VPN_CONNECTION_NAME \
    --project=PROJECT_ID \
    --location=REGION \
    --cluster=CLUSTER_NAME \
    --vpc-network=VPC_NETWORK_NAME \
    --nat-gateway-ip=NAT_GATEWAY_IP \
    --router=ROUTER_NAME \
    --high-availability

Reemplaza lo siguiente:

  • VPN_CONNECTION_NAME: Un nombre descriptivo que identifica de forma única esta conexión de VPN.
  • PROJECT_ID: El ID del proyecto de destino. Google Cloud
  • REGION: La Google Cloud región en la que se crea la zona de Distributed Cloud de destino.
  • CLUSTER_NAME: El nombre del clúster de Distributed Cloud de destino.
  • VPC_NETWORK_NAME: El nombre de la red de VPC de destino a la que apunta esta conexión de VPN. Esta red debe estar en el mismo Google Cloud proyecto que tu instalación de Distributed Cloud.
  • NAT_GATEWAY_IP: La dirección IP de la puerta de enlace de NAT para el clúster de destino. Omite esta marca si no usas NAT.
  • ROUTER_NAME (opcional): Especifica un recurso de Cloud Router existente para usar en esta conexión de VPN. De lo contrario, Distributed Cloud crea un Cloud Router automáticamente si aún no existe en el Google Cloud proyecto y la región de destino.
  • --high-availability (opcional): Configura esta conexión de VPN para la alta disponibilidad en el lado del clúster mediante la configuración de dos clientes de VPN separados que se ejecutan en dos nodos separados. Para inhabilitar la alta disponibilidad, omite esta marca.

API

Realiza una solicitud POST al método projects.locations.vpnConnections.create:

POST /v1/PROJECT_ID/locations/REGION/vpnConnections?vpnConnectionId=VPN_CONNECTION_ID&requestId=REQUEST_ID
{
  "name": string,
  "labels": {
   },
  "natGatewayIp": NAT_GATEWAY,
  "cluster": CLUSTER_PATH,
  "vpc": VPC_NETWORK_ID
  "enableHighAvailability": HA_ENABLE,
  "router": ROUTER_NAME,
}

Reemplaza lo siguiente:

  • PROJECT_ID: El ID del proyecto de destino. Google Cloud
  • REGION: La Google Cloud región en la que se crea la zona de Distributed Cloud de destino.
  • VPN_CONNECTION_ID: Un ID programático único que identifica este recurso de grupo de nodos.
  • REQUEST_ID: Un ID programático único que identifica esta solicitud.
  • VPN_CONNECTION_NAME: Un nombre descriptivo que identifica de forma única esta conexión de VPN.
  • NAT_GATEWAY: La dirección IP de tu puerta de enlace de NAT.
  • CLUSTER_PATH: La ruta canónica completa al clúster de destino.
  • VPC_NETWORK_ID: El ID de la red de VPC de destino.
  • HA_ENABLE: Indica si se debe configurar esta conexión de VPN para la alta disponibilidad en el lado del clúster. Si se establece en TRUE, configura dos clientes de VPN separados que se ejecutan en dos nodos separados.
  • ROUTER_NAME (opcional): Especifica un recurso de Cloud Router existente para usar en esta conexión de VPN. De lo contrario, Distributed Cloud crea un Cloud Router automáticamente si aún no existe en el Google Cloud proyecto y la región de destino.

Mostrar una lista de las conexiones de VPN

Para mostrar una lista de las conexiones de VPN aprovisionadas para un clúster de Distributed Cloud, completa los pasos de esta sección.

Para completar esta tarea, debes tener el rol de visualizador de Edge Container (roles/edgecontainer.viewer) en tu Google Cloud proyecto.

gcloud

Usa el comando gcloud edge-cloud container vpn-connections list:

gcloud edge-cloud container vpn-connections list \
    --project=PROJECT_ID \
    --location=REGION

Reemplaza lo siguiente:

  • PROJECT_ID: El ID del proyecto de destino. Google Cloud
  • REGION: La Google Cloud región en la que se crea la zona de Distributed Cloud de destino.

API

Realiza una solicitud GET al método projects.locations.vpnConnections.list:

GET /v1/PROJECT_ID/locations/REGION/vpnConnections?filter=FILTER&pageSize=PAGE_SIZE&orderBy=SORT_BY&pageToken=PAGE_TOKEN

Reemplaza lo siguiente:

  • PROJECT_ID: El ID del proyecto de destino. Google Cloud
  • REGION: La Google Cloud región en la que se crea la zona de Distributed Cloud de destino.
  • FILTER: Una expresión que restringe los resultados que se muestran a valores específicos.
  • PAGE_SIZE: La cantidad de resultados que se mostrarán por página.
  • SORT_BY: Una lista separada por comas de nombres de campos por los que se ordenan los resultados que se muestran. El orden de clasificación predeterminado es ascendente; para el orden de clasificación descendente, antepón el campo deseado con ~.
  • PAGE_TOKEN: Un token recibido en la respuesta a la última solicitud de lista en el campo nextPageToken de la respuesta. Envía este token para recibir una página de resultados.

Obtener información sobre una conexión de VPN

Para obtener información sobre una conexión de VPN de Distributed Cloud, completa los pasos de esta sección.

Para completar esta tarea, debes tener el rol de visualizador de Edge Container (roles/edgecontainer.viewer) en tu Google Cloud proyecto.

gcloud

Usa el comando gcloud edge-cloud container vpn-connections describe:

gcloud edge-cloud container vpn-connections describe VPN_CONNECTION_NAME \
    --project=PROJECT_ID \
    --location=REGION

Reemplaza lo siguiente:

  • VPN_CONNECTION_NAME: El nombre de la conexión de VPN de destino.
  • PROJECT_ID: El ID del proyecto de destino. Google Cloud
  • REGION: La Google Cloud región en la que se crea la zona de Distributed Cloud de destino.

API

Realiza una solicitud GET al método projects.locations.vpnConnections.get:

GET /v1/PROJECT_ID/locations/REGION/vpnConnections/VPN_CONNECTION_NAME

Reemplaza lo siguiente:

  • PROJECT_ID: El ID del proyecto de destino. Google Cloud
  • REGION: La Google Cloud región en la que se crea la zona de Distributed Cloud de destino.
  • VPN_CONNECTION_NAME: El nombre de la conexión de VPN de destino.

Borrar una conexión de VPN

Para borrar una conexión de VPN de Distributed Cloud, completa los pasos de esta sección.

Si borras la última conexión de VPN restante asociada con un recurso de Cloud Router que Distributed Cloud creó anteriormente en el Google Cloud proyecto, borrar la conexión de VPN borra automáticamente el recurso de Cloud Router asociado. Sin embargo, solo los recursos de Cloud Router que Distributed Cloud crea automáticamente se borran automáticamente en esta situación. Distributed Cloud no borra los recursos de Cloud Router existentes que se especifican con la marca --router.

Para completar esta tarea, debes tener el rol de administrador de Edge Container (roles/edgecontainer.admin) en tu Google Cloud proyecto.

gcloud

Usa el comando gcloud edge-cloud container vpn-connections delete:

gcloud edge-cloud container vpn-connections delete VPN_CONNECTION_NAME \
    --location=REGION \
    --project=PROJECT_ID

Reemplaza lo siguiente:

  • VPN_CONNECTION_NAME: Un nombre descriptivo que identifica de forma única esta conexión de VPN.
  • REGION: La Google Cloud región en la que se crea la zona de Distributed Cloud de destino.
  • PROJECT_ID: El ID del proyecto de destino. Google Cloud

API

Realiza una solicitud DELETE al método projects.locations.vpnConnections.delete:

DELETE /v1/PROJECT_ID/locations/REGION/vpnConnections/VPN_CONNECTION_NAME?requestId=REQUEST_ID

Reemplaza lo siguiente:

  • PROJECT_ID: El ID del proyecto de destino. Google Cloud
  • REGION: La Google Cloud región en la que se crea la zona de Distributed Cloud de destino.
  • VPN_CONNECTION_NAME: El nombre de la conexión de VPN de destino.
  • REQUEST_ID: Un ID programático único que identifica esta solicitud.

Administrar conexiones de VPN entre proyectos

Distributed Cloud también te permite crear conexiones de VPN a redes de VPC en un Google Cloud proyecto diferente del Google Cloud proyecto que contiene tu clúster de Distributed Cloud.

Requisitos previos

Debes cumplir con los requisitos previos de esta sección antes de poder crear conexiones de VPN entre proyectos.

Permisos de la cuenta de llamada

La cuenta de usuario de la persona que llama en el proyecto de VPC de destino debe tener los siguientes permisos. Estos permisos se encapsulan en el rol de administrador de IAM del proyecto (roles/resourcemanager.projectIamAdmin):

  • resourcemanager.projects.get
  • resourcemanager.projects.getIamPolicy
  • resourcemanager.projects.setIamPolicy

Para obtener información sobre cómo configurar roles y permisos de IAM, consulta Administra el acceso a proyectos, carpetas y organizaciones.

Permisos de la cuenta de servicio de Distributed Cloud

Para permitir que Distributed Cloud cree los recursos de Cloud Router y Cloud VPN en el proyecto de VPC de destino que habilita la conexión de VPN entre proyectos, debes otorgar el rol de administrador de red de Compute (roles/compute.networkAdmin) a la cuenta de servicio de Distributed Cloud en tu clúster de Distributed Cloud.

Para otorgar el rol de administrador de red de Compute, haz lo siguiente.

gcloud

Usa el comando gcloud projects add-iam-policy-binding:

gcloud projects add-iam-policy-binding VPC_PROJECT_ID \
    --member="serviceAccount:service-PROJECT_NUM@gcp-sa-edgecontainer.iam.gserviceaccount.com" \
    --role="roles/compute.networkAdmin" \
    --project=VPC_PROJECT_ID

Reemplaza lo siguiente:

  • VPC_PROJECT_ID: El ID del proyecto de VPC de destino.
  • PROJECT_NUM: El número del proyecto de Distributed Cloud de destino Google Cloud .

Crear una conexión de VPN entre proyectos

Para crear una conexión de VPN a una red de VPC en un Google Cloud proyecto diferente, completa los pasos de esta sección.

gcloud

Usa el comando gcloud edge-cloud container vpn-connections create:

gcloud edge-cloud container vpn-connections create VPN_CONNECTION_NAME \
    --project=PROJECT_ID \
    --location=REGION \
    --cluster=CLUSTER_NAME \
    --vpc-project=VPC_PROJECT_ID \
    --vpc-network=VPC_NETWORK_NAME \
    --nat-gateway-ip=NAT_GATEWAY_IP \
    --high-availability

Reemplaza lo siguiente:

  • VPN_CONNECTION_NAME: Un nombre descriptivo que identifica de forma única esta conexión de VPN.
  • PROJECT_ID: El ID del proyecto de clúster de Distributed Cloud de destino . Google Cloud
  • REGION: La Google Cloud región en la que se crea la zona de Distributed Cloud de destino.
  • CLUSTER_NAME: El nombre del clúster de Distributed Cloud de destino.
  • VPC_PROJECT_ID: El ID del proyecto de destino Google Cloud que contiene la red de VPC de destino.
  • VPC_NETWORK_NAME: El nombre de la red de VPC de destino a la que apunta esta conexión de VPN.
  • NAT_GATEWAY_IP: La dirección IP de la puerta de enlace de NAT para el clúster de destino. Omite esta marca si no usas NAT.
  • --high-availability (opcional): Configura esta conexión de VPN para la alta disponibilidad en el lado del clúster mediante la configuración de dos clientes de VPN separados que se ejecutan en dos nodos separados. Para inhabilitar la alta disponibilidad, omite esta marca.

API

Realiza una solicitud POST al método projects.locations.vpnConnections.create:

POST /v1/PROJECT_ID/locations/REGION/vpnConnections?vpnConnectionId=VPN_CONNECTION_ID&requestId=REQUEST_ID
{
  "name": string,
  "labels": {
   },
  "natGatewayIp": NAT_GATEWAY,
  "cluster": CLUSTER_PATH,
  "vpc": VPC_NETWORK_ID,
  "vpcProject": VPC_PROJECT_ID,
  "vpcServiceAccount": var>VPC_PROJECT_SERVICE_ACCOUNT,
  "enableHighAvailability": HA_ENABLE,
}

Reemplaza lo siguiente:

  • PROJECT_ID: El ID del proyecto de destino. Google Cloud
  • REGION: La Google Cloud región en la que se crea la zona de Distributed Cloud de destino.
  • VPN_CONNECTION_ID: Un ID programático único que identifica este recurso de grupo de nodos.
  • REQUEST_ID: Un ID programático único que identifica esta solicitud.
  • VPN_CONNECTION_NAME: Un nombre descriptivo que identifica de forma única esta conexión de VPN.
  • NAT_GATEWAY: La dirección IP de tu puerta de enlace de NAT.
  • CLUSTER_PATH: La ruta canónica completa al clúster de destino.
  • VPC_NETWORK_ID: El ID de la red de VPC de destino.
  • VPC_PROJECT_ID: El ID del proyecto de destino Google Cloud que contiene la red de VPC de destino.
  • HA_ENABLE: Indica si se debe configurar esta conexión de VPN para la alta disponibilidad en el lado del clúster. Si se establece en TRUE, configura dos clientes de VPN separados que se ejecutan en dos nodos separados.

Registros de auditoría de Cloud para conexiones de VPN entre proyectos

Cuando creas una conexión de VPN entre proyectos, los Registros de auditoría de Cloud se escriben de la siguiente manera:

  • Los registros de auditoría de tu clúster de Distributed Cloud registran la operación de larga duración, la autenticación y la información de autorización para la conexión de VPN entre proyectos. Esta información incluye la persona que llama a la operación de creación y los permisos que se le otorgaron o denegaron.
  • Los registros de auditoría del proyecto de VPC de destino registran información sobre los Google Cloud recursos que habilitan la conexión de VPN entre proyectos, como los recursos de Cloud Router y Cloud VPN La persona que llama que accede a estos recursos es la cuenta de servicio de Distributed Cloud a la que le otorgaste el rol de agente de servicio de Edge Container (roles/edgecontainer.serviceAgent).

Limitaciones de las conexiones de VPN

Si modificas el grupo de nodos del clúster en el que creaste una conexión de VPN en particular, debes borrar y volver a crear esa conexión de VPN. De lo contrario, es posible que se produzcan comportamientos inesperados, incluidos los siguientes:

  • Pérdida intermitente de la conectividad de VPN
  • Imposibilidad de crear conexiones de VPN en los otros clústeres de la zona de Distributed Cloud

Limitaciones de las conexiones de VPN entre proyectos

Además, las conexiones de VPN entre proyectos tienen las siguientes limitaciones:

  • El recurso de conexión de VPN entre proyectos solo existe en tu clúster de Distributed Cloud.
  • Si modificas los permisos en la cuenta de servicio de Distributed Cloud en el proyecto de VPC de destino, no podrás borrar la conexión de VPN entre proyectos de tu clúster de Distributed Cloud.

¿Qué sigue?