Autoriser via des réseaux autorisés

Cette page explique comment utiliser les paramètres des réseaux autorisés pour se connecter à des instances Cloud SQL utilisant des adresses IP.

Configurer des réseaux autorisés

L'adresse IP ou la plage d'adresses de votre application cliente doit être configurée en tant que réseau autorisé (authorized networks) dans les cas suivants :

  • Votre application cliente se connecte directement à une instance Cloud SQL en utilisant son adresse IP publique.
  • Votre application cliente se connecte directement à une instance Cloud SQL en utilisant son adresse IP privée, et l'adresse IP de votre client est une adresse non-RFC 1918.

L'adresse IP peut être constituée d'un seul point de terminaison ou consister en une plage en notation CIDR.

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 SQL, sélectionnez Connexions.
  4. Cliquez sur l'onglet Réseau.
  5. Cochez la case IP publique.
  6. Cliquez sur Ajouter un réseau.
  7. Dans le champ Nom, saisissez un nom pour le Nouveau réseau.
  8. Dans le champ Réseau*, saisissez l'adresse IPv4 publique ou la plage d'adresses à partir de laquelle vous souhaitez autoriser les connexions.

    Pour la plage d'adresses, vous devez utiliser une notation CIDR valide (par exemple, 10.10.10.0/24).

  9. Cliquez sur OK.
  10. Cliquez sur Enregistrer.

gcloud

La configuration des réseaux autorisés remplace la liste des réseaux autorisés existante.

gcloud sql instances patch INSTANCE_ID \
--authorized-networks=NETWORK_RANGE_1,NETWORK_RANGE_2...
    

Terraform

Pour configurer les réseaux autorisés, utilisez une ressource Terraform.

resource "google_sql_database_instance" "instance" {
  name             = "mysql-instance-with-authorized-network"
  region           = "us-central1"
  database_version = "MYSQL_8_0"
  settings {
    tier = "db-f1-micro"
    ip_configuration {
      authorized_networks {
        name            = "Network Name"
        value           = "192.0.2.0/24"
        expiration_time = "3021-11-15T16:19:00.094Z"
      }
    }
  }
  # 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
}

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

La configuration des réseaux autorisés remplace la liste des réseaux autorisés existante.

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

  • project-id : ID du projet
  • instance-id : ID de l'instance
  • network_range_1 : adresse IP ou plage autorisée
  • network_range_2 : autre adresse IP ou plage autorisée

Méthode HTTP et URL :

PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id

Corps JSON de la requête :

{
  "settings":
  {
    "ipConfiguration":
    {
      "authorizedNetworks":
        [{"value": "network_range_1"}, {"value": "network_range_2"}]
    }
  }
}

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

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

REST v1beta4

La configuration des réseaux autorisés remplace la liste des réseaux autorisés existante.

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

  • project-id : ID du projet
  • instance-id : ID de l'instance
  • network_range_1 : adresse IP ou plage autorisée
  • network_range_2 : autre adresse IP ou plage autorisé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":
    {
      "authorizedNetworks":
        [{"value": "network_range_1"}, {"value": "network_range_2"}]
    }
  }
}

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

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

Limites

Certaines plages d'adresses IP ne peuvent pas être ajoutées en tant que réseaux autorisés.

Plage d'adresses IP Remarques
10.0.0.0/8 Plage d'adresses RFC 1918. Elles sont automatiquement et implicitement incluses dans les réseaux autorisés par Cloud SQL.
172.16.0.0/12 Plage d'adresses RFC 1918. Elles sont automatiquement et implicitement incluses dans les réseaux autorisés par Cloud SQL.
192.168.0.0/16 Plage d'adresses RFC 1918. Elles sont automatiquement et implicitement incluses dans les réseaux autorisés par Cloud SQL.

Étape suivante