Configurer une adresse IP privée

Cette page explique comment configurer une instance Cloud SQL afin qu'elle utilise une adresse IP privée.

Pour en savoir plus sur le fonctionnement de la connectivité IP privée ainsi que sur les exigences en termes d'environnement et de gestion, consultez la section Adresse IP privée.

Avant de commencer

Exigences relatives à l'API et à IAM

  • Vous devez activer l'API Service Networking dans votre projet Google Cloud.
  • Si vous utilisez un réseau VPC partagé, vous devez également activer cette API pour le projet hôte.

  • Pour gérer une connexion d'accès aux services privés, l'utilisateur doit disposer des autorisations Identity and Access Management (IAM) suivantes. Si vous ne disposez pas des autorisations nécessaires, vous pouvez obtenir des erreurs d'autorisations insuffisantes.
    • compute.networks.list
    • compute.addresses.create
    • compute.addresses.list
    • servicenetworking.services.addPeering

    Si vous utilisez un réseau VPC partagé, vous devez également ajouter votre utilisateur au projet hôte et lui attribuer les mêmes autorisations sur le projet hôte.

Accès aux services privés

Lorsque vous créez un réseau cloud privé virtuel (VPC) dans votre projet, vous devez configurer l'accès aux services privés pour allouer une plage d'adresses IP et créer une connexion de service privée. Cela permet aux ressources du réseau VPC de se connecter aux instances Cloud SQL. La console Google Cloud fournit un assistant pour vous aider à mettre en place cette configuration.

Configurer une instance pour qu'elle utilise une adresse IP privée

Vous pouvez configurer une instance Cloud SQL pour qu'elle utilise une adresse IP privée lors de sa création, ou ultérieurement pour une instance existante.

Configurer une adresse IP privée pour une nouvelle instance

Pour configurer une instance Cloud SQL au moment de sa création afin qu'elle utilise une adresse IP privée, procédez comme suit :

Console

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

    Accéder à la page Instances Cloud SQL

  2. Cliquez sur Create instance (Créer une instance).
  3. Développez la section Show configuration options (Afficher les options de configuration).
  4. Développez Connexions.
  5. Sélectionnez Adresse IP privée.

    Une liste déroulante affiche les réseaux VPC disponibles dans votre projet. Si votre projet est le projet de service d'un VPC partagé, les réseaux VPC du projet hôte y apparaissent également.

  6. Sélectionnez le réseau VPC que vous souhaitez utiliser :
  7. Si un message vous indique que vous devez configurer une connexion de service privée, procédez comme suit :

    1. Cliquez sur Configurer la connexion.
    2. Dans la section Allouer une plage d'adresses IP, sélectionnez l'une des options suivantes :
      • Sélectionnez une ou plusieurs plages d'adresses IP existantes, ou créez-en une depuis la liste déroulante. Le cas échéant, la liste déroulante inclut les plages déjà allouées. Vous pouvez aussi sélectionner Allouer une nouvelle plage d'adresses IP et saisir une nouvelle plage et un nouveau nom.
      • Utilisez une plage d'adresses IP allouée automatiquement dans votre réseau.
    3. Cliquez sur Continuer.
    4. Cliquez sur Create connection (Créer une connexion).
    5. Vérifiez que le message suivant s'affiche : Private service connection for network VPC_NETWORK_NAME has been successfully created.
  8. Vous pouvez éventuellement spécifier une plage d'adresses IP allouée pour vos instances à utiliser pour les connexions.
    1. Développez l'option Afficher la plage d'adresses IP allouée.
    2. Sélectionnez une plage d'adresses IP dans le menu déroulant.
  9. Facultatif. Si vous souhaitez 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, sélectionnez Activer le chemin d'accès privé.
  10. Terminez la configuration de votre instance.
  11. Cliquez sur Create instance (Créer une instance).

gcloud

Avant de créer une instance à l'aide d'une adresse IP privée, assurez-vous que votre projet est configuré pour l'accès privé aux services.

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

  • INSTANCE_ID : ID de l'instance.
  • PROJECT_ID : ID du projet.
  • NETWORK_PROJECT_ID : ID de projet du réseau VPC.

  • VPC_NETWORK_NAME : nom du réseau VPC.
  • RANGE_NAME : facultatif. Si spécifié, définit 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.
  • REGION_NAME : nom de la région.
Pour spécifier le nom de votre réseau VPC, utilisez le paramètre --network. Pour désactiver l'adresse IP publique, utilisez l'option --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.

gcloud beta sql instances create INSTANCE_ID \
--project=PROJECT_ID \
--network=projects/NETWORK_PROJECT_ID/global/networks/VPC_NETWORK_NAME \
--no-assign-ip \
--allocated-ip-range-name=RANGE_NAME \
--enable-google-private-path

Terraform

Pour configurer une adresse IP privée pour une nouvelle instance, utilisez les ressources Terraform suivantes :


resource "google_compute_network" "peering_network" {
  name                    = "private-network"
  auto_create_subnetworks = "false"
}

resource "google_compute_global_address" "private_ip_address" {
  name          = "private-ip-address"
  purpose       = "VPC_PEERING"
  address_type  = "INTERNAL"
  prefix_length = 16
  network       = google_compute_network.peering_network.id
}

resource "google_service_networking_connection" "default" {
  network                 = google_compute_network.peering_network.id
  service                 = "servicenetworking.googleapis.com"
  reserved_peering_ranges = [google_compute_global_address.private_ip_address.name]
}

resource "google_sql_database_instance" "instance" {
  name             = "private-ip-sql-instance"
  region           = "us-central1"
  database_version = "MYSQL_8_0"

  depends_on = [google_service_networking_connection.default]

  settings {
    tier = "db-f1-micro"
    ip_configuration {
      ipv4_enabled    = "false"
      private_network = google_compute_network.peering_network.id
    }
  }
  # set `deletion_protection` to true, will ensure that one cannot accidentally delete this instance by
  # use of Terraform whereas `deletion_protection_enabled` flag protects this instance at the GCP level.
  deletion_protection = false
}

resource "google_compute_network_peering_routes_config" "peering_routes" {
  peering              = google_service_networking_connection.default.peering
  network              = google_compute_network.peering_network.name
  import_custom_routes = true
  export_custom_routes = true
}


## Uncomment this block after adding a valid DNS suffix

# resource "google_service_networking_peered_dns_domain" "default" {
#   name       = "example-com"
#   network    = google_compute_network.peering_network.name
#   dns_suffix = "example.com."
#   service    = "servicenetworking.googleapis.com"
# }

Appliquer les modifications

Pour appliquer votre configuration Terraform dans un projet Google Cloud, suivez les procédures des sections suivantes.

Préparer Cloud Shell

  1. Lancez Cloud Shell.
  2. Définissez le projet Google Cloud par défaut dans lequel vous souhaitez appliquer vos configurations Terraform.

    Vous n'avez besoin d'exécuter cette commande qu'une seule fois par projet et vous pouvez l'exécuter dans n'importe quel répertoire.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    Les variables d'environnement sont remplacées si vous définissez des valeurs explicites dans le fichier de configuration Terraform.

Préparer le répertoire

Chaque fichier de configuration Terraform doit avoir son propre répertoire (également appelé module racine).

  1. Dans Cloud Shell, créez un répertoire et un nouveau fichier dans ce répertoire. Le nom du fichier doit comporter l'extension .tf, par exemple main.tf. Dans ce tutoriel, le fichier est appelé main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Si vous suivez un tutoriel, vous pouvez copier l'exemple de code dans chaque section ou étape.

    Copiez l'exemple de code dans le fichier main.tf que vous venez de créer.

    Vous pouvez également copier le code depuis GitHub. Cela est recommandé lorsque l'extrait Terraform fait partie d'une solution de bout en bout.

  3. Examinez et modifiez les exemples de paramètres à appliquer à votre environnement.
  4. Enregistrez les modifications.
  5. Initialisez Terraform. Cette opération n'est à effectuer qu'une seule fois par répertoire.
    terraform init

    Vous pouvez également utiliser la dernière version du fournisseur Google en incluant l'option -upgrade :

    terraform init -upgrade

Appliquer les modifications

  1. Examinez la configuration et vérifiez que les ressources que Terraform va créer ou mettre à jour correspondent à vos attentes :
    terraform plan

    Corrigez les modifications de la configuration si nécessaire.

  2. Appliquez la configuration Terraform en exécutant la commande suivante et en saisissant yes lorsque vous y êtes invité :
    terraform apply

    Attendez que Terraform affiche le message "Apply completed!" (Application terminée).

  3. Ouvrez votre projet Google Cloud pour afficher les résultats. Dans la console Google Cloud, accédez à vos ressources dans l'interface utilisateur pour vous assurer que Terraform les a créées ou mises à jour.

Supprimer les modifications

Pour supprimer vos modifications, procédez comme suit :

  1. Pour désactiver la protection contre la suppression, définissez l'argument deletion_protection sur false dans le fichier de configuration Terraform.
    deletion_protection =  "false"
  2. Appliquez la configuration Terraform mise à jour en exécutant la commande suivante et en saisissant yes lorsque vous y êtes invité :
    terraform apply
  1. Supprimez les ressources précédemment appliquées à votre configuration Terraform en exécutant la commande suivante et en saisissant yes à la requête :

    terraform destroy

REST v1

Créez une instance avec une adresse IP privée :

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

  • PROJECT_ID: ID du projet.
  • INSTANCE_ID: ID de l'instance.
  • VPC_NETWORK_NAME: spécifiez le nom du réseau cloud privé virtuel (VPC) que vous souhaitez utiliser pour cette instance. L'accès aux services privés doit déjà être configuré pour le réseau.
  • RANGE_NAME: Facultatif. Si spécifié, définit 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.
  • AUTHORIZED_NETWORKS: pour les connexions IP publiques, spécifiez les connexions à partir de réseaux autorisés pouvant vous connecter à l'instance.

Pour le paramètre ipv4Enabled, définissez la valeur sur true si vous utilisez une adresse IP publique pour votre instance ou sur false si votre instance possède une adresse IP privée.

Si vous définissez le paramètre enablePrivatePathForGoogleCloudServices 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 privée. 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 privée.

Méthode HTTP et URL :

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

Corps JSON de la requête :

{
  "name": "INSTANCE_ID",
  "region": "region",
  "databaseVersion": "database-version",
  "settings": {
    "tier": "machine-type",
    "ipConfiguration": {
      "ipv4Enabled": false,
      "privateNetwork": "projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME",
      "allocatedIpRange": "RANGE_NAME"
      "authorizedNetworks": [AUTHORIZED_NETWORKS],
      
      "enablePrivatePathForGoogleCloudServices": true
      
    }
  }
}

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

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

REST v1beta4

Créez une instance avec une adresse IP privée :

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

  • PROJECT_ID: ID du projet.
  • INSTANCE_ID: ID de l'instance.
  • VPC_NETWORK_NAME: spécifiez le nom du réseau cloud privé virtuel (VPC) que vous souhaitez utiliser pour cette instance. L'accès aux services privés doit déjà être configuré pour le réseau.
  • RANGE_NAME: Facultatif. Si spécifié, définit 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.
  • AUTHORIZED_NETWORKS: pour les connexions IP publiques, spécifiez les connexions à partir de réseaux autorisés pouvant vous connecter à l'instance.

Pour le paramètre ipv4Enabled, définissez la valeur sur true si vous utilisez une adresse IP publique pour votre instance ou sur false si votre instance possède une adresse IP privée.

Si vous définissez le paramètre enablePrivatePathForGoogleCloudServices 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 privée. 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 privée.

Méthode HTTP et URL :

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

Corps JSON de la requête :

{
  "name": "INSTANCE_ID",
  "region": "region",
  "databaseVersion": "database-version",
  "settings": {
    "tier": "machine-type",
    "ipConfiguration": {
      "ipv4Enabled": false,
      "privateNetwork": "projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME",
      "allocatedIpRange": "RANGE_NAME"
      "authorizedNetworks": [AUTHORIZED_NETWORKS],
      
      "enablePrivatePathForGoogleCloudServices": true
      
    }
  }
}

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

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

Configurer une adresse IP privée pour une instance existante

Lorsque vous configurez une instance Cloud SQL existante pour qu'elle utilise une adresse IP privée, celle-ci redémarre, ce qui entraîne un temps d'arrêt.

Pour configurer une instance existante afin qu'elle utilise une adresse IP privée, procédez comme suit :

Console

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

    Accéder à la page Instances Cloud SQL

  2. Pour ouvrir la page Présentation d'une instance, cliquez sur son nom.
  3. Dans le menu de navigation Cloud SQL, sélectionnez Connexions.
  4. Dans l'onglet Réseau, cochez la case Adresse IP privée.

    Une liste déroulante affiche les réseaux disponibles dans votre projet.

  5. Sélectionnez le réseau VPC que vous souhaitez utiliser :
  6. Si vous voyez apparaître Connexion de service privée requise :

    1. Cliquez sur Configurer la connexion.
    2. Dans la section Allouer une plage d'adresses IP, sélectionnez l'une des options suivantes :
      • Sélectionnez une ou plusieurs plages d'adresses IP existantes, ou créez-en une depuis la liste déroulante. Le cas échéant, la liste déroulante inclut les plages déjà allouées. Vous pouvez aussi sélectionner Allouer une nouvelle plage d'adresses IP et saisir une nouvelle plage et un nouveau nom.
      • Utilisez une plage d'adresses IP allouée automatiquement dans votre réseau.
    3. Cliquez sur Continuer.
    4. Cliquez sur Create connection (Créer une connexion).
    5. Vérifiez que vous observez bien l'état La connexion de service privée pour le réseau VPC_NETWORK_NAME a bien été créée.
  7. Facultatif. Si vous souhaitez 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, cochez la case Activer le chemin d'accès privé..
  8. Cliquez sur Enregistrer.

gcloud

Assurez-vous que votre projet est configuré pour l'accès privé aux services.

Mettez à jour votre instance Cloud SQL en utilisant le paramètre --network pour spécifier le nom du réseau VPC sélectionné.

gcloud beta sql instances patch INSTANCE_ID \
--project=PROJECT_ID \
--network=projects/NETWORK_PROJECT_ID/global/networks/VPC_NETWORK_NAME \
--no-assign-ip \
--enable-google-private-path

REST v1

Créez une instance avec une adresse IP privée :

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

  • PROJECT_ID: ID du projet.
  • INSTANCE_ID: ID de l'instance.
  • VPC_NETWORK_NAME: spécifiez le nom du réseau cloud privé virtuel (VPC) que vous souhaitez utiliser pour cette instance. L'accès aux services privés doit déjà être configuré pour le réseau.
  • RANGE_NAME: Facultatif. Si spécifié, définit 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.
  • AUTHORIZED_NETWORKS: pour les connexions IP publiques, spécifiez les connexions à partir de réseaux autorisés pouvant vous connecter à l'instance.

Pour le paramètre ipv4Enabled, définissez la valeur sur true si vous utilisez une adresse IP publique pour votre instance ou sur false si votre instance possède une adresse IP privée.

Si vous définissez le paramètre enablePrivatePathForGoogleCloudServices 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 privée. 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 privée.

Méthode HTTP et URL :

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

Corps JSON de la requête :

{
  "settings":
  {
    "ipConfiguration": {
      "ipv4Enabled": false,
      "privateNetwork": "projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME",
      "allocatedIpRange": "RANGE_NAME"
      "authorizedNetworks": [AUTHORIZED_NETWORKS],
      
      "enablePrivatePathForGoogleCloudServices": true
      
    }
  }
}

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

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

REST v1beta4

Créez une instance avec une adresse IP privée :

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

  • PROJECT_ID: ID du projet.
  • INSTANCE_ID: ID de l'instance.
  • VPC_NETWORK_NAME: spécifiez le nom du réseau cloud privé virtuel (VPC) que vous souhaitez utiliser pour cette instance. L'accès aux services privés doit déjà être configuré pour le réseau.
  • RANGE_NAME: Facultatif. Si spécifié, définit 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.
  • AUTHORIZED_NETWORKS : pour les connexions IP publiques, spécifiez les connexions à partir de réseaux autorisés pouvant vous connecter à l'instance.

Pour le paramètre ipv4Enabled, définissez la valeur sur true si vous utilisez une adresse IP publique pour votre instance ou sur false si votre instance possède une adresse IP privée.

Si vous définissez le paramètre enablePrivatePathForGoogleCloudServices 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 privée. 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 privée.

Méthode HTTP et URL :

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID

Corps JSON de la requête :

{
  "settings":
  {
    "ipConfiguration": {
      "ipv4Enabled": false,
      "privateNetwork": "projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME",
      "allocatedIpRange": "RANGE_NAME"
      "authorizedNetworks": [AUTHORIZED_NETWORKS],
      
      "enablePrivatePathForGoogleCloudServices": true
      
    }
  }
}

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

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

Se connecter à une instance à l'aide de son adresse IP privée

L'accès aux services privés vous permet de vous connecter à des instances Cloud SQL à partir d'instances Compute Engine ou Google Kubernetes Engine dans le même réseau VPC (définies ici comme des sources internes) ou externes à ce réseau (sources externes).

Se connecter depuis une source interne

Pour vous connecter à partir d'une source appartenant au même projet Google Cloud que votre instance Cloud SQL, par exemple le proxy d'authentification Cloud SQL exécuté sur une ressource Compute Engine, cette ressource doit se trouver dans le même réseau VPC où l'accès aux services privés a été établi pour l'instance Cloud SQL.

Pour vous connecter à partir d'une source sans serveur, telle que l'environnement standard App Engine, Cloud Run ou les fonctions Cloud Run, votre application ou fonction se connecte directement à votre instance via l'accès au VPC sans serveur, sans proxy d'authentification Cloud SQL.

Se connecter depuis une source externe

Si un réseau externe (par exemple, un réseau sur site ou un réseau VPC) est connecté au réseau VPC auquel votre instance Cloud SQL est connectée, vous pouvez utiliser Cloud VPN ou Cloud Interconnect pour vous connecter à l'instance depuis un client du réseau externe.

Pour autoriser les connexions à partir d'un réseau externe, procédez comme suit :

  1. Vérifiez que le réseau VPC est connecté au réseau externe à l'aide d'un tunnel Cloud VPN ou d'un rattachement de VLAN pour une interconnexion dédiée ou une interconnexion partenaire.
  2. Assurez-vous que les sessions BGP (Border Gateway Protocol) sur les routeurs cloud gérant vos tunnels Cloud VPN et vos rattachements Cloud Interconnect (VLAN) ont reçu des préfixes (destinations) spécifiques provenant de votre réseau sur site.

    Les routes par défaut (destination 0.0.0.0/0) ne peuvent pas être importées dans le réseau VPC Cloud SQL, car celui-ci possède sa propre route locale par défaut. Les routes locales d'une destination sont utilisées, même si l'appairage Cloud SQL est configuré pour importer des routes personnalisées à partir de votre réseau VPC.

  3. Identifiez l'appairage généré par la connexion aux services privés. En fonction du service, la connexion aux services privés peut créer une ou plusieurs des connexions d'appairage suivantes, mais pas nécessairement toutes :
    • cloudsql-mysql-googleapis-com
    • cloudsql-postgres-googleapis-com
    • servicenetworking-googleapis-com
  4. Modifiez toutes les connexions d'appairage pour activer l'exportation des routes personnalisées.
  5. Identifiez la plage allouée utilisée par la connexion aux services privés.
  6. Configurez le mode d'annonce personnalisé Cloud Router pour la plage allouée sur les routeurs Cloud Router gérant les sessions BGP de vos tunnels Cloud VPN ou d vos rattachements Cloud Interconnect (VLAN).

Se connecter à partir de Cloud Shell

Cloud Shell n'est pas compatible avec la connexion à une instance Cloud SQL ne disposant que d'une adresse IP privée.

Se connecter à partir d'adresses IP non-RFC 1918

La RFC 1918 spécifie les adresses IP affectées à une utilisation en interne (c'est-à-dire au sein d'une organisation) et qui ne s'acheminent pas sur Internet. En particulier, il peut s'agir des éléments suivants :

  • 10.0.0.0/8
  • 172.16.0.0/12
  • 192.168.0.0/16

Les connexions à une instance Cloud SQL à l'aide d'une adresse IP privée sont automatiquement autorisées pour les plages d'adresses RFC 1918. De cette façon, tous les clients privés peuvent accéder à la base de données sans passer par le proxy.

Pour vous connecter à partir d'une adresse IP non-RFC 1918, vous devez définir une autorisation IP par instance, afin d'autoriser le trafic provenant de plages d'adresses IP non-RFC 1918.

Par exemple, exécutez une commande gcloud comme suit :

gcloud sql instances patch INSTANCE_NAME \
--authorized-networks=192.88.99.0/24,11.0.0.0/24

Par défaut, Cloud SQL n'apprend pas les routes de sous-réseau non-RFC 1918 à partir de votre réseau VPC. Vous devez mettre à jour l'appairage de réseaux vers Cloud SQL pour exporter les routes non-RFC 1918.

gcloud compute networks peerings update PEERING_CONNECTION \
--network=VPC_NETWORK_NAME \
--export-subnet-routes-with-public-ip \
--project=PROJECT_ID

    Remplacez les éléments suivants :

  • PEERING_CONNECTION correspond au nom de la connexion d'appairage produite par la connexion aux services privés entre votre réseau VPC et le réseau du producteur de services.
  • VPC_NETWORK_NAME est le nom du réseau VPC.
  • PROJECT_ID est l'ID du projet du réseau VPC. Si vous utilisez un VPC partagé, utilisez l'ID du projet hôte.

Pour prévenir le phénomène d'épuisement des adresses IP, vous pouvez exploiter des adresses IP publiques utilisées en mode privé.

Se connecter à partir d'adresses IP publiques utilisées en mode privé

Si vous souhaitez configurer votre instance dans une plage d'adresses IP publiques utilisées en mode privé, activez export-subnet-routes-with-public-ip sur l'appairage de réseaux entre votre réseau et le réseau Cloud SQL.

gcloud compute networks peerings update PEERING_CONNECTION \
--network=VPC_NETWORK_NAME \
--export-subnet-routes-with-public-ip \
--project=PROJECT_ID

    Remplacez les éléments suivants :

  • PEERING_CONNECTION correspond au nom de la connexion d'appairage produite par la connexion aux services privés entre votre réseau VPC et le réseau du producteur de services. Pour connaître le nom de la connexion d'appairage, accédez à la page Appairage de réseaux VPC.
  • VPC_NETWORK_NAME est le nom du réseau VPC.
  • PROJECT_ID est l'ID du projet du réseau VPC. Si vous utilisez un VPC partagé, utilisez l'ID du projet hôte.

Se connecter à une instance configurée avec des adresses IP publiques utilisées en mode privé

Si votre instance est configurée dans une plage d'adresses IP publiques utilisées en mode privé et que vous souhaitez vous y connecter, activez import-subnet-routes-with-public-ip sur l'appairage de réseaux entre votre réseau et le réseau Cloud SQL.

gcloud compute networks peerings update PEERING_CONNECTION \
--network=VPC_NETWORK_NAME \
--import-subnet-routes-with-public-ip \
--project=PROJECT_ID

    Remplacez les éléments suivants :

  • PEERING_CONNECTION correspond au nom de la connexion d'appairage produite par la connexion aux services privés entre votre réseau VPC et le réseau du producteur de services. Pour connaître le nom de la connexion d'appairage, accédez à la page Appairage de réseaux VPC.
  • VPC_NETWORK_NAME est le nom du réseau VPC.
  • PROJECT_ID est l'ID du projet du réseau VPC. Utilisez l'ID du projet hôte si vous utilisez un VPC partagé.

Se connecter à l'aide d'un point de terminaison d'écriture

En plus d'une adresse IP privée, vous pouvez utiliser un point de terminaison d'écriture dans une chaîne de connexion SQL. Un point de terminaison d'écriture est un nom de service de nom de domaine (DNS) mondial qui pointe automatiquement vers l'adresse IP de l'instance principale actuelle. En utilisant un point de terminaison d'écriture, vous pouvez éviter d'avoir à modifier la connexion de l'application en cas de panne régionale.

En cas de failover ou de basculement de réplication, le point de terminaison d'écriture peut aider à gérer les adresses IP privées des instances. Dans ce cas, utilisez le point de terminaison d'écriture pour vous connecter à l'instance qui sert d'instance principale.

Comment Cloud SQL crée-t-il un point de terminaison d'écriture ?

Si vous activez l'API Cloud DNS pour votre projet Google Cloud, puis que vous créez une instance principale Cloud SQL Enterprise Plus, que vous faites la promotion du réplicat de l'instance ou que vous passez à l'édition Cloud SQL Enterprise, Cloud SQL génère automatiquement un point de terminaison d'écriture et l'attribue à l'instance.

Si l'instance principale change pendant les processus de commutation ou de basculement, Cloud SQL attribue le point de terminaison d'écriture à l'instance répliquée de basculement, car elle est la nouvelle instance principale.

Pour en savoir plus sur l'obtention du point de terminaison d'écriture de l'instance, consultez la section Afficher les informations sur l'instance.

Attribuer un point de terminaison d'écriture à une instance

Si vous n'activez pas l'API Cloud DNS pour votre projet Google Cloud, puis que vous créez votre instance, en faites la promotion ou la mettez à niveau, Cloud SQL n'attribue pas automatiquement le point de terminaison d'écriture à l'instance.

Pour que Cloud SQL génère un point de terminaison d'écriture et l'attribue à l'instance, procédez comme suit:

  1. Activez l'API Cloud DNS.

    Console

    1. Dans Google Cloud Console, accédez à la page API.

      Accéder aux API

    2. Cliquez sur API Cloud DNS.
    3. Activez l'API.

    gcloud

    1. Cliquez sur le bouton suivant pour ouvrir Cloud Shell, qui fournit un accès en ligne de commande à vos ressources Google Cloud directement depuis le navigateur.

      Ouvrir Cloud Shell

    2. Pour activer l'API, exécutez la commande suivante gcloud services enable suivante :

      gcloud services enable dns.googleapis.com
  2. Créez une instance répliquée pour la reprise après sinistre avancée. Par conséquent, Cloud SQL génère le point de terminaison d'écriture et l'attribue à l'instance.

  3. Pour récupérer le point de terminaison d'écriture, utilisez la commande gcloud sql instances describe:
    gcloud sql instances describe INSTANCE_NAME | grep psaWriteEndpoint

    Remplacez INSTANCE_NAME par le nom de votre instance Cloud SQL.

Résoudre les problèmes

Consultez la page Dépannage pour connaître les problèmes de connectivité connus, ainsi que la section sur le débogage des problèmes de connexion pour obtenir de l'aide sur l'autodiagnostic.

Étape suivante