Configurer des règles de connexion de service

Cette page décrit comment un administrateur réseau peut configurer des règles de connexion de service pour automatiser la connectivité privée à un service géré.

Avant de commencer

Rôles requis

Pour obtenir les autorisations nécessaires pour configurer un réseau et créer une règle de connexion de service, demandez à votre administrateur de vous accorder le rôle IAM Administrateur de réseaux Compute (roles/compute.networkAdmin) sur votre projet.

Pour utiliser des règles de connexion de service avec un VPC partagé, des rôles doivent être attribués aux comptes de service de connectivité réseau sur les projets de service et hôte. Ces comptes de service sont configurés automatiquement lorsqu'une stratégie de connexion de service est créée, mais les rôles peuvent être supprimés manuellement. Si vous rencontrez des erreurs concernant des autorisations manquantes, un administrateur de compte de service devra peut-être accorder à nouveau les rôles. Pour en savoir plus, consultez la page Configurer des comptes de service pour un VPC partagé.

Créer une règle de connexion de service

Une règle de connexion de service vous permet d'autoriser la classe de service spécifiée à créer une connexion Private Service Connect entre les réseaux VPC producteur et client.

Vous pouvez créer au plus une règle pour chaque combinaison de classe de service, de région et de réseau VPC. Une règle détermine l'automatisation de la connectivité du service pour cette combinaison spécifique. Lorsque vous configurez une règle, vous sélectionnez un sous-réseau. Le sous-réseau permet d'allouer des adresses IP aux points de terminaison créés via la règle. Vous pouvez réutiliser le même sous-réseau dans plusieurs règles de connexion si les règles partagent la même région.

Par exemple, si vous souhaitez utiliser l'automatisation de la connectivité du service avec deux services dans trois régions différentes, créez six règles. Vous pouvez utiliser au moins trois sous-réseaux, un pour chaque région.

Après avoir créé une règle de connexion de service, vous ne pouvez mettre à jour que les sous-réseaux et la limite de connexion de la règle. Si vous devez mettre à jour d'autres champs, supprimez la stratégie et créez-en une autre.

Console

  1. Dans la console Google Cloud, accédez à la page Private Service Connect.

    Accéder à Private Service Connect

  2. Cliquez sur l'onglet Règles de connexion.

  3. Cliquez sur Créer une règle de connexion.

  4. Saisissez un nom pour la règle de connexion.

  5. Spécifiez la classe de service.

    • Pour les services Google, procédez comme suit :
      1. Dans la case Classe de service source, sélectionnez Services Google.
      2. Sélectionnez la classe de service dans le menu Classe de service.
    • Pour les services tiers, procédez comme suit :
      1. Dans la case Classe de service source, sélectionnez Services tiers.
      2. Dans le champ Classe de service, saisissez le nom de la classe de service.
  6. Dans la section Champ d'application des points de terminaison cibles, sélectionnez un réseau et une région auxquels cette règle s'applique.

  7. Dans la section Règle, sélectionnez un ou plusieurs sous-réseaux dans le menu Sous-réseaux. Les sous-réseaux permettent d'allouer des adresses IP aux points de terminaison.

  8. Facultatif : spécifiez une limite de connexion pour la règle. Cette limite détermine le nombre de points de terminaison pouvant être créés à l'aide de cette règle de connexion. Si elle est omise, il n'y a pas de limite.

  9. Cliquez sur Create policy (Créer une règle).

gcloud

Utilisez la commande service-connection-policies create.

gcloud network-connectivity service-connection-policies create POLICY_NAME \
    --network=NETWORK \
    --project=PROJECT_ID \
    --region=REGION \
    --service-class=SERVICE_CLASS \
    --subnets=https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNETS \
    --psc-connection-limit=LIMIT \
    --description=DESCRIPTION

Remplacez les éléments suivants :

  • POLICY_NAME : nom de votre stratégie de connexion de service.
  • NETWORK : réseau auquel appliquer cette règle.
  • PROJECT_ID : ID du projet ou numéro du projet du réseau VPC. Pour les réseaux VPC partagés, les règles de connexion de service doivent être déployées dans le projet hôte et ne sont pas compatibles avec les projets de service.
  • REGION : région à laquelle appliquer cette règle. La même règle doit exister pour chaque région dans laquelle vous souhaitez automatiser la connectivité du service.
  • SERVICE_CLASS : identifiant de ressource fourni par le producteur de la classe de service.
  • SUBNETS : un ou plusieurs sous-réseaux client standard utilisés pour allouer des adresses IP aux points de terminaison Private Service Connect. Ces adresses IP sont automatiquement allouées et renvoyées au pool de sous-réseaux à mesure que des instances de service géré sont créées et supprimées. Les sous-réseaux doivent se trouver dans la même région que la règle de connexion de service. Vous pouvez réutiliser le même sous-réseau dans plusieurs règles de connexion si les règles partagent la même région. Vous pouvez fournir plusieurs sous-réseaux dans une liste séparée par des virgules.
  • LIMIT : nombre maximal de points de terminaison pouvant être créés à l'aide de cette règle. S'il n'est pas spécifié, il n'y a aucune limite.
  • DESCRIPTION: description facultative de la règle de connexion de service.

Par exemple, la commande suivante crée une règle de connexion de service pour la classe de service gcp-database-service qui alloue des adresses IP provenant du sous-réseau managed-services. Vous pouvez créer jusqu'à 10 points de terminaison Private Service Connect avec cette règle. Les points de terminaison doivent être créés dans des projets appartenant à la même organisation que l'instance de service géré.

gcloud network-connectivity service-connection-policies create gcp-database-cxn-policy \
    --network=default \
    --project=my-project \
    --region=us-central1 \
    --service-class=gcp-database-service \
    --subnets=managed-service-subnet \
    --psc-connection-limit=10

Terraform

Vous pouvez utiliser la ressource Terraform pour créer une règle de connexion au service.

# Create a VPC network
resource "google_compute_network" "default" {
  name                    = "consumer-network"
  auto_create_subnetworks = false
}

# Create a subnetwork
resource "google_compute_subnetwork" "default" {
  name          = "consumer-subnet"
  ip_cidr_range = "10.0.0.0/16"
  region        = "us-central1"
  network       = google_compute_network.default.id
}

# Create a service connection policy
resource "google_network_connectivity_service_connection_policy" "default" {
  name          = "service-connection-policy"
  location      = "us-central1"
  service_class = "gcp-memorystore-redis"
  network       = google_compute_network.default.id
  psc_config {
    subnetworks = [google_compute_subnetwork.default.id]
    limit       = 2
  }
}

Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez la page Commandes Terraform de base.

API

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • PROJECT_ID : par l'ID du projet.
  • REGION : région de votre règle de connexion de service.
  • POLICY_NAME : nom de votre stratégie de connexion de service.
  • DESCRIPTION : description facultative de votre règle de connexion de service.
  • NETWORK : réseau de votre règle de connexion de service.
  • LIMIT : nombre maximal de points de terminaison pouvant être créés à l'aide de cette règle. S'il n'est pas spécifié, il n'y a aucune limite.
  • SUBNET : un ou plusieurs sous-réseaux client standard utilisés pour allouer des adresses IP aux points de terminaison Private Service Connect. Ces adresses IP sont automatiquement allouées et renvoyées au pool de sous-réseaux à mesure que des instances de service géré sont créées et supprimées. Les sous-réseaux doivent se trouver dans la même région que la règle de connexion de service. Vous pouvez réutiliser le même sous-réseau dans plusieurs règles de connexion si les règles partagent la même région. Vous pouvez saisir plusieurs URL de sous-réseau dans une liste d'éléments séparés par une virgule.
  • SERVICE_CLASS : identifiant de ressource fourni par le producteur de la classe de service.

Méthode HTTP et URL :

POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/serviceConnectionPolicies?serviceConnectionPolicyId=POLICY_NAME

Corps JSON de la requête :

{
  "description": "DESCRIPTION",
  "network": "projects/PROJECT_ID/global/networks/NETWORK",
  "pscConfig": {
    "limit": "LIMIT",
    "subnetworks": [
      "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET"
    ]
  },
  "serviceClass": "SERVICE_CLASS"
}

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

{
  "name": "projects/project-id/locations/us-central1/operations/operation-1692118768698-602f91a204523-8c6a2d93-d5c20a6a",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.networkconnectivity.v1.OperationMetadata",
    "createTime": "2023-08-15T16:59:29.236110917Z",
    "target": "projects/project-id/locations/us-central1/serviceConnectionPolicies/policy-name",
    "verb": "create",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

Répertorier les règles de connexion de service

Console

  1. Dans la console Google Cloud, accédez à la page Private Service Connect.

    Accéder à Private Service Connect

  2. Cliquez sur l'onglet Règles de connexion.

  3. Les règles de connexion s'affichent.

gcloud

Exécutez la commande service-connection-policies list.

gcloud network-connectivity service-connection-policies list \
    --region=REGION

Remplacez REGION par la région dans laquelle vous souhaitez répertorier les règles de connexion de service.

API

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • PROJECT_ID : par l'ID du projet.
  • REGION : la région dans laquelle répertorier les règles de connexion de service.

Méthode HTTP et URL :

GET https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/serviceConnectionPolicies

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

{
  "serviceConnectionPolicies": [
    {
      "name": "projects/project-id/locations/us-central1/serviceConnectionPolicies/policy-1",
      "createTime": "2023-08-15T15:33:54.712819865Z",
      "updateTime": "2023-08-15T15:33:54.945630882Z",
      "description": "descriptor",
      "network": "projects/project-id/global/networks/network-two",
      "serviceClass": "service-class",
      "infrastructure": "PSC",
      "pscConfig": {
        "subnetworks": [
          "projects/project-id/regions/us-west1/subnetworks/us-west1-subnet"
        ],
        "limit": "12"
      },
      "etag": "zCqDFBG1dS7B4gNdJKPR98YMUXpSrBIz0tZB_hwOIZI"
    },
    {
      "name": "projects/project-id/locations/us-central1/serviceConnectionPolicies/policy-2",
      "createTime": "2023-08-15T16:59:29.230257109Z",
      "updateTime": "2023-08-15T16:59:29.508994923Z",
      "description": "descriptor",
      "network": "projects/project-id/global/networks/custom-test",
      "serviceClass": "service-class",
      "infrastructure": "PSC",
      "pscConfig": {
        "subnetworks": [
          "projects/project-id/regions/us-central1/subnetworks/subnet-one"
        ],
        "limit": "25"
      },
      "etag": "nB603i61nRGMZpNjWoWMM6wRzsgM8QN9C9v5QFLyOa8"
    }
  ]
}

Décrire une règle de connexion de service

Console

  1. Dans la console Google Cloud, accédez à la page Private Service Connect.

    Accéder à Private Service Connect

  2. Cliquez sur l'onglet Règles de connexion.

  3. Cliquez sur la stratégie de connexion de service que vous souhaitez afficher.

gcloud

Exécutez la commande service-connection-policies describe.

gcloud network-connectivity service-connection-policies describe POLICY_NAME \
    --region=REGION

Remplacez les éléments suivants :

  • POLICY_NAME : nom de la règle de connexion de service que vous souhaitez décrire.
  • REGION : région de la règle de connexion de service que vous souhaitez décrire.

API

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • PROJECT_ID : par l'ID du projet.
  • REGION : région de votre règle de connexion de service.
  • POLICY_NAME : nom de la règle de connexion de service à décrire.

Méthode HTTP et URL :

GET https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/serviceConnectionPolicies/POLICY_NAME

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

{
  "name": "projects/project-id/locations/us-central1/serviceConnectionPolicies/policy-name",
  "createTime": "2023-08-15T16:59:29.230257109Z",
  "updateTime": "2023-08-15T16:59:29.508994923Z",
  "description": "description",
  "network": "projects/project-id/global/networks/custom-test",
  "serviceClass": "gcp-memorystore-redis",
  "infrastructure": "PSC",
  "pscConfig": {
    "subnetworks": [
      "projects/project-id/regions/us-central1/subnetworks/subnet-one"
    ],
    "limit": "25"
  },
  "etag": "nB603i61nRGMZpNjWoWMM6wRzsgM8QN9C9v5QFLyOa8"
}

Mettre à jour une stratégie de connexion de service

Vous pouvez mettre à jour les sous-réseaux et la limite de connexion d'une règle de connexion de service.

Si vous supprimez un sous-réseau de la règle de connexion de service, les critères suivants s'appliquent :

  • Les points de terminaison Private Service Connect existantes ne sont pas concernés.
  • Les nouveaux points de terminaison n'utilisent pas le sous-réseau supprimé.

Si vous mettez à jour la limite de connexion d'une règle de connexion de service, les critères suivants s'appliquent :

  • Les points de terminaison existants ne sont pas affectés.
  • Si la nouvelle limite de connexion est inférieure au nombre existant de points de terminaison associés à la règle, l'automatisation de la connectivité du service bloque la création de points de terminaison utilisant cette règle.
  • Si la nouvelle limite de connexion est supérieure au nombre existant de points de terminaison associés à la règle, les points de terminaison précédemment bloqués par la limite de connexion peuvent être créés.

Si vous mettez à jour une règle de connexion de service sans spécifier de limite de connexion, la règle mise à jour n'a pas de limite de connexion.

Console

  1. Dans la console Google Cloud, accédez à la page Private Service Connect.

    Accéder à Private Service Connect

  2. Cliquez sur l'onglet Règles de connexion.

  3. Cliquez sur la stratégie de connexion de service que vous souhaitez modifier.

  4. Cliquez sur Modifier.

  5. Pour mettre à jour les sous-réseaux de la stratégie, procédez comme suit :

    1. Cliquez sur Sous-réseaux, puis sélectionnez les sous-réseaux que vous souhaitez associer à cette règle.
    2. Cliquez sur OK.
  6. Pour mettre à jour la limite de connexion de la règle, saisissez une nouvelle valeur dans le champ Limite de connexion.

  7. Cliquez sur Mettre à jour la stratégie.

gcloud

Utilisez la commande service-connection-policies update.

gcloud network-connectivity service-connection-policies update POLICY_NAME \
    --region=REGION
    --project=PROJECT_ID
    --subnets=SUBNETS
    --psc-connection-limit=LIMIT
  • POLICY_NAME : nom de votre stratégie de connexion de service.
  • REGION : région de la règle de connexion de service. Vous ne pouvez pas mettre à jour la région d'une règle.
  • PROJECT_ID : ID ou numéro du projet de la règle.
  • SUBNETS : un ou plusieurs sous-réseaux client standard utilisés pour allouer des adresses IP aux points de terminaison Private Service Connect. Ces adresses IP sont automatiquement allouées et renvoyées au pool de sous-réseaux à mesure que des instances de service géré sont créées et supprimées. Les sous-réseaux doivent se trouver dans la même région que la règle de connexion de service. Vous pouvez réutiliser le même sous-réseau dans plusieurs règles de connexion si les règles partagent la même région. Vous pouvez fournir plusieurs sous-réseaux dans une liste séparée par des virgules.
  • LIMIT : nombre maximal de points de terminaison pouvant être créés à l'aide de cette règle. S'il n'est pas spécifié, il n'y a aucune limite.

API

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • PROJECT_ID : par l'ID du projet.
  • REGION : région de votre règle de connexion de service. Vous ne pouvez pas mettre à jour la région d'une règle.
  • POLICY_NAME : nom de votre stratégie de connexion de service.
  • LIMIT : nombre maximal de points de terminaison pouvant être créés à l'aide de cette règle. S'il n'est pas spécifié, il n'y a aucune limite.
  • SUBNET : un ou plusieurs sous-réseaux client standard utilisés pour allouer des adresses IP aux points de terminaison Private Service Connect. Ces adresses IP sont automatiquement allouées et renvoyées au pool de sous-réseaux à mesure que des instances de service géré sont créées et supprimées. Les sous-réseaux doivent se trouver dans la même région que la règle de connexion de service. Vous pouvez réutiliser le même sous-réseau dans plusieurs règles de connexion si les règles partagent la même région. Vous pouvez saisir plusieurs URL de sous-réseau dans une liste d'éléments séparés par une virgule.
  • NETWORK : réseau de votre règle de connexion de service.

Méthode HTTP et URL :

PATCH https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/serviceConnectionPolicies/POLICY_NAME

Corps JSON de la requête :

{
  "pscConfig": {
    "limit": "LIMIT",
    "subnetworks": [
      "projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET"
    ]
  },
  "network": "projects/PROJECT_ID/global/networks/NETWORK"
}

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

{
  "name": "projects/project-id/locations/us-central1/operations/operation-1692118768698-602f91a204523-8c6a2d93-d5c20a6a",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.networkconnectivity.v1.OperationMetadata",
    "createTime": "2023-08-15T16:59:29.236110917Z",
    "target": "projects/project-id/locations/us-central1/serviceConnectionPolicies/policy-name",
    "verb": "create",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

Supprimer une règle de connexion de service

Vous pouvez supprimer une règle de connexion de service si vous avez terminé d'utiliser le service ou si vous souhaitez arrêter d'automatiser la connectivité. La suppression de la règle est bloquée si les connexions Private Service Connect actives sont associées à la règle. Avant de supprimer une règle de connexion de service, supprimez toutes les connexions actives en mettant hors service toutes les instances de service associées.

Console

  1. Dans la console Google Cloud, accédez à la page Private Service Connect.

    Accéder à Private Service Connect

  2. Cliquez sur l'onglet Règles de connexion.

  3. Sélectionnez les règles de connexion de service que vous souhaitez supprimer, puis cliquez sur Supprimer.

gcloud

Utilisez la commande service-connection-policies delete.

gcloud network-connectivity service-connection-policies delete POLICY_NAME \
    --region=REGION

Remplacez les éléments suivants :

  • POLICY_NAME : nom de la règle de connexion de service que vous souhaitez supprimer.
  • REGION : région de la règle de connexion de service que vous souhaitez supprimer.

API

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • PROJECT_ID : par l'ID du projet.
  • REGION : région de votre règle de connexion de service.
  • POLICY_NAME : nom de la règle de connexion de service à supprimer.

Méthode HTTP et URL :

DELETE https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/serviceConnectionPolicies/POLICY_NAME

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

{
  "name": "projects/project-id/locations/us-central1/operations/operation-1692128792549-602fb6f98194a-e0275435-36edc095",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.networkconnectivity.v1.OperationMetadata",
    "createTime": "2023-08-15T19:46:32.605032867Z",
    "target": "projects/project-id/locations/us-central1/serviceConnectionPolicies/policy-name",
    "verb": "delete",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

Configurer des comptes de service pour le VPC partagé

Les comptes de service sont configurés automatiquement lorsque vous utilisez des règles de connexion de service avec un VPC partagé, mais les rôles peuvent être supprimés manuellement. Si vous rencontrez des erreurs concernant des autorisations manquantes, essayez d'attribuer à nouveau les rôles.

Pour attribuer les rôles requis, un administrateur de compte de service peut effectuer les opérations suivantes.

Attribuer des rôles au compte de service dans le projet de service

gcloud

  1. Attribuez le rôle d'agent de service de connectivité réseau (roles/networkconnectivity.serviceAgent) au compte de service de connectivité réseau du projet de service. Attribuez le rôle sur le projet de service.

    gcloud projects add-iam-policy-binding SERVICE_PROJECT_NUMBER \
        --member=serviceAccount:service-SERVICE_PROJECT_NUMBER@gcp-sa-networkconnectivity.iam.gserviceaccount.com \
        --role=roles/networkconnectivity.serviceAgent
    

    Remplacez SERVICE_PROJECT_NUMBER par le numéro du projet de service.

  2. Attribuez le rôle d'utilisateur de réseau Compute (roles/compute.networkUser) au compte de service de connectivité réseau du projet de service. Effectuez l'une des opérations suivantes.

    • Accordez le rôle sur le projet hôte.

      gcloud projects add-iam-policy-binding HOST_PROJECT_NUMBER \
          --member=serviceAccount:service-SERVICE_PROJECT_NUMBER@gcp-sa-networkconnectivity.iam.gserviceaccount.com \
          --role=roles/compute.networkUser
      

      Remplacez HOST_PROJECT_NUMBER par le numéro du projet hôte.

    • Accordez le rôle sur chacun des sous-réseaux du projet hôte associés à la règle de connexion de service. Exécutez la commande suivante pour chaque sous-réseau.

      gcloud compute networks subnets add-iam-policy-binding SUBNET \
          --member=serviceAccount:service-SERVICE_PROJECT_NUMBER@gcp-sa-networkconnectivity.iam.gserviceaccount.com \
          --role=roles/compute.networkUser \
          --region=REGION \
          --project=HOST_PROJECT_NUMBER
      

      Remplacez les éléments suivants :

      • SUBNET : nom du sous-réseau associé à votre règle de connexion de service.
      • REGION : région du sous-réseau.

Attribuer un rôle au compte de service dans le projet hôte

gcloud

  1. Attribuez le rôle d'agent de service de connectivité réseau (roles/networkconnectivity.serviceAgent) au compte de service de connectivité réseau du projet hôte. Accordez le rôle sur le projet hôte.

    gcloud projects add-iam-policy-binding HOST_PROJECT_NUMBER \
        --member=serviceAccount:service-HOST_PROJECT_NUMBER@gcp-sa-networkconnectivity.iam.gserviceaccount.com \
        --role=roles/networkconnectivity.serviceAgent
    

    Remplacez HOST_PROJECT_NUMBER par le numéro du projet hôte.

Étapes suivantes