Configurer à la fois l'accès aux services privés et Private Service Connect

Cette page explique comment configurer à la fois l'accès aux services privés et Private Service Connect.

En configurant l'accès aux services privés, vous pouvez allouer une plage d'adresses IP et créer une connexion de service privée pour le réseau cloud privé virtuel (VPC) de votre projet Google Cloud. Cela permet aux ressources du réseau VPC de se connecter à vos instances Cloud SQL.

En configurant Private Service Connect, vous pouvez vous connecter à une instance Cloud SQL principale ou à l'une de ses instances répliquées avec accès en lecture à partir de plusieurs réseaux VPC appartenant à différents groupes, équipes, projets ou organisations.

Créer une instance compatible avec l'accès aux services privés et Private Service Connect

En créant une instance Cloud SQL compatible à la fois avec l'accès aux services privés et Private Service Connect, vous bénéficiez des avantages des deux services. Pour en savoir plus, consultez la section Options de connexion pour les instances.

Private Service Connect vous permet de vous connecter à une instance Cloud SQL à partir de plusieurs réseaux VPC appartenant à différents groupes, équipes, projets ou organisations.

Vous pouvez créer une instance Cloud SQL compatible avec l'accès aux services privés et Private Service Connect à l'aide de la gcloud CLI ou de l'API.

gcloud

Pour créer une instance compatible à la fois avec l'accès aux services privés et Private Service Connect, utilisez la commande gcloud beta sql instances create:

gcloud beta sql instances create INSTANCE_NAME \
--project=PROJECT_ID \
--region=REGION_NAME \
--enable-private-service-connect \
--allowed-psc-projects=ALLOWED_PROJECTS \
--availability-type=AVAILABILITY_TYPE \
--no-assign-ip \
--allocated-ip-range-name=RANGE_NAME \
--enable-google-private-path \
--tier=MACHINE_TYPE \
--database-version=DATABASE_VERSION \
--network=VPC_NETWORK_NAME \
--enable-bin-log \
--psc-auto-connections=network=VPC_NETWORK_PATH,project=SERVICE_PROJECT

Effectuez les remplacements suivants :

  • INSTANCE_NAME : nom de l'instance.
  • PROJECT_ID : ID ou numéro de projet du projet Google Cloud contenant l'instance.
  • REGION_NAME : nom de la région pour l'instance.
  • ALLOWED_PROJECTS : liste d'ID ou de numéros de projet autorisés, séparés par une virgule. Si un projet ne figure pas dans cette liste, vous ne pouvez pas créer de points de terminaison Private Service Connect dans le projet pour vous connecter à l'instance.

  • AVAILABILITY_TYPE : permet d'activer la haute disponibilité pour l'instance. Pour ce paramètre, spécifiez l'une des valeurs suivantes :
    • REGIONAL : permet d'activer la haute disponibilité (recommandé pour les instances de production). L'instance bascule vers une autre zone dans la région sélectionnée.
    • ZONAL : n'offre aucune fonctionnalité de basculement. Il s'agit de la valeur par défaut.

    Pour en savoir plus sur la définition et la suppression de la haute disponibilité pour les instances, consultez les sections Configurer la haute disponibilité d'une instance existante et Désactiver la haute disponibilité pour une instance.

  • RANGE_NAME: pour ce paramètre facultatif, définissez un nom de plage pour lequel une plage d'adresses IP est allouée. Le nom de la plage doit respecter la norme RFC 1035 et contenir entre 1 et 63 caractères.
  • MACHINE_TYPE : type de machine de l'instance.
  • DATABASE_VERSION : version de la base de données pour l'instance (par exemple, MYSQL_8_0).
  • VPC_NETWORK_NAME: nom et chemin d'accès du réseau VPC auquel l'instance se connecte (par exemple, "projects/PROJECT_ID/global/networks/default").
  • VPC_NETWORK_PATH: chemin d'accès au réseau VPC à partir duquel le point de terminaison Private Service Connect doit être créé. Par exemple:
    projects/my-host-project/global/networks/default.
  • SERVICE_PROJECT: projet dans lequel le point de terminaison Private Service Connect est créé. Si le réseau VPC n'est pas un VPC partagé, il ne peut s'agir que du projet hôte du réseau. S'il s'agit d'un VPC partagé, il peut s'agir du projet hôte ou du projet de service.

    Tous les projets que vous spécifiez dans les paramètres de connexion automatique sont automatiquement ajoutés à vos projets autorisés.

Pour savoir comment vous connecter à une instance pour laquelle Private Service Connect est activé, consultez Se connecter à une instance Cloud SQL.

Pour désactiver l'adresse IP publique, utilisez le paramètre --no-assign-ip.

Vous pouvez également utiliser le paramètre --enable-google-private-path pour autoriser d'autres services Google Cloud, tels que BigQuery, à accéder aux données dans Cloud SQL et à effectuer des requêtes sur ces données via une connexion IP privée. Ce paramètre n'est valide que dans les cas suivants :

  • Vous utilisez le paramètre --no-assign-ip.
  • Vous utilisez le paramètre --network pour spécifier le nom du réseau VPC que vous souhaitez utiliser pour créer une connexion privée.

REST

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

  • PROJECT_ID : ID ou numéro de projet du projet Google Cloud contenant l'instance.
  • INSTANCE_NAME : nom de l'instance.
  • REGION_NAME : nom de la région pour l'instance.
  • AVAILABILITY_TYPE : active la haute disponibilité pour l'instance. Pour ce paramètre, spécifiez l'une des valeurs suivantes :
    • REGIONAL : permet d'activer la haute disponibilité (recommandé pour les instances de production). L'instance bascule vers une autre zone dans la région sélectionnée.
    • ZONAL : n'offre aucune fonctionnalité de basculement. Il s'agit de la valeur par défaut.

    Pour en savoir plus sur la définition et la suppression de la haute disponibilité pour les instances, consultez les sections Configurer la haute disponibilité d'une instance existante et Désactiver la haute disponibilité pour une instance.

  • VPC_NETWORK_NAME: nom et chemin d'accès du réseau VPC auquel l'instance se connecte (par exemple, "projects/PROJECT_ID/global/networks/default").
  • RANGE_NAME: pour ce paramètre facultatif, définissez un nom de plage pour lequel une plage d'adresses IP est allouée. Le nom de la plage doit respecter la norme RFC 1035 et comporter entre 1 et 63 caractères.
  • ALLOWED_PROJECTS : liste d'ID ou de numéros de projet autorisés, séparés par une virgule. Si un projet ne figure pas dans cette liste, vous ne pouvez pas créer de points de terminaison Private Service Connect dans le projet pour vous connecter à l'instance.

  • VPC_NETWORK_PATH: chemin d'accès au réseau VPC à partir duquel le point de terminaison Private Service Connect doit être créé. Par exemple:
    projects/my-host-project/global/networks/default.
  • SERVICE_PROJECT: projet dans lequel le point de terminaison Private Service Connect est créé. Si le réseau VPC n'est pas un VPC partagé, il ne peut s'agir que du projet hôte du réseau. S'il s'agit d'un VPC partagé, il peut s'agir du projet hôte ou du projet de service.

    Tous les projets que vous spécifiez dans les paramètres de connexion automatique sont automatiquement ajoutés à vos projets autorisés.

  • MACHINE_TYPE : type de machine de l'instance.

Pour savoir comment vous connecter à une instance pour laquelle Private Service Connect est activé, consultez Se connecter à une instance Cloud SQL.

Vous avez défini le paramètre ipv4Enabled sur false, car votre instance dispose d'une adresse IP interne.

Si vous définissez le paramètre enablePrivatePathForGoogleCloudServices facultatif sur true, vous autorisez d'autres services Google Cloud, tels que BigQuery, à accéder aux données dans Cloud SQL et à interroger ces données via une connexion IP interne. Si vous définissez ce paramètre sur false, les autres services Google Cloud ne peuvent pas accéder aux données dans Cloud SQL via une connexion IP interne.

Méthode HTTP et URL :

POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances

Corps JSON de la requête :

{
  "name": "INSTANCE_NAME",
  "project": PROJECT_ID",
  "region": "REGION_NAME",
  "databaseVersion": "MYSQL_8_0",
  "kind": "sql#instance",
  "settings": {
    "availabilityType": "AVAILABILITY_TYPE",
    "backupConfiguration": {
      "binaryLogEnabled": true,
      "enabled": true,
      "kind": "sql#backupConfiguration",
      "startTime": "00:00"
    },
    "ipConfiguration": {
      "ipv4Enabled": false,
      "privateNetwork": VPC_NETWORK_NAME,
      "allocatedIpRange": "RANGE_NAME",
      "enablePrivatePathForGoogleCloudServices": true,
      "pscConfig": {
        "allowedConsumerProjects": [
          "ALLOWED_PROJECTS"
        ],
        "pscAutoConnections": [
          {
            "consumerProject":"SERVICE_PROJECT",
            "consumerNetwork":"projects/SERVICE_PROJECT/global/networks/VPC_NETWORK_PATH"
          }
        ],
        "pscEnabled": true
      }
    },
    "kind": "sql#settings",
    "pricingPlan": "PER_USE",
    "replicationType": "SYNCHRONOUS",
    "tier": "MACHINE_TYPE"
  }
}

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

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

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME",
  "status": "RUNNING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "startTime": "2023-06-14T18:48:35.499Z",
  "operationType": "CREATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_NAME",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

Désactiver Private Service Connect pour une instance

Vous pouvez désactiver Private Service Connect pour une instance pour laquelle l'accès aux services privés et Private Service Connect sont activés. Pour des raisons de sécurité, vous ne souhaitez peut-être pas vous connecter à l'instance à partir de plusieurs réseaux VPC appartenant à différents groupes, équipes, projets ou organisations.

Vous pouvez désactiver Private Service Connect pour une instance à l'aide de gcloud CLI ou de l'API.

gcloud

Pour désactiver Private Service Connect pour une instance, utilisez la commande gcloud beta sql instances patch:

gcloud beta sql instances patch INSTANCE_NAME \
--project=PROJECT_ID \
--no-enable-private-service-connect \
--clear-allowed-psc-projects

Effectuez les remplacements suivants :

  • INSTANCE_NAME : nom de l'instance
  • PROJECT_ID : ID ou numéro de projet du projet Google Cloud contenant l'instance.

REST

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

  • PROJECT_ID : ID ou numéro de projet du projet Google Cloud contenant l'instance.
  • INSTANCE_NAME : nom de l'instance

Méthode HTTP et URL :

PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME

Corps JSON de la requête :

{
  "kind": "sql#instance",
  "name": "INSTANCE_NAME",
  "project": "PROJECT_ID",
  "settings": {
    "ipConfiguration": {
      "pscConfig": {
        "pscEnabled": "false",
        "allowedConsumerProjects": [{}]
      }
    },
    "kind": "sql#settings"
  }
}

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

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

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME",
  "status": "RUNNING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "startTime": "2023-06-14T18:48:35.499Z",
  "operationType": "UPDATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_NAME",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

Activer Private Service Connect pour une instance

Vous pouvez activer Private Service Connect pour une instance pour laquelle l'accès aux services privés est déjà activé. Vous pouvez utiliser Private Service Connect pour vous connecter à une instance Cloud SQL à partir de plusieurs réseaux VPC.

Vous pouvez activer Private Service Connect pour une instance à l'aide de gcloud CLI ou de l'API.

gcloud

Pour activer Private Service Connect pour une instance, utilisez la commande gcloud beta sql instances patch:

gcloud beta sql instances patch INSTANCE_NAME \
--project=PROJECT_ID \
--enable-private-service-connect \
--allowed-psc-projects=ALLOWED_PROJECTS \
--psc-auto-connections=network=VPC_NETWORK_PATH,project=SERVICE_PROJECT

Effectuez les remplacements suivants :

  • INSTANCE_NAME : nom de l'instance
  • PROJECT_ID : ID ou numéro de projet du projet Google Cloud contenant l'instance.
  • ALLOWED_PROJECTS : liste d'ID ou de numéros de projet autorisés, séparés par une virgule. Si un projet ne figure pas dans cette liste, vous ne pouvez pas créer de points de terminaison Private Service Connect dans le projet pour vous connecter à l'instance.

  • VPC_NETWORK_PATH: chemin d'accès au réseau VPC à partir duquel le point de terminaison Private Service Connect est créé. Par exemple:
    projects/my-host-project/global/networks/default.
  • SERVICE_PROJECT: projet dans lequel le point de terminaison Private Service Connect est créé. Si le réseau VPC n'est pas un VPC partagé, il ne peut s'agir que du projet hôte du réseau. S'il s'agit d'un VPC partagé, il peut s'agir du projet hôte ou du projet de service.

    Tous les projets que vous spécifiez dans les paramètres de connexion automatique sont automatiquement ajoutés à vos projets autorisés.

Pour savoir comment vous connecter à une instance pour laquelle Private Service Connect est activé, consultez Se connecter à une instance Cloud SQL.

REST

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

  • PROJECT_ID : ID ou numéro de projet du projet Google Cloud contenant l'instance.
  • INSTANCE_NAME : nom de l'instance.
  • ALLOWED_PROJECTS : liste d'ID ou de numéros de projet autorisés, séparés par une virgule. Ces projets remplacent les projets déjà configurés pour utiliser Private Service Connect. Si un projet ne figure pas dans cette liste, vous ne pouvez pas créer de points de terminaison Private Service Connect dans le projet pour vous connecter à l'instance.
  • VPC_NETWORK_PATH: chemin d'accès au réseau VPC à partir duquel le point de terminaison Private Service Connect est créé. Par exemple:
    projects/my-host-project/global/networks/default.
  • SERVICE_PROJECT: projet dans lequel le point de terminaison Private Service Connect est créé. Si le réseau VPC n'est pas un VPC partagé, il ne peut s'agir que du projet hôte du réseau. S'il s'agit d'un VPC partagé, il peut s'agir du projet hôte ou du projet de service.

    Tous les projets que vous spécifiez dans les paramètres de connexion automatique sont automatiquement ajoutés à vos projets autorisés.

Méthode HTTP et URL :

PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME

Corps JSON de la requête :

{
  "kind": "sql#instance",
  "name": "INSTANCE_NAME",
  "project": "PROJECT_ID",
  "settings": {
    "ipConfiguration": {
      "pscConfig": {
        "pscAutoConnections": [
          {
            "consumerProject":"SERVICE_PROJECT",
            "consumerNetwork":"projects/SERVICE_PROJECT/global/networks/VPC_NETWORK_PATH"
          }
        ],
        "pscEnabled": "true",
        "allowedConsumerProjects": [ALLOWED_PROJECTS]
      }
    },
    "kind": "sql#settings"
  }
}

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

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

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME",
  "status": "RUNNING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "startTime": "2023-06-14T18:48:35.499Z",
  "operationType": "UPDATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_NAME",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

Pour savoir comment vous connecter à une instance pour laquelle Private Service Connect est activé, consultez Se connecter à une instance Cloud SQL.