Si votre organisation utilise un VPC partagé, vous pouvez configurer un connecteur d'accès au VPC sans serveur dans le projet de service ou le projet hôte. Ce guide explique comment configurer un connecteur dans le projet hôte.
Si vous devez configurer un connecteur dans un projet de service, consultez la section Configurer des connecteurs dans des projets de service. Pour en savoir plus sur les avantages offerts par chacune de ces deux méthodes, consultez la section Se connecter à un réseau VPC partagé.
Avant de commencer
Vérifiez les rôles IAM (Identity and Access Management) pour le compte que vous utilisez actuellement. Le compte actif doit disposer des rôles suivants sur le projet hôte :
Sélectionnez le projet hôte dans l'environnement de votre choix.
Console
Accédez au tableau de bord de la console Google Cloud.
Dans la barre de menu située en haut du tableau de bord, cliquez sur le menu déroulant du projet et sélectionnez le projet hôte.
gcloud
Dans gcloud CLI, définissez le projet par défaut sur le projet hôte en exécutant la commande suivante dans votre terminal :
gcloud config set project HOST_PROJECT_ID
Remplacez les éléments suivants :
HOST_PROJECT_ID
: ID du projet hôte de VPC partagé.
Créez un connecteur d'accès au VPC sans serveur.
Pour envoyer des requêtes à votre réseau VPC et recevoir les réponses correspondantes, vous devez créer un connecteur d'accès au VPC sans serveur. Vous pouvez créer un connecteur à l'aide de la console Google Cloud, de Google Cloud CLI ou de Terraform :
Console
Activez l'API d'accès au VPC sans serveur (Serverless VPC Access) pour votre projet :
Accédez à la page de présentation de l'accès au VPC sans serveur.
Cliquez sur Créer un connecteur.
Dans le champ Nom, saisissez le nom du connecteur. Le nom doit respecter la convention d'attribution de noms de Compute Engine et comporter moins de 21 caractères. Les tirets (
-
) comptent pour deux caractères.Dans le champ Région, sélectionnez une région pour votre connecteur. Elle doit correspondre à la région de votre service sans serveur.
Si votre service se trouve dans la région
us-central
oueurope-west
, utilisezus-central1
oueurope-west1
.Dans le champ Réseau, sélectionnez le réseau VPC auquel associer le connecteur.
Cliquez sur le menu déroulant Sous-réseau :
Sélectionnez un sous-réseau
/28
non utilisé.- Les sous-réseaux doivent être utilisés exclusivement par le connecteur. Ils ne peuvent pas être utilisés par d'autres ressources telles que les VM, Private Service Connect et les équilibreurs de charge.
- Pour vérifier que votre sous-réseau n'est pas utilisé par Private Service Connect ni Cloud Load Balancing, vérifiez que l'objectif du sous-réseau
purpose
est bienPRIVATE
en exécutant la commande suivante dans gcloud CLI : Remplacezgcloud compute networks subnets describe SUBNET_NAME
SUBNET_NAME
par le nom de votre sous-réseau.
(Facultatif) Pour définir les options de scaling afin de renforcer le contrôle du connecteur, cliquez sur Afficher les paramètres de scaling pour afficher le formulaire de scaling.
- Définissez le nombre minimal et maximal d'instances de votre connecteur ou utilisez les valeurs par défaut, qui sont 2 (min.) et 10 (max.). Le connecteur effectue un scaling horizontal jusqu'à la valeur maximale spécifiée à mesure que le trafic augmente, mais il ne réduit pas le nombre d'instances lorsque le trafic diminue. Vous devez utiliser des valeurs comprises entre
2
et10
, et la valeurMIN
doit être inférieure à la valeurMAX
. - Dans le menu déroulant Type d'instance, choisissez le type de machine à utiliser pour le connecteur ou utilisez la valeur par défaut
e2-micro
. Notez la barre latérale des coûts sur la droite lorsque vous choisissez le type d'instance, qui affiche des estimations de bande passante et de coûts.
- Définissez le nombre minimal et maximal d'instances de votre connecteur ou utilisez les valeurs par défaut, qui sont 2 (min.) et 10 (max.). Le connecteur effectue un scaling horizontal jusqu'à la valeur maximale spécifiée à mesure que le trafic augmente, mais il ne réduit pas le nombre d'instances lorsque le trafic diminue. Vous devez utiliser des valeurs comprises entre
Cliquez sur Créer.
Une coche verte apparaît à côté du nom du connecteur lorsque celui-ci est prêt à être utilisé.
gcloud
Mettez à jour les composants
gcloud
vers la dernière version :gcloud components update
Activez l'API Serverless VPC Access pour votre projet :
gcloud services enable vpcaccess.googleapis.com
Créez un connecteur d'accès au VPC sans serveur :
gcloud compute networks vpc-access connectors create CONNECTOR_NAME \ --region=REGION \ --subnet=SUBNET \ --subnet-project=HOST_PROJECT_ID \ # Optional: specify minimum and maximum instance values between 2 and 10, default is 2 min, 10 max. --min-instances=MIN \ --max-instances=MAX \ # Optional: specify machine type, default is e2-micro --machine-type=MACHINE_TYPE
Remplacez les éléments suivants :
CONNECTOR_NAME
: nom du connecteur. Le nom doit respecter la convention d'attribution de noms de Compute Engine et comporter moins de 21 caractères. Les tirets (-
) comptent pour deux caractères.REGION
: région de votre connecteur. Elle doit correspondre à la région de votre service sans serveur. Si votre service se trouve dans la régionus-central
oueurope-west
, utilisezus-central1
oueurope-west1
.SUBNET
: nom d'un sous-réseau/28
inutilisé- Les sous-réseaux doivent être utilisés exclusivement par le connecteur. Ils ne peuvent pas être utilisés par d'autres ressources telles que les VM, Private Service Connect et les équilibreurs de charge.
- Pour vérifier que votre sous-réseau n'est pas utilisé par Private Service Connect ni Cloud Load Balancing, vérifiez que l'objectif du sous-réseau
purpose
est bienPRIVATE
en exécutant la commande suivante dans gcloud CLI : Remplacez les éléments suivants :gcloud compute networks subnets describe SUBNET_NAME
SUBNET_NAME
: nom de votre sous-réseau
HOST_PROJECT_ID
: ID du projet hôteMIN
: nombre minimal d'instances à utiliser pour le connecteur. Saisissez un nombre entier compris entre2
et9
. La valeur par défaut est2
. Pour en savoir plus sur le scaling des connecteurs, consultez la page Débit et scaling.MAX
: nombre maximal d'instances à utiliser pour le connecteur. Saisissez un nombre entier compris entre3
et10
. La valeur par défaut est10
. Si le trafic l'exige, le connecteur effectue un scaling horizontal jusqu'aux instances[MAX]
, mais il ne réduit pas le nombre d'instances. Pour en savoir plus sur le scaling des connecteurs, consultez la page Débit et scaling.MACHINE_TYPE
:f1-micro
,e2-micro
oue2-standard-4
. Pour en savoir plus sur le débit du connecteur, y compris le type de machine et le scaling, consultez la section Débit et scaling.
Pour plus d'informations et d'arguments facultatifs, consultez la documentation de référence sur
gcloud
.Avant d'utiliser le connecteur, vérifiez qu'il est dans l'état
READY
:gcloud compute networks vpc-access connectors describe CONNECTOR_NAME \ --region=REGION
Remplacez les éléments suivants :
CONNECTOR_NAME
: nom du connecteur. Il s'agit du nom que vous avez spécifié à l'étape précédente.REGION
: région du connecteur. Il s'agit de la région que vous avez spécifiée à l'étape précédente.
Le résultat doit contenir la ligne
state: READY
.
Terraform
Vous pouvez utiliser une ressource Terraform pour activer l'API vpcaccess.googleapis.com
.
Vous pouvez utiliser les modules Terraform pour créer un réseau et un sous-réseau VPC, puis créer le connecteur.
Fournir un accès au connecteur
Accordez l'accès au connecteur en attribuant le rôle IAM Utilisateur de l'accès au VPC sans serveur sur le projet hôte au compte principal qui déploie votre service App Engine.
Console
Ouvrez la page IAM.
Cliquez sur le menu déroulant du projet et sélectionnez le projet hôte.
Cliquez sur Ajouter.
Dans le champ Nouveaux comptes principaux, ajoutez le compte principal qui déploie votre service App Engine.
Dans le champ Rôle, sélectionnez Rôle d'utilisateur pour l'accès au VPC sans serveur.
Cliquez sur Enregistrer.
gcloud
Exécutez la commande suivante dans votre terminal :
gcloud projects add-iam-policy-binding HOST_PROJECT_ID \ --member=PRINCIPAL \ --role=roles/vpcaccess.user
Remplacez les éléments suivants :
HOST_PROJECT_ID
: ID du projet hôte de VPC partagé.PRINCIPAL
: compte principal qui déploie votre service App Engine. En savoir plus sur l'option--member
.
Rendre le connecteur visible
Pour afficher le connecteur, les comptes principaux doivent disposer de certains rôles d'affichage sur le projet hôte et sur le projet de service. Pour que votre connecteur apparaisse lorsque les comptes principaux affichent les connecteurs disponibles dans la console Google Cloud ou depuis leur terminal, ajoutez des rôles IAM aux comptes principaux qui déploient les services App Engine.
Attribuer des rôles IAM sur le projet hôte
Sur le projet hôte, attribuez aux comptes principaux qui déploient les services App Engine le rôle Lecteur d'accès au VPC sans serveur (vpcaccess.viewer
).
Console
Ouvrez la page IAM.
Cliquez sur le menu déroulant du projet et sélectionnez le projet hôte.
Cliquez sur Ajouter.
Dans le champ Nouveaux comptes principaux, saisissez l'adresse e-mail du compte principal pour lequel le connecteur du projet de service doit être visible. Vous pouvez saisir plusieurs adresses e-mail dans ce champ.
Dans le champ Rôle, sélectionnez Lecteur d'accès au VPC sans serveur.
Cliquez sur Enregistrer.
gcloud
Exécutez la commande suivante dans votre terminal :
gcloud projects add-iam-policy-binding HOST_PROJECT_ID \ --member=PRINCIPAL \ --role=roles/vpcaccess.viewer
Remplacez les éléments suivants :
HOST_PROJECT_ID
: ID du projet hôte de VPC partagé.PRINCIPAL
: compte principal qui déploie les services App Engine. En savoir plus sur l'option--member
.
Attribuer des rôles IAM sur le projet de service
Sur le projet de service, accordez aux comptes principaux qui déploient les services App Engine le rôle Lecteur de réseau Compute (compute.networkViewer
).
Console
Ouvrez la page IAM.
Cliquez sur le menu déroulant du projet et sélectionnez le projet de service.
Cliquez sur Ajouter.
Dans le champ Nouveaux comptes principaux, saisissez l'adresse e-mail du compte principal pour lequel le connecteur du projet de service doit être visible. Vous pouvez saisir plusieurs adresses e-mail dans ce champ.
Dans le champ Rôle, sélectionnez Lecteur de réseau Compute.
Cliquez sur Enregistrer.
gcloud
Exécutez la commande suivante dans votre terminal :
gcloud projects add-iam-policy-binding SERVICE_PROJECT_ID \ --member=PRINCIPAL \ --role=roles/compute.networkViewer
Remplacez les éléments suivants :
SERVICE_PROJECT_ID
: ID du projet de service.PRINCIPAL
: compte principal qui déploie les services App Engine. En savoir plus sur l'option--member
.
Configurer votre service pour utiliser un connecteur
Pour chaque service App Engine qui nécessite l'accès à votre VPC partagé, vous devez spécifier le connecteur du service. La procédure suivante montre comment configurer votre service pour utiliser un connecteur.
Arrêtez toute utilisation de
URLFetchService
. L'accès au VPC sans serveur n'est pas compatible avec le service de récupération d'URL.Ajoutez l'élément
<vpc-access-connector>
au fichierappengine-web.xml
de votre service :<vpc-access-connector> <name>projects/HOST_PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME</name> </vpc-access-connector>
Remplacez les éléments suivants :
HOST_PROJECT_ID
: ID du projet hôte de VPC partagé.REGION
: région de votre connecteurCONNECTOR_NAME
: nom de votre connecteur
Déployez le service :
gcloud app deploy WEB-INF/appengine-web.xml
Après le déploiement, votre service peut envoyer des requêtes à votre réseau VPC partagé et recevoir les réponses correspondantes.
Étapes suivantes
- Surveillez l'activité des administrateurs avec les journaux d'audit de l'accès au VPC sans serveur.
- Protégez les ressources et les données en créant un périmètre de service avec VPC Service Controls.
- Découvrez les rôles IAM (gestion de l'authentification et des accès) associés à l'accès au VPC sans serveur. Reportez-vous à la page Rôles associés à l'accès au VPC sans serveur dans la documentation IAM pour obtenir la liste des autorisations associées à chaque rôle.
- Découvrez comment vous connecter à Memorystore depuis l'environnement standard App Engine.