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.

Google Cloud et des tiers (appelés collectivement des producteurs de services) peuvent proposer des services avec des adresses IP internes hébergées sur un réseau VPC. L'accès aux services privés vous permet d'atteindre ces adresses IP internes. Cela est utile si vous souhaitez que les instances de VM de votre réseau VPC utilisent des adresses IP internes au lieu d'adresses IP externes. Cloud SQL utilise des adresses IP internes pour les adresses IP privées.

Avant de commencer

Si vous utilisez une adresse IP privée pour l'une de vos instances Cloud SQL, vous n'avez besoin de configurer l'accès aux services privés qu'une seule fois pour chaque projet Google Cloud disposant ou devant disposer d'une connexion à une instance Cloud SQL.

Si votre projet Google Cloud dispose d'une instance Cloud SQL, vous pouvez la configurer vous-même de sorte qu'elle utilise une adresse IP privée, ou laisser Cloud SQL le faire à votre place.

Cloud SQL configure l'accès aux services privés lorsque toutes les conditions ci-dessous sont remplies :

  • Vous n'avez pas encore configuré l'accès aux services privés dans le projet Google Cloud.
  • Vous activez pour la première fois une adresse IP privée pour n'importe laquelle des instances Cloud SQL du projet Google Cloud.
  • Lorsque vous activez une adresse IP privée sur la page Connections (Connexions) de l'instance, vous sélectionnez à la fois l'option de réseau associé default et l'option Use an automatically allocated IP range (Utiliser une plage d'adresses IP automatiquement allouée).

Vous pouvez afficher les résultats sur la page Réseaux VPC en sélectionnant le réseau VPC default, puis le lien Private service connection.

Sinon, vous devez configurer manuellement l'accès aux services privés, comme indiqué dans les sections ci-dessous.

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

Vous pouvez configurer l'accès aux services privés dans default ou votre propre réseau VPC. Cette procédure est recommandée dans les cas suivants :

  • Vous souhaitez contrôler la taille de la plage d'adresses IP allouée. Par exemple, si vous prévoyez de créer plusieurs instances Cloud SQL, vous pouvez choisir de leur attribuer à l'avance une plage d'adresses IP pouvant toutes les contenir. Si des instances doivent être créées dans plusieurs régions ou différents types de base de données, une plage supérieure ou égale à /20 est recommandée.

  • Vous souhaitez configurer l'accès aux services privés depuis la ligne de commande (à l'aide de gcloud).

  • Vous utilisez un VPC partagé et votre organisation dispose d'un administrateur réseau (rôles IAM/compute.networkAdmin) dans le projet hôte. L'administrateur réseau peut effectuer les étapes ci-dessous dans le projet hôte pour configurer l'accès aux services privés. Les utilisateurs auxquels des droits ont été délégués dans les projets de service peuvent lancer des instances Cloud SQL en suivant les instructions des sections précédentes.

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. Même si plusieurs plages d'adresses IP peuvent être allouées, Google s'occupe toujours de la plage d'adresses IP utilisée pour l'adresse IP privée.

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

  • Affecter une plage d'adresses IP
  • Créer 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. Accédez à la page Réseaux VPC de Google Cloud Console.
  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 Plage d'adresses IP allouées.
  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. 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. Accédez à la page Réseaux VPC de Google Cloud Console.
  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]
    

    Remplacez [VPC_NETWORK_NAME] par le nom de votre réseau VPC et [PROJECT_ID] par l'ID du projet qui contient votre réseau VPC.

    La commande lance une opération longue. Elle affiche un nom d'opération.

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

    gcloud services vpc-peerings operations describe \
        --name=[OPERATION_NAME]
    

    Remplacez [OPERATION_NAME] par le nom de l'opération renvoyé à l'étape précédente.

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. Accédez à la page Réseaux VPC de Google Cloud Console.
  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 d'adresses différente, mais utilisant le même nom.

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

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 :

Console

  1. Accédez à la page Réseaux VPC de Google Cloud Console.
  2. Créez un réseau VPC temporaire.
  3. Déplacez l'instance Cloud SQL vers le réseau VPC temporaire.
    gcloud --project=[PROJECT_ID] beta sql instances patch [INSTANCE_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 --project=[PROJECT_ID] beta sql instances patch [INSTANCE_ID]
    --network=[ORIGINAL_VPC_NETWORK_NAME] --no-assign-ip

Attribuer le rôle compute.networkAdmin

gcloud beta services identity create --service=servicenetworking.googleapis.com --project=project-id
gcloud projects add-iam-policy-binding project-id --member="service-account-prefix@service-networking.iam.gserviceaccount.com" --role="roles/servicenetworking.serviceAgent"