使用 IAM 控制访问权限

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

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

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

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

访问权限控制

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

如需详细了解可用的工作流角色,请参阅 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 替换为服务账号的名称。