Appelez un point de terminaison privé sur site, Compute Engine, GKE ou un autre point de terminaison en activant IAP

Vous pouvez appeler un point de terminaison privé sur site, Compute Engine, Google Kubernetes Engine (GKE) ou un autre point de terminaison Google Cloud à partir de Workflows en activant Identity-Aware Proxy (IAP) pour le point de terminaison. IAP permet d'appliquer des stratégies de contrôle d'accès et vous permet d'établir une couche d'autorisation centrale pour les applications accessibles via HTTPS. Vous pouvez ainsi utiliser un modèle de contrôle des accès au niveau des applications au lieu d'utiliser des pare-feu au niveau du réseau. Pour en savoir plus, consultez la présentation d'IAP et les pages suivantes:

Vous pouvez également cibler un point de terminaison privé pour les appels HTTP provenant de l'exécution de votre workflow à l'aide du registre des services de l'Annuaire des services avec Workflows. La création d'un point de terminaison privé au sein d'un réseau cloud privé virtuel (VPC) peut être conforme à VPC Service Controls. Pour en savoir plus, consultez la section Appeler un point de terminaison privé compatible avec VPC Service Controls.

Envoyer une requête HTTP

L'appel ou l'appel d'un point de terminaison privé à partir de Workflows s'effectue via une requête HTTP. Les méthodes de requête HTTP les plus courantes possèdent un raccourci d'appel (tel que 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.

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 plusieurs rôles Identity and Access Management (IAM) avec les autorisations requises pour accéder aux ressources demandées. Pour savoir quel compte de service est associé à un workflow existant, consultez la section Vérifier le compte de service associé à un workflow.

Lors de la configuration d'un compte de service, vous associez l'identité demandeur à la ressource à laquelle vous souhaitez lui donner accès. Vous faites de cette identité un compte principal, ou un 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 règle 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 de la console Google Cloud hébergeant la ressource, 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

Pour des raisons de sécurité, les requêtes HTTP ne contiennent par défaut aucun jeton d'identité ou d'accès. 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 l'authentification 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 pour le jeton. Lorsque vous appelez un point de terminaison sur lequel IAP est activé, 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