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) com as credenciais adequadas. 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 acesso ou identidade por motivos de segurança motivos. É 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 o Cloud Run, use uma
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:
APIs externas: use um cabeçalho de solicitação
Authorization
para autenticar com uma API de terceiros. Neste documento, consulte Faça solicitações autenticadas para APIs externas.APIs do Google Cloud: se disponível, use uma API do Workflows conector, que fornece automaticamente a exigia autenticação usando a conta de serviço do fluxo de trabalho. Se não for possível usar um conector, usar uma conexão HTTP solicitação com o OAuth 2.0 para se conectar a outras APIs do Google Cloud. Qualquer um A API que termina com o nome do host
.googleapis.com
aceita esta autenticação . Neste documento, consulte Faça solicitações autenticadas para as APIs do Google Cloud.Funções do Cloud Run ou Cloud Run: use o OIDC para se conectar com as funções do Cloud Run ou do Cloud Run. Neste documento, ver Faça solicitações para funções do Cloud Run ou do Cloud Run.
Particular no local, Compute Engine, Google Kubernetes Engine (GKE), ou outros endpoints do Google Cloud: use o Identity-Aware Proxy (IAP) com o OIDC para aplicar políticas de controle de acesso aos endpoints. Para mais informações, consulte Invocar o Private On‐Prem, o Compute Engine, o GKE ou outro endpoint e aprenda a se autenticar em um recurso protegido pelo IAP usando usuário ou conta 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 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" } } } } ]
scopes
é opcional, mas pode ser usada para especificar o OAuth 2.0.
escopos para o token. Substitua OAUTH_SCOPE
por uma
string ou lista de strings. Espaço e strings separadas por vírgula também são
suporte. 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 às funções do Cloud Run ou ao Cloud Run, 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" } } } } ]
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 com entrada restritas ao tráfego interno. Com essa configuração, seus serviços são inacessível na Internet, mas pode ser acessado no Workflows.
Para mais informações, consulte Invocar funções do Cloud Run ou Cloud Run.