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 projetGoogle 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 CLI Google Cloud 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 :
- Installez et initialisez gcloud CLI.
- Mettez à jour gcloud CLI :
gcloud components update
- 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.
- 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 |
Utilisez les commandes suivantes pour activer ces services :
gcloud services enable apigateway.googleapis.comgcloud services enable servicemanagement.googleapis.comgcloud 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 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.
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 la procédure décrite dans 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 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 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 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 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) offrent cette option.