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éparé 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 à celle-ci compte de service.

Nous vous recommandons 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 ou une passerelle d'API doit disposer de l'autorisation iam.serviceAccounts.actAs sur l'objet de 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 correspond à 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 nécessite les autorisations nécessaires pour accéder à votre 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, vous devez suivre la procédure Configurer l'accès IAP pour accorder au compte de service associé à votre passerelle le rôle Utilisateur de l'application Web sécurisée par IAP.

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

Consultez la section Créer une API pour en savoir plus sur la création de configurations d'API.

Utiliser un compte de service par défaut

Certains produits GCP définissent un compte de service default. 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 grâce à 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 section 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. Vous devez vérifier que votre service backend est correctement configuré pour accepter les jetons OIDC à des fins d'authentification et d'autorisation. Les fonctions Cloud Run, Cloud Run et Identity-Aware Proxy (IAP) proposent cette option.

Étape suivante