Appeler un point de terminaison sécurisé par IAP

Vous pouvez utiliser Workflows pour appeler un point de terminaison pour lequel Identity-Aware Proxy (IAP) a été activé. Le point de terminaison peut être un point de terminaisonGoogle Cloud sur site, Compute Engine, Google Kubernetes Engine (GKE) ou autre.

IAP valide l'identité et applique l'autorisation au niveau de l'application. Vous pouvez donc utiliser un modèle de contrôle des accès au niveau de l'application au lieu de vous servir de pare-feu au niveau du réseau. Lorsqu'une application ou une ressource est protégée par IAP, seuls les comptes principaux disposant du rôle IAM (Identity and Access Management) approprié peuvent y accéder via le proxy.

Pour en savoir plus, consultez la présentation d'IAP et les guides suivants :

Envoyer une requête HTTP

Les appels d'un point de terminaison à partir de Workflows sont effectués via une requête HTTP. Les méthodes de requête HTTP les plus courantes disposent d'un raccourci d'appel (tel que http.get et http.post), mais vous pouvez effectuer tous types 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 Envoyer une requête HTTP.

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 Vérifier le compte de service associé à un workflow.

Lorsque vous configurez un compte de service, vous associez l'identité à l'origine de la requête à la ressource à laquelle vous souhaitez lui accorder l'accès. Vous choisissez comme identité principale (ou utilisateur) de la ressource à l'origine de la requête, 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) dans le projet de la console Google Cloud comportant la ressource, il est autorisé à accéder à l'application.

Vous pouvez configurer l'accès à votre ressource sécurisée par IAP sur la page IAP en ajoutant le compte de service Workflows en tant que principal. Pour en savoir plus, consultez 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é ni 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, 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"
            }
          }
        }
      }
    ]
      

Vous pouvez utiliser le paramètre audience pour spécifier l'audience OIDC du jeton. Lorsque vous appelez un point de terminaison compatible IAP, vous devez spécifier l'ID client OAuth 2.0 que vous avez configuré pour votre application. Vous pouvez l'obtenir sur la page Identifiants.

Étapes suivantes