Créer et gérer des connexions VPN

Cette page explique comment créer et gérer des ressources de connexion VPN Google Distributed Cloud dans une zone Distributed Cloud.

Cette fonctionnalité n'est disponible que sur les racks Distributed Cloud. Les serveurs cloud distribués ne sont pas compatibles avec les ressources de connexion VPN.

Pour en savoir plus sur les connexions Distributed Cloud VPN, consultez Fonctionnement de Distributed Cloud.

Tenez bien compte des éléments suivants :

  • Vous devez configurer votre réseau pour autoriser le trafic requis par les connexions VPN Distributed Cloud.

  • Lorsque vous créez une connexion Distributed Cloud VPN, Distributed Cloud crée les ressources de passerelle Cloud VPN et de routeur Cloud Router requises. Le nom de la passerelle Cloud VPN est précédé de anthos-mcc. Le nom de Cloud Router est précédé de gdce. Vous ne devez pas modifier ces ressources. Sinon, la connexion Distributed Cloud VPN risque de cesser de fonctionner. Si vous modifiez accidentellement ces ressources, vous devez supprimer et recréer la connexion Distributed Cloud VPN concernée.

  • Distributed Cloud crée un routeur Cloud Router par projet Google Cloud et par région lorsque vous créez votre première connexion VPN Distributed Cloud dans ce projetGoogle Cloud et cette région. Toutes les connexions VPN créées par la suite dans ce projet Google Cloud et cette région réutilisent la même ressource Cloud Router.

  • Une ressource Cloud Router ne peut être supprimée que si aucune interface réseau secondaire n'y est associée. Distributed Cloud supprime automatiquement un routeur Cloud Router lorsque vous supprimez la dernière connexion VPN qui y est associée.

  • Les connexions Distributed Cloud VPN ne sont compatibles qu'avec les adresses IPv4.

  • Vous ne pouvez créer qu'une seule connexion VPN par cluster Distributed Cloud.

  • Si votre réseau local utilise plusieurs passerelles de traduction d'adresse réseau (NAT), vous devez les configurer de sorte que votre installation Distributed Cloud utilise une seule adresse IP pour le trafic sortant vers votre réseau de cloud privé virtuel (VPC).

  • Par défaut, Distributed Cloud configure un seul client VPN sur un seul nœud pour se connecter à Google Cloud à l'aide de deux tunnels VPN, également appelés VPN haute disponibilité à l'extrémité Google Cloud . Vous pouvez augmenter davantage la disponibilité de la connexion VPN en utilisant l'indicateur --high-availability. Cet indicateur indique à Distributed Cloud de configurer deux clients VPN sur deux nœuds distincts pour un total de quatre tunnels VPN.

  • Vous devez supprimer et recréer une connexion VPN si vous souhaitez modifier sa configuration.

  • Vous pouvez gérer les connexions VPN à l'aide de Google Cloud CLI ou de l'API Distributed Cloud Edge Container.

Créer une connexion VPN

Pour créer une connexion Distributed Cloud VPN, suivez les étapes de cette section.

Pour effectuer cette tâche, vous devez disposer du rôle d'administrateur de conteneurs Edge (roles/edgecontainer.admin) dans votre projet Google Cloud .

gcloud

Exécutez la commande 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

Remplacez les éléments suivants :

  • VPN_CONNECTION_NAME : nom descriptif qui identifie de manière unique cette connexion VPN.
  • PROJECT_ID : ID du projet Google Cloud cible.
  • REGION : région Google Cloud dans laquelle la zone Distributed Cloud cible est créée.
  • CLUSTER_NAME : nom du cluster Distributed Cloud cible.
  • VPC_NETWORK_NAME : nom du réseau VPC cible vers lequel pointe cette connexion VPN. Ce réseau doit se trouver dans le même projet Google Cloud que votre installation Distributed Cloud.
  • NAT_GATEWAY_IP : adresse IP de la passerelle NAT pour le cluster cible. Omettez ce flag si vous n'utilisez pas NAT.
  • ROUTER_NAME (facultatif) : spécifie une ressource Cloud Router existante à utiliser pour cette connexion VPN. Sinon, Distributed Cloud crée automatiquement Cloud Router s'il n'en existe pas encore dans le projet et la régionGoogle Cloud cibles.
  • --high-availability (facultatif) : configure cette connexion VPN pour la haute disponibilité côté cluster en configurant deux clients VPN distincts qui s'exécutent sur deux nœuds distincts. Pour désactiver la haute disponibilité, omettez cet indicateur.

API

Envoyez une requête POST à la méthode 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,
}

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet Google Cloud cible.
  • REGION : région Google Cloud dans laquelle la zone Distributed Cloud cible est créée.
  • VPN_CONNECTION_ID : ID programmatique unique qui identifie cette ressource de pool de nœuds.
  • REQUEST_ID : ID programmatique unique qui identifie cette requête.
  • VPN_CONNECTION_NAME : nom descriptif qui identifie de manière unique cette connexion VPN.
  • NAT_GATEWAY : adresse IP de votre passerelle NAT.
  • CLUSTER_PATH : chemin canonique complet vers le cluster cible.
  • VPC_NETWORK_ID : ID du réseau VPC cible.
  • HA_ENABLE : indique s'il faut configurer cette connexion VPN pour la haute disponibilité côté cluster. Si la valeur est définie sur TRUE, deux clients VPN distincts sont configurés et s'exécutent sur deux nœuds distincts.
  • ROUTER_NAME (facultatif) : spécifie une ressource Cloud Router existante à utiliser pour cette connexion VPN. Sinon, Distributed Cloud crée automatiquement Cloud Router s'il n'en existe pas encore dans le projet et la régionGoogle Cloud cibles.

Lister les connexions VPN

Pour lister les connexions VPN provisionnées pour un cluster Distributed Cloud, suivez les étapes décrites dans cette section.

Pour effectuer cette tâche, vous devez disposer du rôle Lecteur Edge Container (roles/edgecontainer.viewer) dans votre projet Google Cloud .

gcloud

Exécutez la commande gcloud edge-cloud container vpn-connections list :

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

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet Google Cloud cible.
  • REGION : région Google Cloud dans laquelle la zone Distributed Cloud cible est créée.

API

Envoyez une requête GET à la méthode projects.locations.vpnConnections.list :

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

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet Google Cloud cible.
  • REGION : région Google Cloud dans laquelle la zone Distributed Cloud cible est créée.
  • FILTER : expression qui limite les résultats renvoyés à des valeurs spécifiques.
  • PAGE_SIZE : nombre de résultats à renvoyer par page.
  • SORT_BY : liste de noms de champs séparés par une virgule selon lesquels les résultats renvoyés sont triés. L'ordre de tri par défaut est croissant. Pour un ordre décroissant, ajoutez le préfixe ~ au champ souhaité.
  • PAGE_TOKEN : jeton reçu en réponse à la dernière requête de liste dans le champ nextPageToken de la réponse. Envoyez ce jeton pour recevoir une page de résultats.

Obtenir des informations sur une connexion VPN

Pour obtenir des informations sur une connexion Distributed Cloud VPN, suivez les étapes de cette section.

Pour effectuer cette tâche, vous devez disposer du rôle Lecteur Edge Container (roles/edgecontainer.viewer) dans votre projet Google Cloud .

gcloud

Exécutez la commande gcloud edge-cloud container vpn-connections describe :

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

Remplacez les éléments suivants :

  • VPN_CONNECTION_NAME : nom de la connexion VPN cible.
  • PROJECT_ID : ID du projet Google Cloud cible.
  • REGION : région Google Cloud dans laquelle la zone Distributed Cloud cible est créée.

API

Envoyez une requête GET à la méthode projects.locations.vpnConnections.get :

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

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet Google Cloud cible.
  • REGION : région Google Cloud dans laquelle la zone Distributed Cloud cible est créée.
  • VPN_CONNECTION_NAME : nom de la connexion VPN cible.

Supprimer une connexion VPN

Pour supprimer une connexion Distributed Cloud VPN, suivez les étapes décrites dans cette section.

Si vous supprimez la dernière connexion VPN associée à une ressource Cloud Router que Distributed Cloud a créée précédemment dans le projet Google Cloud , la ressource Cloud Router associée est automatiquement supprimée. Toutefois, seuls les ressources Cloud Router créées automatiquement par Distributed Cloud sont supprimées automatiquement dans ce cas. Distributed Cloud ne supprime pas les ressources Cloud Router existantes spécifiées à l'aide de l'indicateur --router.

Pour effectuer cette tâche, vous devez disposer du rôle d'administrateur de conteneurs Edge (roles/edgecontainer.admin) dans votre projet Google Cloud .

gcloud

Exécutez la commande gcloud edge-cloud container vpn-connections delete :

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

Remplacez les éléments suivants :

  • VPN_CONNECTION_NAME : nom descriptif qui identifie de manière unique cette connexion VPN.
  • REGION : région Google Cloud dans laquelle la zone Distributed Cloud cible est créée.
  • PROJECT_ID : ID du projet Google Cloud cible.

API

Envoyez une requête DELETE à la méthode projects.locations.vpnConnections.delete :

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

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet Google Cloud cible.
  • REGION : région Google Cloud dans laquelle la zone Distributed Cloud cible est créée.
  • VPN_CONNECTION_NAME : nom de la connexion VPN cible.
  • REQUEST_ID : ID programmatique unique qui identifie cette requête.

Gérer les connexions VPN inter-projets

Distributed Cloud vous permet également de créer des connexions VPN vers des réseaux VPC dans un projet Google Cloud différent de celui Google Cloud qui contient votre cluster Distributed Cloud.

Prérequis

Vous devez remplir les conditions préalables de cette section avant de pouvoir créer des connexions VPN entre projets.

Autorisations du compte de l'appelant

Le compte utilisateur de l'appelant dans le projet VPC cible doit disposer des autorisations suivantes. Ces autorisations sont incluses dans le rôle Administrateur IAM du projet (roles/resourcemanager.projectIamAdmin) :

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

Pour savoir comment définir des rôles et des autorisations IAM, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Autorisations du compte de service Distributed Cloud

Pour permettre à Distributed Cloud de créer les ressources Cloud Router et Cloud VPN dans le projet VPC cible qui permet la connexion VPN entre projets, vous devez attribuer le rôle d'administrateur réseau Compute (roles/compute.networkAdmin) au compte de service Distributed Cloud dans votre cluster Distributed Cloud.

Pour attribuer le rôle d'administrateur réseau Compute, procédez comme suit.

gcloud

Exécutez la commande 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

Remplacez les éléments suivants :

  • VPC_PROJECT_ID : ID du projet VPC cible.
  • PROJECT_NUM : numéro du projet Distributed Cloud Google Cloud cible.

Créer une connexion VPN inter-projets

Pour créer une connexion VPN à un réseau VPC dans un autre projetGoogle Cloud , suivez les étapes de cette section.

gcloud

Exécutez la commande 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

Remplacez les éléments suivants :

  • VPN_CONNECTION_NAME : nom descriptif qui identifie de manière unique cette connexion VPN.
  • PROJECT_ID : ID du projet Google Cloud du cluster Distributed Cloud cible.
  • REGION : région Google Cloud dans laquelle la zone Distributed Cloud cible est créée.
  • CLUSTER_NAME : nom du cluster Distributed Cloud cible.
  • VPC_PROJECT_ID : ID du projetGoogle Cloud cible contenant le réseau VPC cible.
  • VPC_NETWORK_NAME : nom du réseau VPC cible vers lequel pointe cette connexion VPN.
  • NAT_GATEWAY_IP : adresse IP de la passerelle NAT pour le cluster cible. Omettez ce flag si vous n'utilisez pas NAT.
  • --high-availability (facultatif) : configure cette connexion VPN pour la haute disponibilité côté cluster en configurant deux clients VPN distincts qui s'exécutent sur deux nœuds distincts. Pour désactiver la haute disponibilité, omettez cet indicateur.

API

Envoyez une requête POST à la méthode 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,
}

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet Google Cloud cible.
  • REGION : région Google Cloud dans laquelle la zone Distributed Cloud cible est créée.
  • VPN_CONNECTION_ID : ID programmatique unique qui identifie cette ressource de pool de nœuds.
  • REQUEST_ID : ID programmatique unique qui identifie cette requête.
  • VPN_CONNECTION_NAME : nom descriptif qui identifie de manière unique cette connexion VPN.
  • NAT_GATEWAY : adresse IP de votre passerelle NAT.
  • CLUSTER_PATH : chemin canonique complet vers le cluster cible.
  • VPC_NETWORK_ID : ID du réseau VPC cible.
  • VPC_PROJECT_ID : ID du projetGoogle Cloud cible qui contient le réseau VPC cible.
  • HA_ENABLE : indique s'il faut configurer cette connexion VPN pour la haute disponibilité côté cluster. Si la valeur est définie sur TRUE, deux clients VPN distincts sont configurés et s'exécutent sur deux nœuds distincts.

Cloud Audit Logs pour les connexions VPN inter-projets

Lorsque vous créez une connexion VPN entre projets, les journaux Cloud Audit Logs sont écrits comme suit :

  • Les journaux d'audit de votre cluster Distributed Cloud enregistrent les informations sur les opération de longue durée, l'authentification et l'autorisation pour la connexion VPN inter-projets. Ces informations incluent l'appelant de l'opération de création et les autorisations qui lui ont été accordées ou refusées.
  • Les journaux d'audit du projet VPC cible enregistrent des informations sur les ressources Google Cloud qui permettent la connexion VPN entre projets, telles que les ressources Cloud Router et Cloud VPN. L'appelant qui accède à ces ressources est le compte de service Distributed Cloud auquel vous avez attribué le rôle d'agent de service Edge Container (roles/edgecontainer.serviceAgent).

Limites des connexions VPN

Si vous modifiez le pool de nœuds du cluster dans lequel vous avez créé une connexion VPN spécifique, vous devez supprimer cette connexion VPN et la recréer. Sinon, un comportement inattendu peut se produire, y compris :

  • Perte intermittente de la connectivité VPN
  • Impossibilité de créer des connexions VPN dans les autres clusters de la zone Distributed Cloud

Limites des connexions VPN entre projets

De plus, les connexions VPN inter-projets sont soumises aux limites suivantes :

  • La ressource de connexion VPN inter-projets n'existe que sur votre cluster Distributed Cloud.
  • Si vous modifiez les autorisations du compte de service Distributed Cloud dans le projet VPC cible, vous ne pourrez pas supprimer la connexion VPN inter-projets de votre cluster Distributed Cloud.

Étapes suivantes