Créer et gérer des interfaces Private Service Connect

Cette page décrit comment les administrateurs de réseau producteur peuvent créer et gérer des interfaces Private Service Connect. Les interfaces Private Service Connect permettent aux réseaux VPC (Virtual Private Cloud) du producteur de services d'établir des connexions aux réseaux VPC utilisateur.

Avant de commencer

Rôles

Pour obtenir les autorisations nécessaires pour créer des interfaces Private Service Connect, demandez à votre administrateur de vous accorder les rôles IAM suivants sur votre projet :

Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.

Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.

Le rôle Administrateur d'instance Compute (v1) contient l'autorisation compute.instances.pscInterfaceCreate, qui est requise pour créer des interfaces Private Service Connect.

Créer et configurer une interface Private Service Connect

Pour créer et configurer une instance de machine virtuelle (VM) dotée d'une interface Private Service Connect, procédez comme suit :

Créer une VM avec une interface Private Service Connect

Lorsque vous créez une interface Private Service Connect, vous créez une VM dotée d'au moins deux interfaces réseau. La première interface se connecte à un sous-réseau de producteur. La deuxième interface est une interface Private Service Connect qui demande une connexion à un rattachement de réseau dans un réseau consommateur.

Si la connexion est acceptée, Google Cloud attribue à l'interface Private Service Connect une adresse IP interne du sous-réseau spécifié par le rattachement de réseau.

Si vous créez une interface Private Service Connect qui fait référence à un rattachement de réseau configuré pour accepter manuellement les connexions et que le projet de l'interface ne figure pas dans la liste d'acceptation du rattachement de réseau, la création de la VM de l'interface Private Service Connect échoue. Dans ce cas, collaborez avec l'organisation cliente pour ajouter votre projet à la liste d'acceptation, puis créez une interface Private Service Connect.

Lorsque vous créez une interface Private Service Connect, vous pouvez lui attribuer une ou plusieurs plages d'adresses IP d'alias internes. Si vous prévoyez d'attribuer des plages d'adresses IP d'alias, contactez l'organisation cliente pour déterminer les plages d'adresses IP appropriées.

Pour attribuer une plage d'adresses IP d'alias, spécifiez la longueur de préfixe de la plage au format CIDR. Lorsque vous attribuez une ou plusieurs plages d'adresses IP d'alias à une interface Private Service Connect, Google Cloud attribue les plages d'adresses IP d'alias à partir de la plage d'adresses IP principale du sous-réseau associé au rattachement de réseau. L'adresse IP principale de l'interface Private Service Connect est attribuée en dehors de toute plage d'adresses IP d'alias. Si le sous-réseau du rattachement de réseau ne contient pas suffisamment d'adresses IP pour attribuer l'adresse IP principale et les plages d'adresses IP d'alias, la création de la VM de l'interface Private Service Connect échoue. Vous pouvez trouver les adresses IP spécifiques attribuées en décrivant la VM de l'interface.

Console

  1. Dans la console Google Cloud, accédez à la page Instances de VM.

    Accéder à la page "Instances de VM"

  2. Cliquez sur Créer une instance.

  3. Saisissez un nom.

  4. Sélectionnez une région correspondant à celle de l'attachement réseau auquel vous souhaitez vous connecter.

  5. Sélectionnez une zone.

  6. Cliquez sur Options avancées.

  7. Cliquez sur Mise en réseau.

  8. Dans la section Interfaces réseau, cliquez sur la première interface réseau, qui est l'interface réseau principale, puis procédez comme suit:

    1. Sélectionnez un réseau pour l'interface réseau principale.
    2. Sélectionnez un sous-réseau pour l'interface réseau principale. Ce sous-réseau doit se trouver dans la même région que le rattachement de réseau de l'interface Private Service Connect.
  9. Cliquez sur Ajouter une interface réseau.

  10. Dans le champ Type d'interface, sélectionnez Private Service Connect.

  11. Saisissez une URL de rattachement de réseau.

  12. Sélectionnez un type de pile d'adresses IP. Pour créer une interface Private Service Connect à double pile, le sous-réseau du rattachement de réseau doit être à double pile.

  13. Facultatif: Pour ajouter une plage d'adresses IP d'alias, dans le champ Longueur du préfixe, saisissez la longueur du préfixe (par exemple, /30). Vous pouvez ajouter plusieurs plages d'adresses IP d'alias en cliquant sur Ajouter une plage d'adresses IP, puis en saisissant la longueur de préfixe pour chaque plage d'adresses IP d'alias supplémentaire que vous souhaitez ajouter.

  14. Cliquez sur OK.

  15. Cliquez sur Créer.

gcloud

Pour créer une VM avec une interface Private Service Connect IPv4 uniquement, utilisez la commande instances create.

gcloud compute instances create INSTANCE_NAME \
    --zone=ZONE \
    --machine-type=MACHINE_TYPE \
    --image-project=IMAGE_PROJECT \
    --image=IMAGE \
    --network-interface='network=PRODUCER_NETWORK,subnet=PRODUCER_SUBNET,no-address' \
    --network-interface='network-attachment=projects/CONSUMER_PROJECT_ID/regions/REGION/networkAttachments/ATTACHMENT_NAME'

Remplacez les éléments suivants :

  • INSTANCE_NAME : nom de la nouvelle instance
  • ZONE: zone de la nouvelle instance
  • MACHINE_TYPE: type de machine de l'instance, qui peut être prédéfini ou personnalisé.
  • IMAGE_PROJECT: projet de l'image. Par exemple, si vous spécifiez debian-10-buster-v20230809 comme image, spécifiez debian-cloud comme projet d'image. Vous pouvez afficher une liste des images, des projets d'images et des familles d'images disponibles à l'aide de la commande gcloud compute images list.
  • IMAGE : version spécifique d'une image publique ; par exemple, debian-10-buster-v20230809.
  • PRODUCER_NETWORK: réseau de l'instance.
  • PRODUCER_SUBNET: sous-réseau de l'interface réseau principale de la VM. Ce sous-réseau doit se trouver dans la même région que le rattachement de réseau de l'interface Private Service Connect.
  • CONSUMER_PROJECT_ID: ID de l'utilisateur auquel vous souhaitez vous connecter.
  • ATTACHMENT_NAME: nom du rattachement de réseau auquel demander une connexion.

Pour attribuer à l'interface Private Service Connect une adresse IPv4 et une adresse IPv6, spécifiez stack-type='IPV4_IPv6'. L'association réseau à laquelle l'interface fait référence doit être associée à un sous-réseau double pile.

gcloud compute instances create INSTANCE_NAME \
    --zone=ZONE \
    --machine-type=MACHINE_TYPE \
    --image-project=IMAGE_PROJECT \
    --image=IMAGE \
    --network-interface='network=PRODUCER_NETWORK,subnet=PRODUCER_SUBNET,no-address' \
    --network-interface='network-attachment=projects/CONSUMER_PROJECT_ID/regions/REGION/networkAttachments/ATTACHMENT_NAME,stack-type='IPV4_IPV6''

Pour attribuer une ou plusieurs plages d'adresses IP d'alias à l'interface Private Service Connect, spécifiez la longueur de préfixe de chaque plage d'adresses IP d'alias que vous souhaitez attribuer:

gcloud compute instances create INSTANCE_NAME \
    --zone=ZONE \
    --machine-type=MACHINE_TYPE \
    --image-project=IMAGE_PROJECT \
    --image=IMAGE \
    --network-interface='network=PRODUCER_NETWORK,subnet=PRODUCER_SUBNET,no-address' \
    --network-interface='network-attachment=projects/CONSUMER_PROJECT_ID/regions/REGION/networkAttachments/ATTACHMENT_NAME,aliases=ALIAS_IP_RANGE'

Remplacez ALIAS_IP_RANGE par une ou plusieurs longueurs de préfixe au format CIDR. Vous pouvez inclure plusieurs longueurs de préfixe dans une liste délimitée par des points-virgules, par exemple /24;/28.

API

Pour créer une VM avec une interface Private Service Connect IPv4 uniquement, envoyez une requête POST à la méthode instances.insert.

POST https://compute.googleapis.com/compute/v1/projects/PRODUCER_PROJECT_ID/zones/INSTANCE_ZONE/instances
{
  "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE",
  "name": "VM_NAME",
  "disks": [
    {
      "initializeParams": {
        "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
      },
      "boot": true
    }
  ],
  "networkInterfaces": [
    {
      "network": "https://compute.googleapis.com/compute/v1/projects/PRODUCER_PROJECT_ID/global/networks/PRODUCER_NETWORK",
      "subnetwork": "https://compute.googleapis.com/compute/v1/projects/PRODUCER_PROJECT_ID/regions/SUBNET_REGION/subnetworks/SUBNET"
    },
    {
      "networkAttachment": "projects/CONSUMER_PROJECT_ID/regions/ATTACHMENT_REGION/networkAttachments/ATTACHMENT_NAME"
    }
  ]
}

Remplacez les éléments suivants :

  • PRODUCER_PROJECT_ID: ID du projet du producteur.
  • INSTANCE_ZONE: zone de la nouvelle instance.
  • MACHINE_TYPE_ZONE : zone du type de machine.
  • MACHINE_TYPE: type de machine de la nouvelle VM, qui peut être prédéfini ou personnalisé.
  • VM_NAME : nom de la nouvelle VM.
  • IMAGE_PROJECT : projet contenant l'image. Par exemple, si vous spécifiez debian-10-buster-v20200309 comme image, spécifiez debian-cloud comme projet d'image.
  • IMAGE : version spécifique d'une image publique ; par exemple, debian-10-buster-v20200309.
  • PRODUCER_PROJECT_ID: ID du projet de l'interface.
  • PRODUCER_NETWORK : nom du réseau VPC producteur
  • SUBNET_REGION: région du sous-réseau de l'interface réseau principale. Ce sous-réseau doit se trouver dans la même région que le rattachement de réseau de l'interface Private Service Connect.
  • SUBNET: nom du sous-réseau de l'interface réseau principale.
  • CONSUMER_PROJECT_ID: ID du projet utilisateur.
  • ATTACHMENT_REGION: région du rattachement de réseau.
  • ATTACHMENT_NAME: nom du rattachement de réseau.

Pour attribuer à l'interface Private Service Connect une adresse IPv4 et une adresse IPv6, spécifiez "stack-type": "IPV4_IPv6". L'association réseau à laquelle l'interface fait référence doit être associée à un sous-réseau double pile.

POST https://compute.googleapis.com/compute/v1/projects/PRODUCER_PROJECT_ID/zones/INSTANCE_ZONE/instances
{
  "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE",
  "name": "VM_NAME",
  "disks": [
    {
      "initializeParams": {
        "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
      },
      "boot": true
    }
  ],
  "networkInterfaces": [
    {
      "network": "https://compute.googleapis.com/compute/v1/projects/PRODUCER_PROJECT_ID/global/networks/PRODUCER_NETWORK",
      "subnetwork": "https://compute.googleapis.com/compute/v1/projects/PRODUCER_PROJECT_ID/regions/SUBNET_REGION/subnetworks/SUBNET"
    },
    {
      "networkAttachment": "projects/CONSUMER_PROJECT_ID/regions/ATTACHMENT_REGION/networkAttachments/ATTACHMENT_NAME",
      "stackType": "IPV4_IPV6"
    }
  ]
}

Pour attribuer une ou plusieurs plages d'adresses IP d'alias à l'interface Private Service Connect, spécifiez la longueur du préfixe de chaque plage d'adresses IP d'alias que vous souhaitez attribuer.

POST https://compute.googleapis.com/compute/v1/projects/PRODUCER_PROJECT_ID/zones/INSTANCE_ZONE/instances
{
  "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE",
  "name": "VM_NAME",
  "disks": [
    {
      "initializeParams": {
        "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
      },
      "boot": true
    }
  ],
  "networkInterfaces": [
    {
      "network": "https://compute.googleapis.com/compute/v1/projects/PRODUCER_PROJECT_ID/global/networks/PRODUCER_NETWORK",
      "subnetwork": "https://compute.googleapis.com/compute/v1/projects/PRODUCER_PROJECT_ID/regions/SUBNET_REGION/subnetworks/SUBNET"
    },
    {
      "aliasIpRanges": [
        {
          "ipCidrRange": "ALIAS_IP_RANGE"
        }
      ],
      "networkAttachment": "projects/CONSUMER_PROJECT_ID/regions/ATTACHMENT_REGION/networkAttachments/ATTACHMENT_NAME"
    }
  ]
}

Remplacez ALIAS_IP_RANGE par une longueur de préfixe en notation CIDR (par exemple, /28). Vous pouvez spécifier plusieurs plages d'adresses IP d'alias dans la liste aliasIpRanges au format suivant:

"aliasIpRanges": [
  {
    "ipCidrRange": "/28"
  },
  {
    "ipCidrRange": "/30"
  }
]

Pour en savoir plus sur la création d'instances de VM, consultez la section Créer et démarrer une instance de VM.

Autoriser la connectivité SSH

Assurez-vous que les règles de pare-feu sont configurées pour autoriser les connexions SSH d'entrée vers la VM de votre interface Private Service Connect.

Rechercher le nom Google Cloud de votre interface Private Service Connect

Pour configurer le routage, vous devez connaître le nom Google Cloud de votre interface Private Service Connect.

Console

  1. Dans la console Google Cloud, accédez à Instances de VM.

    Accéder à la page "Instances de VM"

  2. Cliquez sur le nom de la VM sur laquelle se trouve votre interface Private Service Connect.

  3. Dans la section Interfaces réseau, recherchez et notez le nom de votre interface Private Service Connect, par exemple nic1.

gcloud

  1. Exécutez la commande compute instances describe.

    gcloud compute instances describe VM_NAME
      --zone=ZONE
    

    Remplacez les éléments suivants :

    • VM_NAME: nom de la VM sur laquelle se trouve votre interface Private Service Connect.
    • ZONE : zone de la VM.
  2. Dans la sortie de la commande, recherchez et notez le nom Google Cloud de votre interface Private Service Connect, par exemple nic1.

Rechercher le nom du système d'exploitation invité de votre interface Private Service Connect

Pour configurer le routage, vous devez connaître le nom du système d'exploitation invité de votre interface Private Service Connect, qui est différent du nom de l'interface dans Google Cloud.

Pour trouver le nom de l'interface sur une VM Debian, procédez comme suit. Pour les VM avec d'autres systèmes d'exploitation, consultez la documentation publique du système d'exploitation.

  1. Connectez-vous à la VM de votre interface Private Service Connect.
  2. Exécutez la commande ci-dessous.

    ip address
    

    Dans la liste des interfaces réseau, recherchez et notez le nom de l'interface associé à l'adresse IP de votre interface Private Service Connect, par exemple ens5.

Recherchez l'adresse IP de la passerelle de votre interface Private Service Connect

Pour configurer le routage, vous devez connaître l'adresse IP de la passerelle par défaut de votre interface Private Service Connect.

  1. Connectez-vous à la VM de votre interface Private Service Connect.

  2. Envoyez la requête GET suivante depuis la VM de votre interface au serveur de métadonnées associé:

    curl http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/INTERFACE_NUMBER/gateway -H "Metadata-Flavor: Google" && echo
    

    Remplacez INTERFACE_NUMBER par la partie numérique du nom Google Cloud de votre interface Private Service Connect. Par exemple, si le nom de votre interface est nic1, utilisez la valeur 1.

Ajouter des routes pour les sous-réseaux utilisateur

Vous devez ajouter une route à la passerelle par défaut de votre interface Private Service Connect pour chaque sous-réseau utilisateur qui se connecte à votre interface Private Service Connect. Cela garantit que le trafic destiné au réseau utilisateur sort de l'interface Private Service Connect.

Les étapes suivantes décrivent comment mettre à jour temporairement la table de routage d'une VM qui utilise le système d'exploitation Debian. Pour mettre à jour la table de manière permanente ou pour mettre à jour le routage sur un système d'exploitation différent, consultez la documentation publique du système d'exploitation.

  1. Connectez-vous à la VM de votre interface Private Service Connect.

  2. Exécutez la commande suivante pour chaque sous-réseau utilisateur qui se connecte à votre interface Private Service Connect:

    sudo ip route add CONSUMER_SUBNET_RANGE via GATEWAY_IP dev OS_INTERFACE_NAME
    

    Remplacez les éléments suivants :

Créer un modèle d'instance avec une interface Private Service Connect

Vous pouvez créer des modèles d'instance qui incluent des interfaces Private Service Connect.

Console

  1. Accédez à la page Modèles d'instance.

    Accéder à la page Modèles d'instances

  2. Cliquez sur Créer un modèle d'instance.

  3. Dans le champ Name (Nom), saisissez le nom du modèle d'instance.

  4. Cliquez sur Options avancées.

  5. Cliquez sur Mise en réseau.

  6. Dans la section Interfaces réseau, cliquez sur la flèche d'expansion .

  7. Sélectionnez un réseau et un sous-réseau pour l'interface réseau principale du modèle d'instance.

  8. Cliquez sur OK.

  9. Cliquez sur Ajouter une interface réseau.

  10. Cliquez sur Private Service Connect.

  11. Sélectionnez un réseau et un sous-réseau pour votre interface Private Service Connect.

  12. Cliquez sur OK.

  13. Cliquez sur Créer.

gcloud

Exécutez la commande instance-templates create.

gcloud compute instance-templates create NAME \
    --machine-type=MACHINE_TYPE \
    --network-interface=subnet=SUBNET \
    --region=REGION \
    --image-project=IMAGE_PROJECT \
    --image=IMAGE \
    --network-interface=network-attachment=projects/ATTACHMENT_PROJECT_ID/regions/ATTACHMENT_REGION/networkAttachments/ATTACHMENT_NAME

Remplacez les éléments suivants :

  • NAME : nom du modèle d'instance.
  • MACHINE_TYPE: type de machine prédéfini ou personnalisé pour les VM créées à l'aide de ce modèle d'instance ; par exemple f1-micro.
  • SUBNET: sous-réseau du modèle d'instance. Lorsque vous créez une VM à l'aide de ce modèle d'instance, une adresse IP interne de ce sous-réseau est attribuée à l'interface réseau principale de la VM.
  • REGION: région du sous-réseau du modèle d'instance.
  • IMAGE_PROJECT: projet de l'image. Par exemple, si vous spécifiez debian-10-buster-v20230809 comme image, spécifiez debian-cloud comme projet d'image. Vous pouvez afficher une liste des images, des projets d'images et des familles d'images disponibles à l'aide de la commande gcloud compute images list.
  • IMAGE : version spécifique d'une image publique ; par exemple, debian-10-buster-v20230809.
  • ATTACHMENT_PROJECT_ID: ID du projet du rattachement de réseau.
  • ATTACHMENT_REGION: région du rattachement de réseau.
  • ATTACHMENT_NAME: nom du rattachement de réseau. Lorsque vous créez une VM à l'aide de ce modèle d'instance, l'interface Private Service Connect demande une connexion à ce rattachement réseau.

    Vous pouvez spécifier une configuration supplémentaire, telle que le nom de l'image ou la taille du disque de démarrage. Pour en savoir plus, consultez la section Créer un modèle d'instance.

API

Envoyez une requête POST à la méthode instanceTemplates.insert.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates
{
  "name": "NAME",
  "properties": {
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
        }
      }
    ],
    "machineType": "MACHINE_TYPE",
    "networkInterfaces": [
      {
        "subnetwork": "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/SUBNET_REGION/subnetworks/SUBNET"
      },
      {
        "networkAttachment": "projects/ATTACHMENT_PROJECT_ID/regions/ATTACHMENT_REGION/networkAttachments/NETWORK_ATTACHMENT"
      }
    ]
  }
}

Remplacez les éléments suivants :

  • PROJECT_ID: ID du projet dans lequel créer le modèle d'instance.
  • NAME : nom du modèle d'instance.
  • IMAGE_PROJECT: projet de l'image. Par exemple, si vous spécifiez debian-10-buster-v20230809 comme image, spécifiez debian-cloud comme projet d'image. Vous pouvez afficher la liste des images et des projets d'images disponibles à l'aide de la commande gcloud compute images list.
  • IMAGE : version spécifique d'une image publique ; par exemple, debian-10-buster-v20230809.
  • MACHINE_TYPE: type de machine prédéfini ou personnalisé pour les VM créées à l'aide de ce modèle d'instance ; par exemple f1-micro.
  • SUBNET_REGION: région du sous-réseau du modèle d'instance.
  • SUBNET: sous-réseau du modèle d'instance. Lorsque vous créez une VM à l'aide de ce modèle d'instance, une adresse IP interne de ce sous-réseau est attribuée à l'interface réseau principale de la VM.
  • ATTACHMENT_PROJECT_ID: ID du projet du rattachement de réseau.
  • ATTACHMENT_REGION: région du rattachement de réseau.
  • NETWORK_ATTACHMENT: nom du rattachement de réseau. Lorsque vous créez une VM à l'aide de ce modèle d'instance, l'interface Private Service Connect demande une connexion à ce rattachement réseau.

Pour en savoir plus sur la création de modèles d'instances, consultez la section Création de modèles d'instances.

Utiliser une interface Private Service Connect avec VPC Service Controls

Vous pouvez utiliser des interfaces Private Service Connect avec VPC Service Controls. Cela permet à un réseau VPC producteur d'accéder aux API et services Google via un réseau VPC consommateur, tandis que l'organisation cliente peut appliquer les avantages de sécurité de VPC Service Controls.

Pour utiliser une interface Private Service Connect avec VPC Service Controls, vous devez mettre à jour la table de routage de la VM de l'interface Private Service Connect. Remplacez la route par défaut par une route qui envoie le trafic via l'interface Private Service Connect à la passerelle par défaut de l'interface Private Service Connect.

Les étapes suivantes mettent à jour temporairement la table de routage des VM qui utilisent Debian. Pour ajouter le parcours de manière permanente ou pour le mettre à jour pour un autre système d'exploitation, consultez la documentation publique du système d'exploitation.

Console

  1. Dans la console Google Cloud, accédez à la page Instances de VM :

    Accéder à la page "Instances de VM"

  2. Cliquez sur le nom de la VM sur laquelle se trouve votre interface Private Service Connect.

  3. Exécutez la commande ci-dessous.

    sudo ip route replace default via GATEWAY_IP dev OS_INTERFACE_NAME
    

    Remplacez les éléments suivants :

Décrire une interface Private Service Connect

Vous pouvez décrire une VM pour afficher les détails de son interface Private Service Connect. L'adresse IP, les plages d'adresses IP d'alias, le rattachement de réseau et le sous-réseau utilisateur de l'interface sont répertoriés dans la section "Interfaces réseau" de la description de la VM.

Console

  1. Dans la console Google Cloud, accédez à la page Instances de VM.

    Accéder à la page "Instances de VM"

  2. Cliquez sur la VM qui contient votre interface Private Service Connect.

  3. Dans la section Interfaces réseau, affichez les détails de votre interface Private Service Connect.

gcloud

gcloud compute instances describe VM_NAME
    --zone=ZONE

Remplacez les éléments suivants :

  • VM_NAME: nom de la VM de votre interface.
  • ZONE : zone des VM.

API

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME

Remplacez les éléments suivants :

  • PROJECT_ID: ID du projet de la VM.
  • ZONE : zone de la VM.
  • VM_NAME : Nom de la VM.

Supprimer une VM avec une interface Private Service Connect

Pour supprimer une interface Private Service Connect, vous devez supprimer l'instance de VM à laquelle elle est associée. Pour en savoir plus, consultez la section Supprimer une application.

Étape suivante