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 de manière privée à des services sur différents réseaux.
Dans le cas des Integration Connectors, d'un point de vue réseau, vous êtes le producteur de services et les Integration Connectors sont les consommateurs de services. En tant que producteur de services, vous devez configurer un rattachement de service PSC que les Integration Connectors 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 rattachements de point de terminaison sont des ressources de Integration Connectors qui permettent d'établir des connexions avec vos applications backend via les rattachements de service PSC.
L'image suivante montre un rattachement de point de terminaison qui permet à une connexion d'établir une connectivité avec une application backend via un rattachement de service PSC:
Vous pouvez créer le rattachement de point de terminaison sous la forme d'une adresse IP ou d'un nom d'hôte.
- Créer un rattachement de point de terminaison en tant qu'adresse IP
- 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 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 une pièce jointe de point de terminaison à partir de la console Cloud, procédez comme suit:
- Ouvrez la page Pièces jointes de point de terminaison pour les Integration Connectors.
- Cliquez sur + Créer. La page Créer une pièce jointe de point de terminaison s'ouvre.
- Renseignez les champs suivants :
- Nom: nom du rattachement de point de terminaison. Le nom doit être unique. Vous ne pouvez pas spécifier d'autres rattachements de point de terminaison portant le même nom, et vous ne pourrez pas le modifier par la suite. Le nom doit commencer par une lettre minuscule suivie d'un maximum de 63 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.
- 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) Libellés: saisissez les libellés de la ressource 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.
- 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 lorsque vous configurez un connecteur pour la connectivité privée.
gcloud
Pour créer un rattachement de point de terminaison à partir de la ligne de commande, procédez comme suit:
- 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 de ces informations sur l'attachement de service lors des étapes suivantes.
- Obtenez un jeton d'authentification avant d'exécuter l'API CreateEndpointAttachment:
TOKEN="$(gcloud auth print-access-token)"
- 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. Vous ne pouvez pas spécifier d'autres rattachements de point de terminaison portant le même nom, et vous ne pourrez pas 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. Utilisez le nom du compte de service PSC renvoyé par la commande
gcloud compute service-attachments list
exécutée précédemment.
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. L'association au point de terminaison sera créée une fois l'opération terminée.
- LOCATION correspond à la région du rattachement de service. Exemple :
- 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 de votre rattachement de service.
- Vérifiez si le rattachement du 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 est10.0.0.0
. Utilisez cette adresse IP lorsque vous configurez un connecteur pour la connectivité privée.
Si la création du rattachement du point de terminaison aboutit, le rattachement nouvellement créé est listé sur la page Rattachements du point de terminaison, comme illustré ci-dessous:
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 ce nom d'hôte pour configurer un connecteur pour la 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 une pièce jointe de point de terminaison en tant qu'hôte, procédez comme suit:
- 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.
- Créez une zone privée gérée Cloud DNS dans l'un de vos projets Google Cloud.
Dans cette zone DNS, vous devez ajouter un nom d'hôte que vous souhaitez utiliser pour la configuration du connecteur et mapper le nom d'hôte à l'adresse IP de l'attachement du point de terminaison que vous avez 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.
- Créez une zone gérée Integration Connectors dans votre projet Google Cloud que vous utiliserez pour Integration Connectors. 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 Integration Connectors.L'autorisation
connectors.managedZones.create
est disponible dans le rôle IAMroles/connectors.admin
ouroles/connectors.managedZonesAdmin
. Pour en savoir plus sur les différents rôles IAM et les autorisations correspondantes disponibles pour les Integration Connectors d'intégration, consultez la page Rôles et autorisations IAM pour les connecteurs d'intégration. - Attribuez le rôle
role/dns.peer
au compte de serviceservice-PROJECT_NUMBER@gcp-sa-connectors.iam.gserviceaccount.com
Integration Connectors.Si le projet Google Cloud Cloud DNS est différent du projet Google Cloud Integration Connectors, attribuez le rôle
roles/dns.peer
au compte de service Integration Connectors dans le projet Google Cloud Cloud DNS. Par exemple, imaginons que vous souhaitiez créer la zone gérée des Integration Connectors dans le projet Google Cloud 12345 et que Cloud DNS se trouve dans le projet Google Cloud 67890. Dans ce cas, vous devez attribuer le rôleroles/dns.peer
au compte de serviceservice-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:
- Accédez à la page "Zones gérées" pour les Integration Connectors.
- Renseignez les champs suivants :
- Nom: nom de la zone gérée.
- Nom DNS cible: nom Cloud DNS complet pour lequel vous créez la zone gérée (d'appairage). Exemple :
server8.stage.user.private
- Projet cible: nom du projet Google Cloud qui possède la zone privée Cloud DNS.
- Réseau cible: nom du réseau VPC dans lequel la zone Cloud DNS privée est gérée.
- (Facultatif) Description: saisissez une description du rattachement du point de terminaison.
- (Facultatif) Libellés: saisissez les libellés de la ressource sous forme de paires clé-valeur. Pour en savoir plus sur les libellés, consultez la section Que sont les libellés ?
- Cliquez sur Créer.
gcloud
Pour créer une zone gérée par Integration Connectors à partir de la ligne de commande, procédez comme suit:
- Obtenez un jeton d'authentification avant d'exécuter l'API CreateManagedZone:
TOKEN="$(gcloud auth print-access-token)"
- 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 complet de Cloud DNS 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 votre 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. Vous ne pouvez pas spécifier d'autres zones gérées portant le même nom, et vous ne pourrez pas le modifier par la suite. Le nom doit commencer par une lettre minuscule suivie d'un maximum de 63 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.
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.
- 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" }
- Accordez l'autorisation
Si la création de la zone gérée aboutit, la zone gérée nouvellement créée est listée sur la page Zones gérées, comme illustré ci-dessous:
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 de votre 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 dans 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 sortie, pour le projet Google Cloud connectors-test
, l'ID de projet du répertoire de services est abcdefghijk-tp
.
Vérifier la connexion du rattachement de point de terminaison
Pour vérifier la connexion de l'attachement de point de terminaison, procédez comme suit:
- Sur la page Rattachements de point de terminaison, cliquez sur le nom du rattachement de point de terminaison que vous avez créé.
- Sur la page Détails du rattachement de point de terminaison qui s'affiche, consultez 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" (Destinations), sélectionnez Endpoint attachment (Rattachement du point de terminaison) comme Destination Type (Type de destination), puis sélectionnez le rattachement du point de terminaison que vous avez créé dans la liste Endpoint Attachment (Rattachement du 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 selon l'environnement. Les sections suivantes expliquent comment établir une connectivité privée dans les différents environnements:
- Le backend est hébergé sur site
- Le backend est hébergé dans le VPC Google
- Le backend est hébergé dans l'environnement sans serveur Google Cloud
- Le backend est disponible en tant que service Google Cloud géré