Fazer solicitações autenticadas a partir de um fluxo de trabalho

Para fazer solicitações HTTP autenticadas, seu fluxo de trabalho deve estar associado a uma conta de serviço (identificada pelo endereço de e-mail) que tem o endereço de e-mail credenciais. Para mais informações sobre como anexar um projeto do Identity and Access Management (IAM) conta de serviço a um fluxo de trabalho e concedendo a ele as permissões necessárias para acessar recursos, consulte Conceda permissão a um fluxo de trabalho para acessar os recursos do Google Cloud.

Tokens de autenticação

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.

Para autenticar entre Workflows e um destino HTTP que exige essa do Google, o Workflows usa um token na autorização com base nas credenciais da conta de serviço anexadas ao fluxo de trabalho e envia o token usando HTTPS para o serviço de destino. Ao se conectar com funções do Cloud Run ou com o Cloud Run, use um token de ID (OIDC). Para APIs hospedadas em googleapis.com, use uma token de acesso (OAuth 2.0).

Para fazer uma solicitação autenticada dentro de um fluxo de trabalho, execute um dos a seguir, dependendo do serviço chamado:

Fazer solicitações autenticadas para APIs externas

Se você estiver integrando uma API de terceiros, inclua um cabeçalho de solicitação Authorization com as credenciais necessárias para executar a autenticação. Por exemplo, inclua um token de ID em um cabeçalho Authorization: Bearer ID_TOKEN na solicitação para o serviço. Para saber mais, consulte a documentação do provedor da API.

Fazer solicitações autenticadas para as APIs Google Cloud

A conta de serviço de um fluxo de trabalho pode gerar tokens OAuth 2.0 que o fluxo de trabalho pode usar para autenticar em qualquer API do Google Cloud. Quando você usa esse método de autenticação, a conta de serviço associada é autenticada pelo fluxo de trabalho. Para fazer uma solicitação HTTP usando o protocolo OAuth 2.0, adicione uma seção auth à seção args da definição do fluxo de trabalho, depois de especificar o URL. Neste exemplo, uma solicitação é enviada à API Compute Engine para interromper uma VM:

YAML

  - step_A:
      call: http.post
      args:
          url: https://compute.googleapis.com/compute/v1/projects/myproject1234/zones/us-central1-b/instances/myvm001/stop
          auth:
              type: OAuth2
              scopes: OAUTH_SCOPE
    

JSON

    [
      {
        "step_A": {
          "call": "http.post",
          "args": {
            "url": "https://compute.googleapis.com/compute/v1/projects/myproject1234/zones/us-central1-b/instances/myvm001/stop",
            "auth": {
              "type": "OAuth2",
              "scopes": "OAUTH_SCOPE"
            }
          }
        }
      }
    ]
      
A chave scopes é opcional, mas pode ser usada para especificar escopos do OAuth 2.0 para o token. Substitua OAUTH_SCOPE por uma string ou lista de strings. Strings separadas por espaços e vírgulas também são aceitas. Por padrão, o valor é definido como https://www.googleapis.com/auth/cloud-platform.

Faça solicitações para funções do Cloud Run ou para o Cloud Run

Ao fazer solicitações para funções do Cloud Run ou para o Cloud Run, use o OIDC para autenticação.

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. Neste exemplo, uma é enviada para invocar uma função do Cloud Run:

YAML

  - step_A:
      call: http.get
      args:
          url: https://us-central1-project.cloudfunctions.net/functionA
          query:
              firstNumber: 4
              secondNumber: 6
              operation: sum
          auth:
              type: OIDC
              audience: OIDC_AUDIENCE
    

JSON

    [
      {
        "step_A": {
          "call": "http.get",
          "args": {
            "url": "https://us-central1-project.cloudfunctions.net/functionA",
            "query": {
              "firstNumber": 4,
              "secondNumber": 6,
              "operation": "sum"
            },
            "auth": {
              "type": "OIDC",
              "audience": "OIDC_AUDIENCE"
            }
          }
        }
      }
    ]
      
A chave audience é opcional, mas pode ser usada para especificar o OIDC público para o token. Por padrão, OIDC_AUDIENCE é definido com o mesmo valor que url.

É possível que o Workflows chame Funções do Cloud Run ou serviços do Cloud Run que têm entrada restritas ao tráfego interno. Com essa configuração, seus serviços são inacessíveis na Internet, mas podem ser acessados no Workflows.

Para mais informações, consulte Invocar funções do Cloud Run ou o Cloud Run.

A seguir