Criar e gerenciar conexões VPN

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

Essa funcionalidade está disponível apenas em racks conectados do Distributed Cloud. Os servidores conectados do Distributed Cloud não são compatíveis com recursos de conexão VPN.

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

Lembre-se:

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

  • Ao criar uma conexão do Distributed Cloud VPN, o Distributed Cloud Connected cria o gateway do Cloud VPN e os recursos do Cloud Router necessários. 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 do Distributed Cloud VPN poderá parar de funcionar. Se você modificar esses recursos por engano, exclua e recrie a conexão afetada do Distributed Cloud VPN.

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

  • 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 Connected exclui automaticamente um Cloud Router quando você exclui a última conexão VPN restante anexada a ele.

  • As conexões do Distributed Cloud VPN são compatíveis apenas com endereços IPv4.

  • É possível criar apenas uma conexão VPN por cluster conectado do Distributed Cloud.

  • Se a rede local usar vários gateways de conversão de endereços de rede (NAT), configure-os para que a instalação conectada do Distributed Cloud 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 Connected configura um único cliente VPN em um único nó para se conectar ao Google Cloud usando dois túneis VPN, também conhecidos como VPN de alta disponibilidade no lado Google Cloud . É possível aumentar ainda mais a disponibilidade da conexão VPN usando a flag --high-availability. Essa flag instrui o Distributed Cloud Connected a configurar dois clientes de VPN em dois nós separados para um total de quatro túneis de VPN.

  • É necessário excluir e recriar uma conexão VPN se você 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 da VPN do Distributed Cloud, siga as etapas nesta seção.

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

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 de forma exclusiva essa conexão VPN.
  • PROJECT_ID: o ID do projeto Google Cloud de destino.
  • REGION: a região do Google Cloud em que a zona de destino do Distributed Cloud conectado é criada.
  • CLUSTER_NAME: o nome do cluster conectado do Distributed Cloud de destino.
  • VPC_NETWORK_NAME: o nome da rede VPC de destino a que essa conexão VPN aponta. Essa rede precisa estar no mesmo projeto do Google Cloud que a instalação conectada do Distributed Cloud.
  • NAT_GATEWAY_IP: o endereço IP do gateway NAT para o cluster de destino. Omita essa flag se você não estiver usando NAT.
  • ROUTER_NAME (opcional): especifica um recurso do Cloud Router para usar nessa conexão VPN. Caso contrário, o Distributed Cloud Connected cria um Cloud Router automaticamente se ainda não houver um noGoogle Cloud projeto e na região de destino.
  • --high-availability (opcional): configura essa conexão VPN para alta disponibilidade no lado do cluster ao configurar 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 ao 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 do projeto Google Cloud de destino.
  • REGION: a região do Google Cloud em que a zona conectada do Distributed Cloud de destino é criada.
  • 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 esta solicitação.
  • VPN_CONNECTION_NAME: um nome descritivo que identifica de forma exclusiva essa conexão VPN.
  • NAT_GATEWAY: o endereço IP do seu 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 é necessário configurar essa conexão VPN 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 para usar nessa conexão VPN. Caso contrário, o Distributed Cloud Connected cria um Cloud Router automaticamente se ainda não houver um noGoogle Cloud projeto e na região de destino.

Listar conexões VPN

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

Para concluir essa tarefa, você precisa ter o papel de Leitor do Edge Container (roles/edgecontainer.viewer) no projeto Google Cloud .

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 do projeto Google Cloud de destino.
  • REGION: a Google Cloud região em que a zona de destino do Distributed Cloud é criada.

API

Faça uma solicitação GET ao 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 do projeto Google Cloud de destino.
  • REGION: a região do Google Cloud em que a zona conectada do Distributed Cloud de destino é criada.
  • 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 delimitada por vírgulas de nomes de campos pelos quais os resultados retornados são classificados. A ordem de classificação padrão é crescente. Para classificar em ordem decrescente, adicione o prefixo ~ ao campo desejado.
  • PAGE_TOKEN: um token recebido na resposta à última solicitação de lista no campo nextPageToken da resposta. Envie esse token para receber uma página de resultados.

Receber informações sobre uma conexão VPN

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

Para concluir essa tarefa, você precisa ter o papel de Leitor do Edge Container (roles/edgecontainer.viewer) no projeto Google Cloud .

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 do projeto Google Cloud de destino.
  • REGION: a região do Google Cloud em que a zona conectada do Distributed Cloud de destino é criada.

API

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

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

Substitua:

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

Excluir uma conexão VPN

Para excluir uma conexão da VPN do Distributed Cloud, siga 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 projeto Google Cloud , a exclusão da conexão VPN exclui automaticamente o recurso associado do Cloud Router. No entanto, somente os recursos do Cloud Router criados automaticamente pelo Distributed Cloud Connected são excluídos automaticamente nessa situação. O Distributed Cloud Connected não exclui os recursos do Cloud Router especificados usando a flag --router.

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

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 de forma exclusiva essa conexão VPN.
  • REGION: a região do Google Cloud em que a zona de destino do Distributed Cloud conectado é criada.
  • PROJECT_ID: o ID do projeto Google Cloud de destino.

API

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

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

Substitua:

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

Gerenciar conexões VPN entre projetos

O Distributed Cloud Connected também permite criar conexões VPN com redes VPC em um projeto Google Cloud que é diferente do projeto Google Cloud que contém seu cluster do Distributed Cloud Connected.

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 de 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 saber 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 Connected crie os recursos do Cloud Router e do Cloud VPN no projeto da VPC de destino que permite a conexão VPN entre projetos, conceda 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 da 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 projetoGoogle Cloud diferente, siga 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 de forma exclusiva essa conexão VPN.
  • PROJECT_ID: o ID do projeto do cluster conectado do Distributed Cloud Google Cloud de destino.
  • REGION: a região do Google Cloud em que a zona conectada do Distributed Cloud de destino é criada.
  • CLUSTER_NAME: o nome do cluster conectado do Distributed Cloud de destino.
  • 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 a que 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 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 ao 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 do projeto Google Cloud de destino.
  • REGION: a região do Google Cloud em que a zona conectada do Distributed Cloud de destino é criada.
  • 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 esta solicitação.
  • VPN_CONNECTION_NAME: um nome descritivo que identifica de forma exclusiva essa conexão VPN.
  • NAT_GATEWAY: o endereço IP do seu 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 Google Cloud destino que contém a rede VPC de destino.
  • HA_ENABLE: indica se é necessário configurar essa conexão VPN 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

Quando você cria uma conexão VPN entre projetos, os registros de auditoria do Cloud são gravados da seguinte maneira:

  • Os registros de auditoria do cluster conectado do Distributed Cloud registram a operação de longa duração, a autenticação e as informações de autorização da 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 a ele.
  • Os registros de auditoria do projeto da VPC de destino registram informações sobre os recursos Google Cloud que ativam 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 conectada do Distributed Cloud a que você concedeu o papel de agente de serviço do Edge Container (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, será necessário excluir e recriar essa conexão. Caso contrário, um comportamento inesperado pode ocorrer, incluindo:

  • Perda intermitente da conectividade VPN
  • Não é possível criar conexões VPN nos outros clusters na zona conectada do Distributed Cloud.

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 conectado do Distributed Cloud.
  • Se você alterar as permissões na conta de serviço conectada do Distributed Cloud no projeto VPC de destino, não será possível excluir a conexão VPN entre projetos do cluster conectado do Distributed Cloud.

A seguir