Utiliser l'environnement flexible App Engine sur un réseau VPC partagé

Dans l'environnement flexible App Engine, il est possible de spécifier un réseau sur lequel déployer les instances de votre service. Cette page explique comment configurer votre projet pour utiliser l'environnement flexible App Engine sur un réseau VPC partagé.

Pour en savoir plus sur la configuration d'un réseau VPC partagé, consultez la page Provisionner un VPC partagé.

Configurer l'environnement flexible App Engine avec un VPC partagé

Le déploiement d'instances de l'environnement flexible App Engine sur un réseau VPC partagé se déroule en trois étapes :

  1. Création d'une règle de pare-feu pour autoriser le trafic de l'environnement flexible App Engine sur le réseau VPC partagé

  2. Octroi des autorisations appropriées aux comptes de service dans le projet de service VPC partagé

  3. Configuration des services App Engine pour qu'ils utilisent le réseau VPC partagé

Si vous utilisez l'outil de ligne de commande gcloud, installez la dernière version avant de suivre ce guide en exécutant la commande suivante :

gcloud components update

Autoriser le trafic sur le réseau VPC partagé

Un administrateur de VPC partagé doit créer une règle de pare-feu dans le projet hôte VPC partagé afin d'autoriser le trafic vers l'environnement flexible App Engine sur le réseau VPC partagé. La règle de pare-feu permet la diffusion et la vérification de l'état du trafic vers les instances de l'environnement flexible.

La règle de pare-feu doit présenter les propriétés suivantes :

  • Réseau : nom du réseau VPC partagé
  • Sens du trafic : entrée
  • Action en cas de correspondance : autoriser
  • Cibles : tags cibles spécifiés
  • Tags cibles : aef-instance
  • Filtre source : plages d'adresses IP
  • Plages d'adresses IP sources : 35.191.0.0/16, 130.211.0.0/22
  • Protocoles et ports : protocoles et ports spécifiés
    • TCP : 8443, 10402

Un administrateur de VPC partagé peut créer la règle de pare-feu à l'aide de Google Cloud Console ou de l'outil de ligne de commande gcloud :

Console

Pour créer la règle de pare-feu à l'aide de Cloud Console, procédez comme suit :

  1. Accédez à la page de création de règles de pare-feu.

    Créer une règle de pare-feu

  2. Dans les champs Nom et Description, indiquez un nom et une description pour la règle de pare-feu.

  3. Renseignez les propriétés nécessaires, comme indiqué ci-dessus.

  4. Cliquez sur Créer.

gcloud

Pour créer la règle de pare-feu à l'aide de l'outil de ligne de commande gcloud, exécutez la commande suivante :

gcloud compute firewall-rules create NETWORK_NAME-flex-firewall \
--project HOST_PROJECT_ID \
--network NETWORK_NAME \
--allow tcp:10402,tcp:8443 \
--target-tags aef-instance \
--source-ranges 35.191.0.0/16,130.211.0.0/22 \
--description 'Allows traffic to App Engine flexible environment'

Où :

  • NETWORK_NAME correspond au nom du réseau VPC partagé.
  • HOST_PROJECT_ID correspond à l'ID de projet Cloud du projet hôte de VPC partagé.

Configurer des autorisations

Un administrateur de VPC partagé doit attribuer le rôle d'utilisateur de réseau de Compute aux deux comptes de service suivants afin de permettre à un projet de service de déployer des instances de l'environnement flexible App Engine sur le réseau :

  • Agent de service des API Google (PROJECT_NUM@cloudservices.gserviceaccount.com)
  • Agent de service de l'environnement flexible App Engine (service-PROJECT_NUM@gae-api-prod.google.com.iam.gserviceaccount.com)

Console

Pour configurer des autorisations à l'aide de Cloud Console, procédez comme suit :

  1. Accédez à la page des paramètres IAM du projet de service et notez le numéro du projet.

    Accéder aux paramètres IAM

  2. Accédez à la page IAM du projet hôte.

    Accéder à IAM

  3. Cliquez sur Ajouter.

  4. Dans le champ Nouveaux membres, saisissez les adresses e-mail suivantes, séparées par une virgule. Remplacez PROJECT_NUM par le numéro de projet obtenu à l'étape 1.

    • PROJECT_NUM@cloudservices.gserviceaccount.com
    • service-PROJECT_NUM@gae-api-prod.google.com.iam.gserviceaccount.com
  5. Dans la liste déroulante Sélectionner un rôle, sélectionnez Compute Engine > Utilisateur de réseau de Compute.

  6. Cliquez sur Enregistrer.

gcloud

  1. Obtenez le numéro du projet de service sur lequel l'application App Engine est déployée. Exécutez la commande suivante en remplaçant SERVICE_PROJECT_ID par l'ID du projet de service :

    export SERVICE_PROJECT_NUM=$(gcloud projects describe SERVICE_PROJECT_ID --format="value(projectNumber)")
    
  2. Accordez à l'agent de service des API Google du projet de service le rôle compute.networkUser dans le projet hôte :

    gcloud projects add-iam-policy-binding HOST_PROJECT_ID \
    --member=serviceAccount:$SERVICE_PROJECT_NUM@cloudservices.gserviceaccount.com \
    --role=roles/compute.networkUser
    

    HOST_PROJECT_ID correspond à l'ID de projet Cloud du projet hôte de VPC partagé.

  3. Accordez à l'agent de service de l'environnement flexible App Engine du projet de service le rôle compute.networkUser dans le projet hôte :

    gcloud projects add-iam-policy-binding HOST_PROJECT_ID \
    --member=serviceAccount:service-$SERVICE_PROJECT_NUM@gae-api-prod.google.com.iam.gserviceaccount.com \
    --role=roles/compute.networkUser
    

Configurer et déployer un service

Une fois la règle de pare-feu et les autorisations appropriées configurées, vous pouvez déployer un nouveau service ou un service de l'environnement flexible App Engine existant sur le réseau VPC partagé.

  1. Dans le fichier app.yaml, utilisez le champ de paramètres réseau name pour spécifier le nom complet du réseau VPC partagé :

    network:
      name: projects/HOST_PROJECT_ID/global/networks/NETWORK_NAME
    

    Où :

    • HOST_PROJECT_ID correspond à l'ID de projet Cloud du projet hôte de VPC partagé.
    • NETWORK_NAME correspond au nom du réseau VPC partagé.

    Pour configurer le service afin qu'il fasse partie d'un sous-réseau nommé SUBNETWORK_NAME, définissez également le champ subnetwork_name :

    network:
      name: projects/HOST_PROJECT_ID/global/networks/NETWORK_NAME
      subnetwork_name: SUBNETWORK_NAME
    
  2. Déployez le service :

    gcloud app deploy
    

Vérifier la configuration

Pour vérifier que votre service de l'environnement flexible App Engine est en cours d'exécution sur le réseau VPC partagé, affichez la configuration de votre version sur la page des versions d'App Engine dans Cloud Console :

  1. Accédez à la page "Versions" d'App Engine.

    Accéder à la page "Versions" d'App Engine

  2. Dans la colonne Configuration située à droite, cliquez sur Afficher à côté de la version souhaitée.

  3. Vérifiez que le nom du réseau dans la configuration correspond bien au nom du réseau VPC partagé.