使用 IAM 控制访问权限

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

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

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

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

访问权限控制

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

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

调用工作流

服务账号既是接受 IAM 政策的身份,也是接受 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 替换为服务账号的名称。