Criar e gerenciar conexões VPN

Esta página descreve como criar e gerenciar recursos de conexão VPN do Google Distributed Cloud conectado em uma zona do Distributed Cloud conectado.

Essa funcionalidade está disponível apenas em racks do Distributed Cloud conectado. Os servidores do Distributed Cloud conectado não oferecem suporte a recursos de conexão VPN.

Para mais informações sobre as conexões VPN do Distributed Cloud, consulte Como o Distributed Cloud conectado funciona.

Lembre-se:

  • É necessário configurar sua rede para permitir o tráfego exigido pelas conexões VPN do Distributed Cloud.

  • Ao criar uma conexão VPN do Distributed Cloud, o Distributed Cloud conectado cria os recursos necessários do gateway do Cloud VPN e do Cloud Router. O nome do gateway do Cloud VPN tem o prefixo anthos-mcc. O nome do Cloud Router tem o prefixo gdce. Não modifique esses recursos. Caso contrário, a conexão VPN do Distributed Cloud poderá parar de funcionar. Se você modificar esses recursos acidentalmente, exclua e recrie a conexão VPN do Distributed Cloud afetada.

  • O Distributed Cloud conectado cria um único Cloud Router por Google Cloud projeto por região quando você cria sua primeira conexão VPN do Distributed Cloud nesse Google Cloud projeto e região. Todas as conexões VPN criadas posteriormente em that Google Cloud projeto e região reutilizam o mesmo recurso do Cloud Router resource.

  • Um recurso do Cloud Router só pode ser excluído quando não há interfaces de rede secundárias anexadas a ele. O Distributed Cloud conectado exclui automaticamente um Cloud Router quando você exclui a última conexão VPN restante anexada a ele.

  • As conexões VPN do Distributed Cloud oferecem suporte apenas a endereços IPv4.

  • Só é possível criar uma conexão VPN por cluster do Distributed Cloud conectado.

  • Se a rede local usar vários gateways de conversão de endereço de rede (NAT), configure-os para que a instalação do Distributed Cloud conectado use um único endereço IP para o tráfego de saída para a rede de nuvem privada virtual (VPC).

  • Por padrão, o Distributed Cloud conectado configura um único cliente VPN em um único nó para se conectar Google Cloud usando dois túneis VPN, também conhecidos como VPN de alta disponibilidade no Google Cloud final. É possível aumentar ainda mais a disponibilidade da conexão VPN usando a flag --high-availability. Essa flag instrui o Distributed Cloud conectado a configurar dois clientes VPN em dois nós separados para um total de quatro túneis VPN.

  • Exclua e recrie uma conexão VPN se quiser mudar a configuração dela.

  • É possível gerenciar conexões VPN usando a Google Cloud CLI ou a API Distributed Cloud Edge Container.

Criar uma conexão VPN

Para criar uma conexão VPN do Distributed Cloud, conclua as etapas desta seção.

Para concluir essa tarefa, você precisa ter o papel de administrador do contêiner de borda (roles/edgecontainer.admin) no seu Google Cloud projeto.

gcloud

Use o 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

Substitua:

  • VPN_CONNECTION_NAME: um nome descritivo que identifica exclusivamente essa conexão VPN.
  • PROJECT_ID: o ID doprojeto de destino. Google Cloud
  • REGION: aregião em que a Google Cloud zona de destino do Distributed Cloud conectado é criada.
  • CLUSTER_NAME: o nome do cluster de destino do Distributed Cloud conectado.
  • VPC_NETWORK_NAME: o nome da rede VPC de destino para a qual essa conexão VPN aponta. Essa rede precisa estar no mesmo Google Cloud projeto que a sua instalação do Distributed Cloud conectado.
  • NAT_GATEWAY_IP: o endereço IP do gateway NAT para o cluster de destino. Omita essa flag se você não estiver usando o NAT.
  • ROUTER_NAME (opcional): especifica um recurso do Cloud Router atual a ser usado para essa conexão VPN. Caso contrário, o Distributed Cloud conectado cria um Cloud Router automaticamente se ele ainda não existir no Google Cloud projeto e na região de destino.
  • --high-availability (opcional): configura essa conexão VPN para alta disponibilidade no lado do cluster, configurando dois clientes VPN separados que são executados em dois nós separados. Para desativar a alta disponibilidade, omita essa flag.

API

Faça uma solicitação POST para o 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,
}

Substitua:

  • PROJECT_ID: o ID doprojeto de destino. Google Cloud
  • REGION: aregião em que a zona de destino do Distributed Cloud conectado é criada. Google Cloud
  • VPN_CONNECTION_ID: um ID programático exclusivo que identifica esse recurso de pool de nós.
  • REQUEST_ID: um ID programático exclusivo que identifica essa solicitação.
  • VPN_CONNECTION_NAME: um nome descritivo que identifica exclusivamente essa conexão VPN.
  • NAT_GATEWAY: o endereço IP do gateway NAT.
  • CLUSTER_PATH: o caminho canônico completo para o cluster de destino.
  • VPC_NETWORK_ID: o ID da rede VPC de destino.
  • HA_ENABLE: indica se essa conexão VPN será configurada para alta disponibilidade no lado do cluster. Se definido como TRUE, configura dois clientes VPN separados que são executados em dois nós separados.
  • ROUTER_NAME (opcional): especifica um recurso do Cloud Router atual a ser usado para essa conexão VPN. Caso contrário, o Distributed Cloud conectado cria um Cloud Router automaticamente se ele ainda não existir no Google Cloud projeto e na região de destino.

Listar conexões VPN

Para listar as conexões VPN provisionadas para um cluster do Distributed Cloud conectado, conclua as etapas desta seção.

Para concluir essa tarefa, você precisa ter o papel de visualizador do contêiner de borda (roles/edgecontainer.viewer) noseu Google Cloud projeto.

gcloud

Use o comando gcloud edge-cloud container vpn-connections list:

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

Substitua:

  • PROJECT_ID: o ID doprojeto de destino. Google Cloud
  • REGION: aregião em que a zona de destino do Distributed Cloud é criada. Google Cloud

API

Faça uma solicitação GET para o método projects.locations.vpnConnections.list:

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

Substitua:

  • PROJECT_ID: o ID doprojeto de destino. Google Cloud
  • REGION: aregião em que a zona de destino do Distributed Cloud conectado é criada. Google Cloud
  • FILTER: uma expressão que restringe os resultados retornados a valores específicos.
  • PAGE_SIZE: o número de resultados a serem retornados por página.
  • SORT_BY: uma lista separada por vírgulas de nomes de campos pelos quais os resultados retornados são classificados. A ordem de classificação padrão é crescente. Para a ordem de classificação decrescente, prefixe o campo desejado com ~.
  • PAGE_TOKEN: um token recebido na resposta à última solicitação de lista no campo nextPageToken na resposta. Envie esse token para receber uma página de resultados.

Receber informações sobre uma conexão VPN

Para receber informações sobre uma conexão VPN do Distributed Cloud, conclua as etapas desta seção.

Para concluir essa tarefa, você precisa ter o papel de visualizador do contêiner de borda (roles/edgecontainer.viewer) noseu Google Cloud projeto.

gcloud

Use o comando gcloud edge-cloud container vpn-connections describe:

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

Substitua:

  • VPN_CONNECTION_NAME: o nome da conexão VPN de destino.
  • PROJECT_ID: o ID doprojeto de destino. Google Cloud
  • REGION: aregião em que a zona de destino do Distributed Cloud conectado é criada. Google Cloud

API

Faça uma solicitação GET para o método projects.locations.vpnConnections.get:

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

Substitua:

  • PROJECT_ID: o ID doprojeto de destino. Google Cloud
  • REGION: aregião em que a zona de destino do Distributed Cloud conectado é criada. Google Cloud
  • VPN_CONNECTION_NAME: o nome da conexão VPN de destino.

Excluir uma conexão VPN

Para excluir uma conexão VPN do Distributed Cloud, conclua as etapas desta seção.

Se você estiver excluindo a última conexão VPN restante associada a um recurso do Cloud Router que o Distributed Cloud criou anteriormente no Google Cloud projeto, a exclusão da conexão VPN exclui automaticamente o recurso do Cloud Router associado. No entanto, somente os recursos do Cloud Router criados automaticamente pelo Distributed Cloud conectado são excluídos automaticamente nessa situação. O Distributed Cloud conectado não exclui recursos do Cloud Router atuais especificados usando a flag --router.

Para concluir essa tarefa, você precisa ter o papel de administrador do contêiner de borda (roles/edgecontainer.admin) no seu Google Cloud projeto.

gcloud

Use o comando gcloud edge-cloud container vpn-connections delete:

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

Substitua:

  • VPN_CONNECTION_NAME: um nome descritivo que identifica exclusivamente essa conexão VPN.
  • REGION: aregião em que a Google Cloud zona de destino do Distributed Cloud conectado é criada.
  • PROJECT_ID: o ID doprojeto de destino. Google Cloud

API

Faça uma solicitação DELETE para o método projects.locations.vpnConnections.delete:

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

Substitua:

  • PROJECT_ID: o ID doprojeto de destino. Google Cloud
  • REGION: aregião em que a zona de destino do Distributed Cloud conectado é criada. Google Cloud
  • VPN_CONNECTION_NAME: o nome da conexão VPN de destino.
  • REQUEST_ID: um ID programático exclusivo que identifica essa solicitação.

Gerenciar conexões VPN entre projetos

O Distributed Cloud conectado também permite criar conexões VPN para redes VPC em um Google Cloud projeto que's diferente do Google Cloud projeto que contém o cluster do Distributed Cloud conectado.

Pré-requisitos

É necessário atender aos pré-requisitos desta seção antes de criar conexões VPN entre projetos.

Permissões da conta do autor da chamada

A conta de usuário do autor da chamada no projeto VPC de destino precisa ter as seguintes permissões. Essas permissões estão encapsuladas no papel de administrador do IAM do projeto (roles/resourcemanager.projectIamAdmin):

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

Para informações sobre como definir papéis e permissões do IAM, consulte Gerenciar o acesso a projetos, pastas e organizações.

Permissões da conta de serviço do Distributed Cloud

Para permitir que o Distributed Cloud conectado crie os recursos do Cloud Router e do Cloud VPN no projeto VPC de destino que permite a conexão VPN entre projetos, você deve conceder o papel de administrador de rede do Compute (roles/compute.networkAdmin) à conta de serviço do Distributed Cloud no cluster do Distributed Cloud.

Para conceder o papel de administrador de rede do Compute, faça o seguinte.

gcloud

Use o 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

Substitua:

  • VPC_PROJECT_ID: o ID do projeto VPC de destino.
  • PROJECT_NUM: o número do projeto de destino do Distributed Cloud Google Cloud .

Criar uma conexão VPN entre projetos

Para criar uma conexão VPN com uma rede VPC em um projeto diferente Google Cloud conclua as etapas desta seção.

gcloud

Use o 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

Substitua:

  • VPN_CONNECTION_NAME: um nome descritivo que identifica exclusivamente essa conexão VPN.
  • PROJECT_ID: o ID do projeto de destino do cluster do Distributed Cloud conectado. Google Cloud
  • REGION: aregião em que a zona de destino do Distributed Cloud conectado é criada. Google Cloud
  • CLUSTER_NAME: o nome do cluster de destino do Distributed Cloud conectado.
  • VPC_PROJECT_ID: o ID do projeto de destino Google Cloud que contém a rede VPC de destino.
  • VPC_NETWORK_NAME: o nome da rede VPC de destino para a qual essa conexão VPN aponta.
  • NAT_GATEWAY_IP: o endereço IP do gateway NAT para o cluster de destino. Omita essa flag se você não estiver usando o NAT.
  • --high-availability (opcional): configura essa conexão VPN para alta disponibilidade no lado do cluster, configurando dois clientes VPN separados que são executados em dois nós separados. Para desativar a alta disponibilidade, omita essa flag.

API

Faça uma solicitação POST para o 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,
}

Substitua:

  • PROJECT_ID: o ID doprojeto de destino. Google Cloud
  • REGION: aregião em que a zona de destino do Distributed Cloud conectado é criada. Google Cloud
  • VPN_CONNECTION_ID: um ID programático exclusivo que identifica esse recurso de pool de nós.
  • REQUEST_ID: um ID programático exclusivo que identifica essa solicitação.
  • VPN_CONNECTION_NAME: um nome descritivo que identifica exclusivamente essa conexão VPN.
  • NAT_GATEWAY: o endereço IP do gateway NAT.
  • CLUSTER_PATH: o caminho canônico completo para o cluster de destino.
  • VPC_NETWORK_ID: o ID da rede VPC de destino.
  • VPC_PROJECT_ID: o ID do projeto de destino Google Cloud que contém a rede VPC de destino.
  • HA_ENABLE: indica se essa conexão VPN será configurada para alta disponibilidade no lado do cluster. Se definido como TRUE, configura dois clientes VPN separados que são executados em dois nós separados.

Registros de auditoria do Cloud para conexões VPN entre projetos

Ao criar uma conexão VPN entre projetos, os registros de auditoria do Cloud são gravados da seguinte maneira:

  • Os registros de auditoria do cluster do Distributed Cloud conectado registram a operação de longa duração, a autenticação e as informações de autorização para a conexão VPN entre projetos. Essas informações incluem o autor da chamada da operação de criação e as permissões concedidas ou negadas ao autor da chamada.
  • Os registros de auditoria do projeto VPC de destino registram informações sobre os Google Cloud recursos que permitem a conexão VPN entre projetos, como os recursos do Cloud Router e do Cloud VPN O autor da chamada que acessa esses recursos é a conta de serviço do Distributed Cloud conectado à qual você concedeu o papel de agente de serviço do contêiner de borda (roles/edgecontainer.serviceAgent).

Limitações das conexões VPN

Se você modificar o pool de nós do cluster em que criou uma conexão VPN específica, exclua e recrie essa conexão VPN. Caso contrário, um comportamento inesperado poderá ocorrer, incluindo:

  • Perda intermitente da conectividade VPN
  • Incapacidade de criar conexões VPN nos outros clusters na zona do Distributed Cloud conectado

Limitações das conexões VPN entre projetos

Além disso, as conexões VPN entre projetos têm as seguintes limitações:

  • O recurso de conexão VPN entre projetos existe apenas no cluster do Distributed Cloud conectado.
  • Se você alterar as permissões na conta de serviço do Distributed Cloud conectado no projeto VPC de destino, não será possível excluir a conexão VPN entre projetos do cluster do Distributed Cloud conectado.

A seguir