Connectivité réseau privée

Cette page explique comment configurer Integration Connectors pour qu'il se connecte de manière privée à vos applications backend. Elle suppose que vous connaissez les concepts suivants :

Integration Connectors est compatible avec la connectivité à vos backends hébergés sur un réseau privé. Pour activer la connectivité privée, vous devez utiliser Private Service Connect (PSC). PSC permet de se connecter en privé aux services de différents réseaux.

Dans le cas d'Integration Connectors, du point de vue de la mise en réseau, vous êtes le producteur de services, et Integration Connectors est le client du service. En tant que producteur de services, vous devez configurer un rattachement de service PSC que les connecteurs d'intégration peuvent utiliser pour consommer le service. Une fois le rattachement de service prêt, vous pouvez configurer la connexion pour consommer le rattachement de service à l'aide d'un rattachement de point de terminaison.

Rattachements de point de terminaison

Les pièces jointes de point de terminaison sont des ressources de connecteurs d'intégration qui permettent d'établir des connexions avec vos applications backend via les pièces jointes de service PSC.

L'image suivante montre un rattachement de point de terminaison qui permet à une connexion d'établir la connectivité avec une application backend via un rattachement de service PSC:

Vous pouvez créer le rattachement de point de terminaison en tant qu'adresse IP ou en tant que nom d'hôte.

Créer un rattachement de point de terminaison en tant qu'adresse IP

Pour créer une pièce jointe de point de terminaison en tant qu'adresse IP, vous pouvez utiliser la console Cloud ou la ligne de commande (gcloud).

Console

Pour créer un rattachement de point de terminaison à partir de la console Cloud, procédez comme suit:

  1. Ouvrez la page Rattachements de point de terminaison pour Integration Connectors.

    Accéder aux rattachements des points de terminaison

  2. Cliquez sur + Créer. La page Créer une pièce jointe de point de terminaison s'ouvre.
  3. Renseignez les champs suivants :
    • Nom: nom du rattachement de point de terminaison. Le nom doit être unique. Il peut y avoir aucun autre rattachement de point de terminaison portant le même nom, et vous ne pourrez plus le modifier par la suite. Le nom doit commencer par une lettre minuscule suivie de 63 lettres minuscules au maximum. chiffres ou traits d'union, mais il ne peut pas se terminer par un trait d'union. La longueur minimale est de 2.
    • ID de l'attachement de service : nom de l'attachement de service PSC que vous avez déjà créé.
    • (Facultatif) Description : saisissez une description du rattachement du point de terminaison.
    • (Facultatif) Étiquettes: saisissez les étiquettes de ressources sous forme de paires clé/valeur. Pour en savoir plus sur les libellés, consultez la section Que sont les libellés ?
    • (Facultatif) Activer l'accès mondial au point de terminaison : sélectionnez cette option si vous souhaitez envoyer du trafic vers votre backend à partir d'une connexion présente dans n'importe quelle région.

      Par défaut, le rattachement de point de terminaison nécessite que la connexion et le backend se trouvent dans la même région. Par conséquent, si vous activez l'accès mondial pour le point de terminaison, une connexion présente dans n'importe quelle région peut envoyer du trafic vers votre backend.

  4. Cliquez sur Créer.

La colonne Adresse IP spécifie l'adresse IP de l'attachement du point de terminaison. Vous devez utiliser cette adresse IP lors de la configuration d'un connecteur pour une connectivité privée.

gcloud

Pour créer un rattachement de point de terminaison à partir de la ligne de commande, procédez comme suit :

  1. Obtenez la ressource de rattachement de service PSC:
    gcloud compute service-attachments list

    La commande renvoie la liste des rattachements de service. Exemple :

      NAME       REGION   TARGET_SERVICE                                       CONNECTION_PREFERENCE
      demo-sa us-west1 k8s2-tcp-tgysilgj-apps-ingressgateway-fzdhwstg ACCEPT_AUTOMATIC

    Vous aurez besoin des informations de ce rattachement de service aux étapes suivantes.

  2. Obtenez un jeton d'authentification avant d'exécuter l'API CreateEndpointAttachment :
    TOKEN="$(gcloud auth print-access-token)"
  3. Créez le rattachement de point de terminaison à l'aide de l'API CreateEndpointAttachment. Exemple :
    curl -X POST -H "Authorization: Bearer $TOKEN" \
           -H "Content-Type: application/json" \
           -d '{
          "name": "projects/PROJECT_ID/locations/LOCATION/endpointAttachments/ENDPOINT_ATTACHMENT_NAME",
          "serviceAttachment": "projects/demo/serviceAttachments/?SERVICE_ATTACHMENT_NAME"
        }' \
           https://connectors.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/endpointAttachments?endpointAttachmentId=ENDPOINT_ATTACHMENT_NAME
      

    Où :

    • LOCATION correspond à la région du rattachement de service. Exemple :us-west1
    • PROJECT_ID correspond au projet Google Cloud dans lequel vous avez créé le rattachement de service PSC.
    • ENDPOINT_ATTACHMENT_NAME correspond au nom du rattachement de point de terminaison. Le nom doit être unique. Il ne peut pas y avoir d'autre point de terminaison pièces jointes portant le même nom (vous ne pourrez plus le modifier par la suite). Le nom doit commencer par une lettre minuscule suivie d'un maximum de 31 caractères (lettres minuscules, chiffres ou traits d'union), mais ne peut pas se terminer par un trait d'union. La longueur minimale est de 2.
    • SERVICE_ATTACHMENT_NAME est le nom du rattachement de service. Utiliser PSC nom de compte de service renvoyé par la exécutez la commande gcloud compute service-attachments list.

    Une fois que vous avez appelé l'API, Integration Connectors démarre une opération de longue durée, qui peut prendre un certain temps. Le point de terminaison pièce jointe sera créée une fois l'opération terminée.

  4. Obtenez l'ID de projet du répertoire de services associé à votre projet Google Cloud, puis ajoutez cet ID de projet à la liste d'autorisation dans votre pièce jointe de service.
  5. Vérifiez si le rattachement de point de terminaison est créé à l'aide de l'API GetEndpointAttachment. Exemple :
    curl -X GET -H "Authorization: Bearer $TOKEN" \
        https://connectors.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/endpointAttachments/ENDPOINT_ATTACHMENT_NAME
      

    L'API renvoie une réponse semblable à la suivante :

    {
        "name": "projects/demo-project/locations/us-central1/endpointAttachments/demo-ea",
        "createTime": "2023-04-17T04:34:59.569527046Z",
        "updateTime": "2023-04-17T04:37:25.189074195Z",
        "description": "demo endpoint attachment",
        "serviceAttachment": "projects/demo-project/regions/us-central1/serviceAttachments/demo-sa",
        "endpointIp": "10.0.0.0",
        "labels": {"team":"sre"},
      }

    L'adresse IP du rattachement de point de terminaison est disponible dans le champ endpointIp. Dans cet exemple de réponse, l'adresse IP est 10.0.0.0. Utilisez cette adresse IP lors de la configuration un connecteur pour une connectivité privée.

Si la création du rattachement de point de terminaison aboutit, le rattachement nouvellement créé est figurant sur la page Endpoint Attachments (Pièces jointes de points de terminaison), semblable à l'image suivante:

endpoint-attachment endpoint-attachment

Les étapes décrites jusqu'à présent montrent comment créer une pièce jointe de point de terminaison en tant qu'adresse IP. Toutefois, Vous pouvez également créer un rattachement de point de terminaison en tant que nom d'hôte et utiliser le nom d'hôte pour configurer un connecteur pour une connectivité privée. Pour savoir comment créer un rattachement de point de terminaison avec un nom d'hôte, consultez Créer un rattachement de point de terminaison en tant que nom d'hôte.

Créer un rattachement de point de terminaison en tant que nom d'hôte

Pour créer un rattachement de point de terminaison en tant que nom d'hôte, procédez comme suit:

  1. Créez un rattachement de point de terminaison en tant qu'adresse IP. Pour en savoir plus, consultez la section Créer une pièce jointe de point de terminaison en tant qu'adresse IP.
  2. Créez une zone gérée privée Cloud DNS dans l'un de vos projets Google Cloud.

    Dans cette zone DNS, vous doit ajouter le nom d'hôte que vous souhaitez utiliser pour la configuration du connecteur et mapper le nom d'hôte à l'adresse IP du rattachement de point de terminaison obtenue à l'étape 1. Pour savoir comment créer une zone gérée privée Cloud DNS, consultez les pages Créer une zone privée et Ajouter un enregistrement.

  3. Créez une zone gérée Integration Connectors dans le projet Google Cloud que vous utilisez pour ces connecteurs. La zone gérée des connecteurs d'intégration (zone d'appairage) communique avec la zone gérée privée Cloud DNS (créée à l'étape 2) pour la résolution de noms.

    Avant de créer la zone gérée, vous devez accorder les rôles et autorisations suivants :

    • Accordez l'autorisation connectors.managedZones.create à l'utilisateur qui crée la zone gérée des connecteurs d'intégration.

      L'autorisation connectors.managedZones.create est dans le rôle IAM roles/connectors.admin ou dans la roles/connectors.managedZonesAdmin. Pour en savoir plus sur les les différents rôles IAM et les autorisations correspondantes disponibles pour Integration Connectors. Rôles et autorisations IAM pour Integration Connectors

    • Attribuez le rôle role/dns.peer au compte de service service-PROJECT_NUMBER@gcp-sa-connectors.iam.gserviceaccount.com Integration Connectors.

      Si le projet Google Cloud Cloud DNS est différent des Integration Connectors projet Google Cloud, puis attribuez le rôle roles/dns.peer au Compte de service Integration Connectors dans le projet Google Cloud Cloud DNS. Par exemple : pensez à créer la zone gérée Integration Connectors dans le projet Google Cloud 12345 et l'API Cloud DNS se trouve dans le projet Google Cloud 67890. Dans ce cas, vous devez accorder le rôle roles/dns.peer à Compte de service service-12345@gcp-sa-connectors.iam.gserviceaccount.com dans le projet Google Cloud 67890.

    Pour créer une zone gérée Integration Connectors, vous pouvez utiliser la console Cloud ou la ligne de commande (gcloud).

    Console

    Pour créer une zone gérée par Integration Connectors à partir de la console Cloud, procédez comme suit :

    1. Accédez à la page "Zones gérées" pour les Integration Connectors.

      Accéder à "Zones gérées"

    2. Renseignez les champs suivants:
      1. Nom : nom de la zone gérée.
      2. Nom DNS cible: nom Cloud DNS complet pour lequel vous créez la zone gérée (d'appairage). Exemple :server8.stage.user.private
      3. Projet cible : nom du projet Google Cloud qui possède la zone privée Cloud DNS.
      4. Réseau cible: nom du réseau VPC dans lequel la zone Cloud DNS privée est gérée.
      5. (Facultatif) Description : saisissez une description du rattachement du point de terminaison.
      6. (Facultatif) Étiquettes: saisissez les étiquettes de ressources sous forme de paires clé/valeur. Pour plus d'informations consultez la section Que sont les libellés ?
    3. Cliquez sur Créer.

    gcloud

    Pour créer une zone gérée Integration Connectors à partir de la ligne de commande, procédez comme suit:

    1. Obtenez un jeton d'authentification avant d'exécuter l'API CreateManagedZone :
      TOKEN="$(gcloud auth print-access-token)"
    2. Créez la zone gérée à l'aide de l'API CreateManagedZone. Exemple :
      curl -X POST -H "Authorization: Bearer $TOKEN" \
        -H "Content-Type: application/json" \
        -d '{
          "description": "DESCRIPTION",
          "dns": "DNS_NAME",
          "target_project": "TARGET_PROJECT",
          "target_vpc": "TARGET_VPC"
        }' \
        https://connectors.googleapis.com/v1/projects/PROJECT_ID/locations/global/managedZones?managedZoneId=MANAGED_ZONE_NAME
        

      Où :

      • DESCRIPTION est une description facultative de la zone gérée.
      • DNS_NAME: nom Cloud DNS complet pour lequel vous créez la zone gérée (d'appairage). Exemple :server8.stage.user.private
      • TARGET_PROJECT est le nom du projet Google Cloud qui contient la zone Cloud DNS privée.
      • TARGET_NETWORK est le nom du réseau VPC dans lequel la zone Cloud DNS privée est gérée.
      • PROJECT_ID est le projet Google Cloud que vous utilisez pour Integration Connectors.
      • MANAGED_ZONE_NAME est le nom de la zone gérée. Le nom doit être unique. Il ne peut pas d'autres zones gérées portant le même nom, et que vous ne pourrez plus modifier par la suite. Le nom doit commencer par un lettre minuscule suivie de 1 à 63 caractères (lettres minuscules, chiffres ou traits d'union). Toutefois, elle ne peut pas se terminer par un trait d'union. La longueur minimale est de 2.

      Une fois que vous avez appelé l'API, Integration Connectors démarre une opération de longue durée qui peut prendre un certain temps. La zone gérée sera créée une fois l'opération terminée.

    3. Vérifiez si la zone gérée est créée à l'aide de l'API GetManagedZone. Exemple :
      curl -X GET -H "Authorization: Bearer $TOKEN" \
          https://connectors.googleapis.com/v1/projects/PROJECT_ID/locations/global/managedZones/MANAGED_ZONE_NAME
        

      L'API renvoie une réponse semblable à la suivante :

      {
          "name": "projects/demo-project/locations/global/managedZones/demo-mz",
          "createTime": "2023-04-17T04:34:59.569527046Z",
          "updateTime": "2023-04-17T04:37:25.189074195Z",
          "description": "demo managed zone",
          "dns": "api.private.service.com.",
          "targetVpc": "target-project-vpc",
          "targetProject": "target-project"
        }

Si la création de la zone gérée aboutit, la zone gérée nouvellement créée est disponible sur la page Zones gérées semblable à l'image suivante:

managed-zone managed-zone

Ajouter le projet Integration Connectors à la liste d'autorisation dans un attachement de service

Vous pouvez créer le rattachement de service PSC de sorte qu'il n'accepte que les requêtes provenant des projets Google Cloud spécifiés. Toutefois, pour ce faire, vous avez besoin de l'ID de projet du répertoire de services associé à votre projet Google Cloud. Pour obtenir l'ID de projet du répertoire de services, vous pouvez utiliser l'API List Connections, comme illustré dans l'exemple suivant.

Syntaxe

curl -X GET \
    -H "authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://connectors.googleapis.com/v1/projects/CONNECTORS_PROJECT_ID/locations/-/connections"

Remplacez les éléments suivants :

  • CONNECTORS_PROJECT_ID: ID du projet Google Cloud dans lequel vous avez créé votre connexion.

Exemple

Cet exemple obtient l'ID de projet du répertoire de services pour le projet Google Cloud connectors-test.

curl -X GET \
    -H "authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://connectors.googleapis.com/v1/projects/connectors-test/locations/-/connections"

L'exécution de cette commande sur le terminal affiche un résultat semblable à celui-ci:

.....
{
  "connections": [
    {
      "name": "projects/connectors-test/locations/asia-northeast1/connections/big-query-iam-invalid-sa",
      "createTime": "2022-10-07T09:02:31.905048520Z",
      "updateTime": "2022-10-07T09:22:39.993778690Z",
      "connectorVersion": "projects/connectors-test/locations/global/providers/gcp/connectors/bigquery/versions/1",
      "status": {
        "state": "ACTIVE"
      },
      "configVariables": [
        {
          "key": "project_id",
          "stringValue": "connectors-test"
        },
        {
          "key": "dataset_id",
          "stringValue": "testDataset"
        }
      ],
      "authConfig": {},
      "serviceAccount": "564332356444-compute@developer.gserviceaccount.com",
      "serviceDirectory": "projects/abcdefghijk-tp/locations/asia-northeast1/namespaces/connectors/services/runtime",
      "nodeConfig": {
        "minNodeCount": 2,
        "maxNodeCount": 50
      }
    },
....

Dans l'exemple de résultat, pour le projet Google Cloud connectors-test, l'ID du projet du répertoire de service est abcdefghijk-tp.

Vérifier la connexion du rattachement de point de terminaison

Pour vérifier la connexion du rattachement de point de terminaison, procédez comme suit:

  1. Sur la page Pièces jointes au point de terminaison, cliquez sur le nom de la pièce jointe au point de terminaison que vous avez créée.
  2. Sur la page Détails du rattachement de point de terminaison qui s'affiche, affichez le champ État de la connexion. Si l'état est Accepted, le rattachement du point de terminaison est configuré correctement et la connexion Private Service Connect est établie.

    Pour en savoir plus sur les autres états, consultez États de connexion.

Configurer une connexion pour utiliser le rattachement de point de terminaison

Dans Integration Connectors, lorsque vous créez une connexion ou mettez à jour une connexion existante, dans la section "Destinations", sélectionnez Rattachement de point de terminaison comme Type de destination, puis sélectionnez le rattachement de point de terminaison que vous avez créé dans la liste Rattachement de point de terminaison.

Si vous avez créé une zone gérée, sélectionnez Adresse hôte comme Type de destination et utilisez l'enregistrement A que vous avez créé lors de la création de la zone gérée.

Connectivité à différents types de réseaux privés

Même si la connectivité privée dans Integration Connectors passe toujours par une pièce jointe de service PSC, les étapes d'établissement de la connectivité privée varient légèrement en fonction de l'environnement. Les sections suivantes expliquent comment établir une connectivité privée dans les différents environnements :