Configurer l'accès aux services privés

Cette page explique comment configurer l'accès aux services privés sur votre réseau VPC.

L'accès aux services privés est mis en œuvre sous la forme d'une connexion d'appairage VPC entre votre réseau VPC et le réseau VPC des services Google sous-jacent, où réside votre instance Cloud SQL. La connexion privée permet aux instances de VM de votre réseau VPC de communiquer avec les services auxquels vous accédez exclusivement à l'aide d'adresses IP internes. Les instances de VM n'ont pas besoin d'accès Internet ni d'adresses IP externes pour accéder aux services disponibles via l'accès aux services privés.

Avant de commencer

Cloud SQL requiert l'accès aux services privés pour chaque réseau VPC utilisé pour les connexions IP privées.

Pour gérer une connexion d'accès aux services privés, l'utilisateur doit disposer des autorisations IAM suivantes. Si vous ne disposez pas des autorisations nécessaires, vous pouvez rencontrer 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.

Configurer l'accès aux services privés pour Cloud SQL

Le processus de configuration de l'accès aux services privés s'effectue en deux étapes :

  • Sélection d'une plage d'adresses IP existante ou attribution d'une nouvelle plage.

    Vous pouvez également autoriser Google à allouer la plage automatiquement. Dans ce cas, Google alloue automatiquement une plage d'adresses IP avec une longueur de préfixe de /20 et utilise le nom default-ip-range.

    Si vous souhaitez créer des instances dans plusieurs régions ou pour différents types de bases de données, une plage supérieure ou égale à /20 est recommandée.

  • Création d'une connexion privée entre votre réseau VPC et le réseau du producteur de services.

Affecter une plage d'adresses IP

Console

  1. Dans Google Cloud Console, accédez à la page Réseaux VPC.

    Accéder aux réseaux VPC

  2. Sélectionnez le réseau VPC que vous souhaitez utiliser.
  3. Sélectionnez l'onglet Connexion au service privé.
  4. Sélectionnez l'onglet Plages d'adresses IP allouées pour les services.
  5. Cliquez sur Allouer une plage d'adresses IP.
  6. Dans le champ Nom de la plage allouée, spécifiez google-managed-services-VPC_NETWORK_NAME, où VPC_NETWORK_NAME est le nom du réseau VPC que vous connectez (par exemple, google-managed-services-default). Le champ Description est facultatif.
  7. Sélectionnez l'option Personnalisée, puis saisissez la plage d'adresses IP à allouer au format CIDR.
  8. Cliquez sur Allouer pour créer la plage allouée.

gcloud

Effectuez l'une des opérations suivantes :

  • Pour spécifier une plage d'adresses et une longueur de préfixe (masque de sous-réseau), utilisez les options addresses et prefix-length. Par exemple, pour allouer le bloc CIDR 192.168.0.0/16, spécifiez 192.168.0.0 pour l'adresse et 16 pour la longueur du préfixe.

    gcloud compute addresses create google-managed-services-VPC_NETWORK_NAME \
    --global \
    --purpose=VPC_PEERING \
    --addresses=192.168.0.0 \
    --prefix-length=16 \
    --network=VPC_NETWORK_NAME
    
  • Pour spécifier uniquement une longueur de préfixe (masque de sous-réseau), utilisez l'option prefix-length. Si vous ne spécifiez pas de plage d'adresses, Google Cloud sélectionne automatiquement une plage d'adresses non utilisée sur votre réseau VPC. L'exemple suivant choisit une plage d'adresses IP non utilisée avec une longueur de préfixe de 16 bits.

    gcloud compute addresses create google-managed-services-VPC_NETWORK_NAME \
    --global \
    --purpose=VPC_PEERING \
    --prefix-length=16 \
    --network=VPC_NETWORK_NAME
    

Remplacez VPC_NETWORK_NAME par le nom de votre réseau VPC, tel que my-vpc-network.

L'exemple suivant alloue une plage d'adresses IP permettant aux ressources du réseau VPC my-vpc-network de se connecter à des instances Cloud SQL à l'aide d'une adresse IP privée.

gcloud compute addresses create google-managed-services-my-vpc-network \
--global \
--purpose=VPC_PEERING \
--prefix-length=16 \
--network=my-vpc-network \
--project=my-project

Créer une connexion privée

Console

  1. Dans Google Cloud Console, accédez à la page Réseaux VPC.

    Accéder aux réseaux VPC

  2. Sélectionnez le réseau VPC que vous souhaitez utiliser.
  3. Sélectionnez l'onglet Connexion au service privé.
  4. Sélectionnez l'onglet Connexions privées aux services.
  5. Cliquez sur Créer une connexion pour créer une connexion privée entre votre réseau et un producteur de services.
  6. Pour l'allocation attribuée, sélectionnez une ou plusieurs plages attribuées existantes qui ne sont pas utilisées par d'autres producteurs de services.
  7. Cliquez sur Connecter pour créer la connexion.

gcloud

  1. Créez une connexion privée.

    gcloud services vpc-peerings connect \
    --service=servicenetworking.googleapis.com \
    --ranges=google-managed-services-VPC_NETWORK_NAME \
    --network=VPC_NETWORK_NAME \
    --project=PROJECT_ID
    

    La commande lance une opération d'instance Cloud SQL de longue durée et renvoie un ID d'opération.

  2. Vérifiez si l'opération a réussi.

    gcloud services vpc-peerings operations describe \
    --name=OPERATION_ID
    

Vous pouvez spécifier plusieurs plages allouées lorsque vous créez une connexion privée. Par exemple, si une plage est épuisée, vous pouvez affecter d'autres plages allouées. Le service utilise les adresses IP de toutes les plages fournies dans l'ordre que vous avez spécifié.

Modifier la configuration d'accès au service privé

Vous pouvez modifier la plage d'adresses allouée d'une connexion de service privé sans modifier les instances Cloud SQL existantes. Pour modifier l'adresse IP privée d'une instance Cloud SQL existante, suivez ces étapes.

Pour modifier la plage d'adresses allouée, procédez comme suit :

Console

  1. Dans Google Cloud Console, accédez à la page Réseaux VPC.

    Accéder aux réseaux VPC

  2. Sélectionnez le réseau VPC que vous souhaitez utiliser.
  3. Sélectionnez l'onglet Connexion au service privé.
  4. Sélectionnez l'onglet Plages d'adresses IP allouées pour les services.
  5. Sélectionnez le nom de la plage que vous souhaitez supprimer.
  6. Cliquez sur Libérer.
  7. Cliquez sur Allouer une plage d'adresses IP.
  8. Créez une plage utilisant le même nom avec la nouvelle plage.

    Le nom est important, car la connexion privée a déjà été établie avec ce nom d'adresse.

gcloud services vpc-peerings update \
--network=VPC_NETWORK \
--ranges=ALLOCATED_RANGES \
--service=servicenetworking.googleapis.com \
--force

Modifier l'adresse IP privée d'une instance Cloud SQL existante

Pour modifier l'adresse IP privée d'une instance Cloud SQL existante, vous devez déplacer cette instance vers un réseau VPC temporaire, modifier la configuration d'accès aux services privés, puis replacer l'instance dans le réseau VPC d'origine.

Pour déplacer l'instance dans un autre réseau VPC, suivez toute la procédure à l'exception de la dernière étape ci-dessous (replacer l'instance dans son emplacement d'origine). Dans ce cas, [TEMPORARY_VPC_NETWORK_NAME] est le nouveau réseau VPC. Supprimez également l'ancienne connexion privée. Il peut s'écouler quelques jours avant que la connexion privée supprimée ne s'affiche plus dans Google Cloud Console.

Console

  1. Dans Google Cloud Console, accédez à la page Réseaux VPC.

    Accéder aux réseaux VPC

  2. Créez un réseau VPC temporaire.
  3. Déplacez l'instance Cloud SQL vers le réseau VPC temporaire.

    gcloud beta sql instances patch INSTANCE_ID \
    --project=PROJECT_ID \
    --network=TEMPORARY_VPC_NETWORK_NAME \
    --no-assign-ip
    
  4. Modifiez la configuration d'accès au service privé

  5. Replacez l'instance Cloud SQL dans le réseau VPC d'origine.

    gcloud beta sql instances patch INSTANCE_ID \
    --project=PROJECT_ID \
    --network=ORIGINAL_VPC_NETWORK_NAME \
    --no-assign-ip