使用 IAM 控制访问权限

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

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

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

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

访问权限控制

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

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

调用 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 替换为服务账号的名称。