Para fazer solicitações HTTP autenticadas, seu fluxo de trabalho precisa estar associado a uma conta de serviço (identificada pelo endereço de e-mail) que tenha as credenciais apropriadas. Para mais informações sobre como anexar uma conta de serviço do Identity and Access Management (IAM) a um fluxo de trabalho e conceder a ela as permissões necessárias para acessar recursos, consulte Conceder permissão a um fluxo de trabalho para acessar 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 o Workflows e um destino HTTP que exige essa autenticação, o Workflows usa um token no cabeçalho de autorização com base nas credenciais da conta de serviço anexada 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 um token de acesso (OAuth 2.0).
Para fazer uma solicitação autenticada em um fluxo de trabalho, siga uma das instruções abaixo, dependendo do serviço que você está chamando:
APIs externas: use um cabeçalho de solicitação
Authorization
para autenticar com uma API de terceiros. Neste documento, consulte Fazer solicitações autenticadas para APIs externas.APIsGoogle Cloud : se disponível, use um conector do Workflows, que fornece automaticamente a autenticação necessária usando a conta de serviço do fluxo de trabalho. Se não for possível usar um conector, use uma solicitação HTTP com OAuth 2.0 para se conectar a outras APIs Google Cloud . Qualquer API que termine com um nome de host
.googleapis.com
aceita esse método de autenticação. Neste documento, consulte Fazer solicitações autenticadas para APIs Google Cloud .Funções do Cloud Run ou Cloud Run: use o OIDC para se conectar com o Cloud Run ou as funções do Cloud Run. Neste documento, consulte Fazer solicitações para o Cloud Run ou o Cloud Run functions.
Endpoints particulares locais, do Compute Engine, do Google Kubernetes Engine (GKE) ou de outros Google Cloud : use o Identity-Aware Proxy (IAP) com OIDC para aplicar políticas de controle de acesso aos seus endpoints. Para mais informações, consulte Invocar endpoints particulares locais, do Compute Engine, do GKE ou de outros serviços e saiba como autenticar um recurso protegido pela IAP usando uma conta de usuário ou de serviço.
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 APIs do 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 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" } } } } ]
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
.
Fazer 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 autenticar.
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
solicitação é 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" } } } } ]
audience
é opcional, mas pode ser usada para especificar o público-alvo do OIDC
para o token. Por padrão, OIDC_AUDIENCE
é definido com o mesmo valor de url
.
É possível que o Workflows invoque funções ou serviços do Cloud Run com entrada restrita 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.