Para fazer pedidos HTTP autenticados, o seu fluxo de trabalho tem de estar associado a uma conta de serviço (identificada pelo respetivo endereço de email) que tenha as credenciais adequadas. Para mais informações sobre como anexar uma conta de serviço de gestão de identidade e de acesso (IAM) a um fluxo de trabalho e conceder-lhe as autorizações necessárias para aceder a recursos, consulte o artigo Conceda uma autorização de fluxo de trabalho para aceder a Google Cloud recursos.
Símbolos de autenticação
Por predefinição, os pedidos HTTP não contêm tokens de identidade nem de acesso por motivos de segurança. Tem de adicionar explicitamente informações de autenticação à definição do fluxo de trabalho.
Para autenticar entre os fluxos de trabalho e um destino HTTP que requer tal autenticação, os fluxos de trabalho usam um token no cabeçalho de autorização com base nas credenciais da conta de serviço anexada ao fluxo de trabalho e enviam o token através de HTTPS para o serviço de destino. Quando se ligar a funções do Cloud Run ou ao Cloud Run, use um token de ID (OIDC). Para APIs alojadas em
googleapis.com
, use uma
chave de acesso (OAuth 2.0).
Para fazer um pedido autenticado a partir de um fluxo de trabalho, faça um dos seguintes passos, consoante o serviço que está a chamar:
APIs externas: use um cabeçalho de pedido
Authorization
para autenticar com uma API de terceiros. Neste documento, consulte a secção Faça pedidos autenticados a APIs externas.Google Cloud APIs: se estiver disponível, use um conetor do Workflows, que fornece automaticamente a autenticação necessária através da conta de serviço do fluxo de trabalho. Se não conseguir usar um conetor, use um pedido HTTP com o OAuth 2.0 para estabelecer ligação a outras Google Cloud APIs. Qualquer API que termine com um nome do anfitrião de
.googleapis.com
aceita este método de autenticação. Neste documento, consulte a secção Faça pedidos autenticados às Google Cloud APIs.Funções do Cloud Run ou Cloud Run: use o OIDC para estabelecer ligação com o Cloud Run ou as funções do Cloud Run. Neste documento, consulte Faça pedidos para o Cloud Run ou as funções do Cloud Run.
Privados no local, Compute Engine, Google Kubernetes Engine (GKE) ou outros Google Cloud pontos finais: use o Identity-Aware Proxy (IAP) com o OIDC para aplicar políticas de controlo de acesso aos seus pontos finais. Para mais informações, consulte Invocar um ponto final privado no local, do Compute Engine, do GKE ou outro e saiba como autenticar-se num recurso protegido pelo IAP a partir de uma conta de utilizador ou de serviço.
Fazer pedidos autenticados a APIs externas
Se estiver a integrar uma API de terceiros, inclua um cabeçalho de pedido Authorization
com as credenciais necessárias para realizar a autenticação. Por exemplo, inclua um token de ID num cabeçalho Authorization: Bearer ID_TOKEN
no pedido ao serviço. Para mais informações, consulte a documentação do fornecedor da API.
Faça pedidos autenticados a Google Cloud APIs
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. Google Cloud Quando usa este método de autenticação, o fluxo de trabalho é autenticado como a respetiva conta de serviço associada. Para fazer um pedido HTTP através do protocolo OAuth 2.0, adicione uma secção auth
à secção args
da definição do fluxo de trabalho, depois de especificar
o URL. Neste exemplo, é enviado um pedido à API Compute Engine para parar 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" } } } } ]
scopes
é opcional, mas pode ser usada para especificar âmbitos do OAuth 2.0 para o token. Substitua OAUTH_SCOPE
por uma string ou uma lista de strings. As strings separadas por espaços e vírgulas também são suportadas. Por predefinição, o valor está definido como
https://www.googleapis.com/auth/cloud-platform
.
Faça pedidos a funções do Cloud Run ou ao Cloud Run
Quando fizer pedidos a funções do Cloud Run ou ao Cloud Run, use o OIDC para autenticar.
Para fazer um pedido HTTP através do OIDC, adicione uma secção auth
à secção args
da definição do fluxo de trabalho, depois de especificar o URL. Neste exemplo, é enviado um pedido 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" } } } } ]
audience
é opcional, mas pode ser usada para especificar o público-alvo do OIDC para o token. Por predefinição, OIDC_AUDIENCE
está definido com o mesmo valor que url
.
Tenha em atenção que é possível que os fluxos de trabalho invoquem funções do Cloud Run ou serviços do Cloud Run com entrada restrita ao tráfego interno. Com esta configuração, os seus serviços não são acessíveis a partir da Internet, mas podem ser acedidos a partir dos fluxos de trabalho.
Para mais informações, consulte o artigo Invocar funções do Cloud Run ou o Cloud Run.