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, assurez-vous d'avoir :

  • Créé un projet Google Cloud dans lequel vous avez le rôle d'Éditeur ou de Propriétaire. Une fois le déploiement initial réalisé, vous pouvez attribuer le rôle plus restrictif d'Éditeur pour la configuration de service à un utilisateur, un groupe ou un compte de service.

  • préparer la Google Cloud CLI comme décrit ci-dessous ;

  • Activé les services Google requis comme décrit ci-dessous.

  • Configurez le compte de service utilisé pour créer les configurations d'API comme décrit ci-dessous.

Préparer la 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 requis

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

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

Pour confirmer que les services requis sont activés, procédez comme suit :

gcloud services list

Si les services requis ne sont pas répertoriés, activez-les :

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 un compte de service

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.

Il est recommandé de créer un compte de service distinct dans le projet que vous utilisez pour API Gateway. Attribuez ensuite au compte de service uniquement les autorisations nécessaires pour accéder au service de backend. De cette manière, vous limitez les autorisations associées à la configuration de l'API.

Pour API Gateway, l'utilisateur qui crée ou met à jour une configuration d'API ou une passerelle a besoin 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.

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

En outre, le compte de service de passerelle requiert les autorisations nécessaires pour accéder au service de backend. Exemple :

  • Pour un backend Cloud Functions, le compte de service doit disposer du rôle Demandeur Cloud Functions.
  • Pour un backend Cloud Run, le compte de service doit disposer du rôle Demandeur Cloud Run.
  • Pour un backend App Engine, suivez la procédure décrite dans la section Configurer l'accès IAP pour 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 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 --project=PROJECT_ID \
  --backend-auth-service-account=SERVICE_ACCOUNT_EMAIL

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

Utiliser un compte de service par défaut

Certains produits GCP 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 --project=PROJECT_ID

Pour en savoir plus, consultez la page Utiliser le 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. Vérifiez que votre service de backend est correctement configuré pour accepter les jetons OIDC pour l'authentification et l'autorisation. Cloud Functions, Cloud Run et Identity-Aware Proxy (IAP) offrent cette option.

Étapes suivantes