L'appel ou l'appel d'un point de terminaison privé sur site, Compute Engine, Google Kubernetes Engine (GKE) ou Google Cloud à partir de workflows s'effectuent via une requête HTTP. Les méthodes de requête HTTP les plus courantes ont un raccourci d'appel (comme http.get et http.post), mais vous pouvez effectuer n'importe quel type de requête HTTP en définissant le champ call
sur http.request
et en spécifiant le type de requête à l'aide du champ method
. Pour en savoir plus, consultez la page Envoyer une requête HTTP.
Activer IAP
Vous devez activer Identity-Aware Proxy (IAP) pour le point de terminaison privé afin que les workflows puissent appeler le point de terminaison. IAP permet d'appliquer des stratégies de contrôle des accès. Il vous permet d'établir une couche d'autorisation centrale pour les applications accessibles via HTTPS, de sorte que vous puissiez utiliser un modèle de contrôle des accès au niveau de l'application au lieu de compter sur des pare-feu au niveau du réseau. Pour en savoir plus, consultez la présentation d'IAP et les éléments suivants:
- Activer IAP pour App Engine
- Activer IAP pour Cloud Run
- Activer IAP pour Compute Engine
- Activer IAP pour GKE
- Activer IAP pour les applications sur site
Créez un compte de service doté des autorisations requises.
Lorsque vous envoyez des requêtes à d'autres services Google Cloud, votre workflow doit être associé à un compte de service disposant d'un ou de plusieurs rôles Identity and Access Management (IAM) contenant les autorisations requises pour accéder aux ressources demandées. Pour savoir quel compte de service est associé à un workflow existant, consultez la section Valider le compte de service associé à un workflow.
Lorsque vous configurez un compte de service, vous associez l'identité à l'origine de la demande à la ressource à laquelle vous souhaitez lui donner accès. Vous définissez l'identité de la requête en tant que compte principal (ou utilisateur) de la ressource, puis vous lui attribuez le rôle approprié. Le rôle définit les autorisations dont dispose l'identité dans le contexte de la ressource. Lorsqu'une application ou une ressource est protégée par IAP, seuls les comptes principaux disposant du rôle approprié peuvent y accéder via le proxy.
Par exemple, après l'authentification, IAP applique la stratégie d'autorisation appropriée pour vérifier si le compte principal est autorisé à accéder à la ressource demandée. Si le compte principal dispose du rôle Utilisateur de l'application Web sécurisée par IAP (roles/iap.httpsResourceAccessor
) sur le projet Google Cloud Console où la ressource existe, il est autorisé à accéder à l'application.
Vous pouvez configurer l'accès à votre ressource sécurisée par IAP via la page IAP en ajoutant le compte de service Workflows en tant que compte principal. Pour en savoir plus, consultez la page Gérer l'accès aux ressources sécurisées par IAP.
Ajoutez des informations d'authentification à votre workflow
Par défaut, les requêtes HTTP ne contiennent pas de jetons d'identité ou d'accès pour des raisons de sécurité. Vous devez explicitement ajouter des informations d'authentification à votre définition de workflow. Lorsque vous envoyez des requêtes à un point de terminaison privé, utilisez OIDC pour vous authentifier via IAP.
Pour effectuer une requête HTTP à l'aide d'OIDC, ajoutez une section auth
à la section args
de la définition de votre workflow, après avoir spécifié l'URL.
YAML
- step_A: call: http.get args: url: https://www.example.com/endpoint body: someValue: "Hello World" anotherValue: 123 auth: type: OIDC audience: OIDC_AUDIENCE
JSON
[ { "step_A": { "call": "http.get", "args": { "url": "https://www.example.com/endpoint", "body": { "someValue": "Hello World", "anotherValue": 123 }, "auth": { "type": "OIDC", "audience": "OIDC_AUDIENCE" } } } } ]
Le paramètre audience
vous permet de spécifier l'audience OIDC pour le jeton.
Lorsque vous appelez un point de terminaison pour lequel IAP est activé, vous devez spécifier l'ID client OAuth 2.0 que vous avez configuré pour votre application. Vous pouvez obtenir ces informations sur la page Identifiants.
Étapes suivantes
- Autoriser un workflow à accéder aux ressources Google Cloud
- Accéder aux données de réponse HTTP enregistrées dans une variable