使用 IAM 控制访问权限

Workflows 使用 Identity and Access Management (IAM) 来控制哪些经过身份验证的用户和服务账号可以执行哪些操作。

在开始对 Workflows 资源进行身份验证和授权访问之前,请确保您了解 IAM 的基本概念

本页详细介绍了访问 Workflows 资源所需的权限,包括调用工作流执行的能力。

如需了解如何向工作流授予访问其他服务的权限,请参阅向工作流授予访问 Google Cloud 资源的权限

访问权限控制

无论您以何种方式实现身份验证,请务必了解访问权限控制机制和 Workflows 的可用角色。角色是一组权限,可授予对 Google Cloud 中资源的访问权限。构建生产应用时,请仅向服务账号授予其与适用的 Google Cloud API、功能或资源进行交互所需的角色。

如需详细了解可用的工作流角色,请参阅 Workflows 角色和权限

调用工作流

服务账号既是身份,也是接受 IAM 政策的资源。因此,您可以向服务账号授予角色,然后为其他主账号授予服务账号或某个服务账号父资源上的角色,从而允许他们冒充服务账号。

例如,您可以向服务账号授予 workflows.invoker 角色,以便该账号有权触发您的工作流执行。然后,您可以允许主账号模拟或充当您的服务账号。请注意,工作流服务账号不需要 workflows.invoker 角色,除非工作流调用自身或其他工作流。

如需详细了解服务账号模拟,请参阅服务账号模拟

如需向调用 Workflows 的服务的服务账号授予 Workflows Invoker 角色 (roles/workflows.invoker),以便该服务有权执行工作流并管理执行,请执行以下操作:

控制台

  1. 在 Google Cloud 控制台中,前往服务账号页面:
    前往“服务账号”页面

  2. 选择项目,然后点击创建服务账号

  3. 服务账号名称字段中,输入一个名称,例如 sa-name

  4. 点击创建并继续

  5. 选择角色列表中,依次选择 Workflows > Workflows Invoker

  6. 点击完成

gcloud

  1. 打开终端。

  2. 输入以下命令:

    gcloud projects add-iam-policy-binding PROJECT_ID \
       --member serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
       --role roles/workflows.invoker

    替换以下内容:

    • PROJECT_ID:您的 Google Cloud 项目的 ID。
    • SERVICE_ACCOUNT_NAME 替换为服务账号的名称。