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 Distributed Cloud ne sont pas compatibles avec les ressources de connexion VPN.

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

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 VPN Distributed Cloud, 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é du préfixe anthos-mcc. Le nom du routeur Cloud Router est précédé du préfixe gdce. Vous ne devez pas modifier ces ressources. Sinon, la connexion VPN Distributed Cloud risque de cesser de fonctionner. Si vous modifiez accidentellement ces ressources, vous devez supprimer et recréer la connexion VPN Distributed Cloud concernée.

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

  • Une ressource de routeur 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 VPN Distributed Cloud 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'adresses 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 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é sur le Google Cloud Vous pouvez augmenter la disponibilité de la connexion VPN à l'aide de l'indicateur --high-availability. Cet indicateur demande à 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 VPN Distributed Cloud, suivez les étapes de cette section.

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

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 duprojet cible. Google Cloud
  • REGION :région dans laquelle la Google Cloud 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 Google Cloud projet que votre installation Distributed Cloud.
  • NAT_GATEWAY_IP: adresse IP de la passerelle NAT pour le cluster cible. Omettez cet indicateur si vous n'utilisez pas NAT.
  • ROUTER_NAME (facultatif) : spécifie une ressource de routeur Cloud Router existante à utiliser pour cette connexion VPN. Sinon, Distributed Cloud crée automatiquement un routeur Cloud Router s'il n'en existe pas encore dans le projet et la région cibles. Google Cloud
  • --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 duprojet cible. Google Cloud
  • REGION :région dans laquelle la zone Distributed Cloud cible est créée. Google Cloud
  • VPN_CONNECTION_ID: ID unique par programmation qui identifie cette ressource de pool de nœuds.
  • REQUEST_ID: ID unique par programmation 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 si cette connexion VPN doit être configurée pour la haute disponibilité côté cluster. Si la valeur est TRUE, deux clients VPN distincts sont configurés pour s'exécuter sur deux nœuds distincts.
  • ROUTER_NAME (facultatif) : spécifie une ressource de routeur Cloud Router existante à utiliser pour cette connexion VPN. Sinon, Distributed Cloud crée automatiquement un routeur Cloud Router s'il n'en existe pas encore dans le projet et la région cibles. Google Cloud

Lister les connexions VPN

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

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

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 duprojet cible. Google Cloud
  • REGION :région dans laquelle la zone Distributed Cloud cible est créée. Google Cloud

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 duprojet cible. Google Cloud
  • REGION :région dans laquelle la zone Distributed Cloud cible est créée. Google Cloud
  • 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 dans la 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 VPN Distributed Cloud, suivez les étapes de cette section.

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

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 duprojet cible. Google Cloud
  • REGION :région dans laquelle la zone Distributed Cloud cible est créée. Google Cloud

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 duprojet cible. Google Cloud
  • REGION :région dans laquelle la zone Distributed Cloud cible est créée. Google Cloud
  • VPN_CONNECTION_NAME: nom de la connexion VPN cible.

Supprimer une connexion VPN

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

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

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

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 dans laquelle la Google Cloud zone Distributed Cloud cible est créée.
  • PROJECT_ID : ID duprojet cible. Google Cloud

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 duprojet cible. Google Cloud
  • REGION :région dans laquelle la zone Distributed Cloud cible est créée. Google Cloud
  • VPN_CONNECTION_NAME: nom de la connexion VPN cible.
  • REQUEST_ID: ID unique par programmation qui identifie cette requête.

Gérer les connexions VPN entre projets

Distributed Cloud vous permet également de créer des connexions VPN vers des réseaux VPC dans un Google Cloud projet différent de celui qui contient votre Google Cloud 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 encapsulées 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 autoriser Distributed Cloud à créer les ressources de Cloud Router et de Cloud VPN dans le projet VPC cible qui active la connexion VPN entre projets, vous devez attribuer le rôle Administrateur réseau Compute (roles/compute.networkAdmin) au compte de service Distributed Cloud dans votre cluster Distributed Cloud.

Pour attribuer le rôle 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 cible. Google Cloud

Créer une connexion VPN entre projets

Pour créer une connexion VPN vers un réseau VPC dans un autre Google Cloud projet, 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 duprojet de cluster Distributed Cloud cible. Google Cloud
  • REGION :région dans laquelle la zone Distributed Cloud cible est créée. Google Cloud
  • CLUSTER_NAME: nom du cluster Distributed Cloud cible.
  • VPC_PROJECT_ID : ID du projet cible contenant le réseau VPC cible.Google Cloud
  • 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 cet indicateur 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 duprojet cible. Google Cloud
  • REGION :région dans laquelle la zone Distributed Cloud cible est créée. Google Cloud
  • VPN_CONNECTION_ID: ID unique par programmation qui identifie cette ressource de pool de nœuds.
  • REQUEST_ID: ID unique par programmation 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 projet cible contenant le réseau VPC cible.Google Cloud
  • HA_ENABLE: indique si cette connexion VPN doit être configurée pour la haute disponibilité côté cluster. Si la valeur est TRUE, deux clients VPN distincts sont configurés pour s'exécuter sur deux nœuds distincts.

Cloud Audit Logs pour les connexions VPN entre projets

Lorsque vous créez une connexion VPN entre projets, les journaux d'audit Cloud sont écrits comme suit :

  • Les journaux d'audit de votre cluster Distributed Cloud enregistrent les informations sur l'opération de longue durée, l'authentification et l'autorisation pour la connexion VPN entre 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 Google Cloud ressources qui activent la connexion VPN entre projets, telles que les ressources de routeur Cloud Router et de Cloud VPN. L'appelant qui accède à ces ressources est le compte de service Distributed Cloud auquel vous avez attribué le rôle 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 particulière, vous devez supprimer et recréer cette connexion VPN. 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

En outre, les connexions VPN entre projets sont soumises aux limites suivantes :

  • La ressource de connexion VPN entre 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 entre projets de votre cluster Distributed Cloud.

Étape suivante