Ative o IAP para invocar um endpoint particular no local, no Compute Engine, no GKE ou em outro endpoint

É possível invocar um endpoint particular no local, Compute Engine, Google Kubernetes Engine (GKE) ou outro endpoint do Google Cloud dos Workflows ativando o Identity-Aware Proxy (IAP) para o endpoint. O IAP é usado para aplicar políticas de controle de acesso e permite estabelecer uma camada de autorização central para aplicativos acessados por HTTPS, para que você possa usar um modelo de controle de acesso no nível do aplicativo em vez de depender de firewalls no nível da rede. Para mais informações, consulte a Visão geral do IAP e os seguintes tópicos:

Também é possível direcionar um endpoint particular para chamadas HTTP da execução do fluxo de trabalho usando o registro de serviço do Diretório de serviços com os Workflows. Ao criar um endpoint particular em uma rede de nuvem privada virtual (VPC), o endpoint pode estar em conformidade com o VPC Service Controls. Para mais informações, consulte Invocar um endpoint particular compatível com o VPC Service Controls.

Fazer uma solicitação HTTP

A chamada ou invocação de um endpoint particular do Workflows é feita por uma solicitação HTTP. Os métodos de solicitação HTTP mais comuns têm um atalho de chamada (como http.get e http.post), mas é possível fazer qualquer tipo de solicitação HTTP definindo o campo call como http.request e especificando o tipo de solicitação usando o campo method. Para mais informações, consulte Fazer uma solicitação HTTP.

Usar uma conta de serviço com as permissões necessárias

Ao fazer solicitações para outros serviços do Google Cloud, seu fluxo de trabalho precisa estar associado a uma conta de serviço que tenha recebido um ou mais papéis do Identity and Access Management (IAM) que contenham as permissões necessárias para acessar os recursos solicitados. Para saber qual conta de serviço está associada a um fluxo de trabalho atual, consulte Verificar a conta de serviço associada a um fluxo de trabalho.

Ao configurar uma conta de serviço, associe a identidade solicitante ao recurso a que você quer conceder acesso. Você torna a identidade solicitante um principal, ou usuário, do recurso e, em seguida, atribui o papel apropriado. O papel define quais permissões a identidade tem no contexto do recurso. Quando um aplicativo ou recurso é protegido pelo IAP, ele só pode ser acessado por meio do proxy por principais que tenham o papel correto.

Por exemplo, após a autenticação, o IAP aplica a política de permissão relevante para verificar se o principal está autorizado a acessar o recurso solicitado. Se o principal tiver o papel Usuário do app da Web protegido pelo IAP (roles/iap.httpsResourceAccessor) no projeto do console do Google Cloud em que o recurso existe, ele estará autorizado a acessar o aplicativo.

Para configurar o acesso ao recurso protegido pelo IAP, acesse a página do IAP. Basta adicionar a conta de serviço do Workflows como principal. Para mais informações, consulte Como gerenciar o acesso a recursos protegidos pelo IAP.

Adicionar informações de autenticação ao fluxo de trabalho

Por padrão, as solicitações HTTP não contêm tokens de identidade ou acesso por motivos de segurança. É necessário adicionar as informações de autenticação à definição do fluxo de trabalho explicitamente. Ao fazer solicitações para um endpoint particular, use o OIDC para autenticar pelo IAP.

Para fazer uma solicitação HTTP usando o OIDC, adicione uma seção auth à seção args da definição do fluxo de trabalho, depois de especificar o 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"
            }
          }
        }
      }
    ]
      

É possível usar o parâmetro audience para especificar o público-alvo do OIDC para o token. Ao invocar um endpoint ativado para IAP, especifique o ID do cliente OAuth 2.0 configurado para o aplicativo. Isso pode ser acessado na página Credenciais.

A seguir