É possível invocar um endpoint particular local, do Compute Engine, do Google Kubernetes Engine (GKE) ou outro endpoint do Google Cloud em fluxos de trabalho 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. Assim, é possível usar um modelo de controle de acesso no nível do aplicativo em vez de confiar em firewalls no nível da rede. Para mais informações, consulte a Visão geral do IAP e o seguinte:
- Ativar o IAP para o App Engine
- Ativar o IAP para o Cloud Run
- Ativar o IAP para o Compute Engine
- Ativar o IAP para o GKE
- Ativar o IAP para apps no local
Como alternativa, você pode segmentar um endpoint particular para chamadas HTTP da execução do fluxo de trabalho usando o registro de serviço do Service Directory com o Workflows. Ao criar um endpoint particular em uma rede de nuvem privada virtual (VPC), ele pode ser compatível com o VPC Service Controls. Para mais informações, consulte Invocar um endpoint privado 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 com um ou mais papéis do Identity and Access Management (IAM) que contêm 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, você associa a identidade solicitante o recurso ao qual deseja conceder acesso, torna a identidade solicitante um principal ou usuário do recurso e, em seguida, atribuir o papel apropriado. O papel define quais permissões a identidade tem no contexto da recurso. Quando um aplicativo ou recurso é protegido pelo IAP, ele só pode ser acessado por meio do proxy por principais que têm o papel correto.
Por exemplo, após a autenticação, o IAP aplica
política de permissão para verificar se o principal tem autorização para acessar o
recurso. 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
onde o recurso existe, eles têm autorização para acessar o aplicativo.
É possível configurar o acesso ao recurso protegido pelo IAP usando a página do IAP adicionando 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 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. Ao fazer solicitações para um endpoint particular, use o OIDC para fazer a autenticação 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 do token.
Ao invocar um endpoint ativado para o IAP, você precisa especificar
ID do cliente OAuth 2.0 que você configurou para seu aplicativo. Isso pode ser
obtidos na página Credenciais.
A seguir
- Conceder permissão a um fluxo de trabalho para acessar recursos do Google Cloud
- Acessar dados de resposta HTTP salvos em uma variável