Configurer l'environnement de développement

Ce document explique comment configurer votre environnement de développement API Gateway.

Prérequis

Pour pouvoir créer une API sur API Gateway, vous devez effectuer les opérations suivantes :

Préparer Google Cloud CLI pour le déploiement

Pour préparer gcloud en vue du déploiement, procédez comme suit :

  1. Installez et initialisez gcloud CLI.
  2. Mettez à jour gcloud CLI :
    gcloud components update
  3. Assurez-vous que gcloud CLI est autorisé à accéder à vos données et services :
    gcloud auth login

    Un nouvel onglet de navigateur vous invite à choisir un compte.

  4. Définissez le projet par défaut. Remplacez PROJECT_ID par l'ID de votre projet Google Cloud  :
    gcloud config set project PROJECT_ID 

Activer les services Google requis

API Gateway nécessite l'activation des services Google Cloud suivants :

Nom Nom du service
API de la passerelle API apigateway.googleapis.com
API Service Management servicemanagement.googleapis.com
API Service Control servicecontrol.googleapis.com

Pour activer les services requis :

Console Google Cloud

  1. Dans la console Google Cloud , accédez à la page API et services > Bibliothèque d'API.

    Accéder à la bibliothèque d'API

  2. Sur la page Bibliothèque d'API, saisissez le nom de l'API requise dans la barre de recherche.
  3. Dans les résultats de recherche, sélectionnez la page de l'API.
  4. Sur la page de l'API, cliquez sur Activer.
  5. Répétez ces étapes pour chacun des services listés dans le tableau précédent.

Google Cloud CLI

Utilisez les commandes suivantes pour activer les services :

gcloud services enable apigateway.googleapis.com
gcloud services enable servicemanagement.googleapis.com
gcloud services enable servicecontrol.googleapis.com

Pour en savoir plus sur les services gcloud, consultez la section Services gcloud.

Configurer le compte de service utilisé pour créer des configurations d'API

Une configuration d'API déployée sur une passerelle s'exécute avec les autorisations associées au compte de service de la passerelle.

Nous vous recommandons de créer un compte de service distinct dans le même projet que celui utilisé pour API Gateway. Ensuite, n'attribuez au compte de service que les autorisations nécessaires pour accéder au service de backend. De cette façon, vous limitez les autorisations associées à la configuration d'API.

Pour API Gateway, l'utilisateur qui crée ou met à jour une configuration d'API ou une passerelle doit disposer de l'autorisation iam.serviceAccounts.actAs sur l'objet du compte de service. Cette autorisation est incluse dans le rôle Utilisateur du compte de service.

Pour ajouter le rôle et l'autorisation requis au compte de service de la passerelle :

Console Google Cloud

  1. Dans la console Google Cloud , accédez à la page IAM et administration > Comptes de service.

    Accéder à la page "Comptes de service"

  2. Sélectionnez le projet requis ou créez-en un.
  3. Cliquez sur le compte de service requis.
  4. Cliquez sur l'onglet Autorisations.
  5. Cliquez sur Gérer l'accès.
  6. Cliquez sur Ajouter un rôle, puis attribuez le rôle Service Account User au compte principal qui référencera le compte de service lors de la création de la configuration de l'API.
  7. Cliquez sur Enregistrer.

Google Cloud CLI

Vous pouvez ajouter le rôle et l'autorisation au compte de service de l'utilisateur à l'aide de la commande suivante :

gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_EMAIL \
--member user:USER_EMAIL \
--role roles/iam.serviceAccountUser

où :

  • SERVICE_ACCOUNT_EMAIL est l'adresse e-mail du compte de service, au format SA_NAME@PROJECT_ID.iam.gserviceaccount.com.
  • USER_EMAIL correspond à l'adresse e-mail de l'utilisateur.

Exemple :

gcloud iam service-accounts add-iam-policy-binding my-service-account@my-project.iam.gserviceaccount.com \
--member user:myemail@email.com \
--role roles/iam.serviceAccountUser

De plus, le compte de service de la passerelle nécessite les autorisations nécessaires pour accéder à votre service de backend. Exemple :

  • Pour un backend Cloud Functions, le rôle Demandeur Cloud Functions doit être attribué au compte de service.
  • Pour un backend Cloud Run, le rôle Demandeur Cloud Run doit être attribué au compte de service.
  • Pour un backend App Engine, vous devez suivre les étapes de la section Configurer l'accès IAP afin d'attribuer le rôle Utilisateur de l'application Web sécurisée par IAP au compte de service associé à votre passerelle.

En limitant les autorisations associées à la configuration de l'API, vous pouvez mieux sécuriser vos systèmes de backend. Pour en savoir plus, consultez la documentation sur Identity and Access Management (IAM).

Après avoir créé le compte de service, utilisez l'option --backend-auth-service-account pour spécifier l'adresse e-mail de ce compte de service lors de la création d'une configuration d'API :

gcloud api-gateway api-configs create CONFIG_ID \
--api=API_ID --openapi-spec=API_DEFINITION \
--backend-auth-service-account=SERVICE_ACCOUNT_EMAIL

Pour en savoir plus sur la création de configurations d'API, consultez Créer une configuration d'API.

Utiliser un compte de service par défaut

Certains produits Google Cloud définissent un compte de service par défaut. Par exemple, si vous utilisez Compute Engine et que vous avez activé l'API Compute Engine pour votre projet, un compte de service Compute Engine par défaut est créé pour vous. Le compte de service par défaut est identifiable par son adresse e-mail :

PROJECT_NUMBER-compute@developer.gserviceaccount.com

Si vous attribuez les autorisations nécessaires au compte de service par défaut, vous pouvez omettre l'option --backend-auth-service-account lors de la création d'une configuration d'API :

gcloud api-gateway api-configs create CONFIG_ID \
  --api=API_ID --openapi-spec=API_DEFINITION 

Pour en savoir plus, consultez Compte de service Compute Engine par défaut.

Utiliser OpenID Connect

Les requêtes d'API Gateway vers les services de backend peuvent utiliser l'authentification. Ces requêtes sont sécurisées à l'aide de jetons OpenID Connect (OIDC) signés par le compte de service de la passerelle. Vous devez vérifier que votre service de backend est correctement configuré pour accepter les jetons OIDC à des fins d'authentification et d'autorisation. Cloud Run Functions, Cloud Run et Identity-Aware Proxy (IAP) proposent cette option.

Étapes suivantes