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 des configurations d'API, comme décrit ci-dessous.

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 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.

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 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 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 de fonction Cloud, le compte de service doit être attribué au rôle Demandeur Cloud Functions.
  • Pour un backend Cloud Run, le compte de service doit être attribué au rôle Demandeur Cloud Run.
  • Pour un backend App Engine, vous devez suivre la procédure décrite dans Configurer l'accès à l'IAP pour attribuer 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

Pour en savoir plus sur la création de configurations d'API, consultez 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 Utiliser le compte de service par défaut de Compute Engine.

Utiliser OpenID Connect

Les requêtes envoyées par API Gateway aux services 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. Les fonctions Cloud Run, Cloud Run et l'Identity-Aware Proxy (IAP) offrent cette option.

Étape suivante