使用 IAM 进行访问权限控制

如需限制项目或组织内用户的访问权限,您可以为适用于 Apache Flink 的 BigQuery 引擎使用 Identity and Access Management (IAM) 角色。您可以控制对 BigQuery Engine 中 Apache Flink 相关资源的访问权限,而不是向用户授予整个 Google Cloud 项目的 Viewer、Editor 或 Owner 角色。

本页重点介绍了如何使用适用于 Apache Flink 的 BigQuery 引擎的 IAM 角色。如需详细了解 IAM 及其功能,请参阅 IAM 文档

适用于 Apache Flink 的 BigQuery 引擎的每种方法都要求调用者拥有必要的权限。如需查看 BigQuery Engine for Apache Flink 支持的权限和角色的列表,请参阅本页的预定义角色部分。

角色类型

与其他 Google Cloud 产品类似,适用于 Apache Flink 的 BigQuery Engine 支持三种类型的角色:

  • 基本角色:基本角色是在引入 IAM 之前就已存在的高度宽松角色。您可以使用基本角色向主账号授予对 Google Cloud 资源的广泛访问权限。在生产环境中,如果有替代角色,请勿授予基本角色。应授予满足您需求的最受限的预定义角色,或创建自定义角色。如需详细了解基本角色,请参阅基本角色

  • 预定义角色:预定义角色可授予对特定Google Cloud 资源的精细访问权限。这些角色由 Google 创建和维护。Google 会根据需要自动更新其权限,例如Google Cloud 添加新功能或服务时。如需详细了解预定义角色,请参阅预定义角色。本页面包含适用于 Apache Flink 的 BigQuery Engine 预定义角色。

  • 自定义角色:自定义角色可帮助您实施最低权限的原则,因为它们有助于确保组织中的主账号只能有他们需要的权限。仅允许少数高度受信任的主账号修改自定义角色。如果主账号可以修改项目或组织中的自定义角色,则可以向该项目或组织中的任何自定义角色添加任何权限。向主账号授予任何自定义角色后,他们就可以使用该自定义角色获取不受限制的访问权限。如需详细了解自定义角色,请参阅自定义角色

所需权限

下表列出了调用者调用每种方法必须具备的权限:

方法 所需权限
managedflink.deployments.create managedflink.deployments.create
managedflink.deployments.update managedflink.deployments.update
managedflink.deployments.delete managedflink.deployments.delete
managedflink.deployments.list managedflink.deployments.list
managedflink.deployments.get managedflink.deployments.get
managedflink.jobs.create managedflink.jobs.create
managedflink.jobs.update managedflink.jobs.update
managedflink.jobs.delete managedflink.jobs.delete
managedflink.jobs.list managedflink.jobs.list
managedflink.jobs.get managedflink.jobs.get
managedflink.locations.list managedflink.locations.list
managedflink.locations.get managedflink.locations.get
managedflink.operations.cancel managedflink.operations.cancel
managedflink.operations.delete managedflink.operations.delete
managedflink.operations.list managedflink.operations.list
managedflink.operations.get managedflink.operations.get
managedflink.sessions.create managedflink.sessions.create
managedflink.sessions.update managedflink.sessions.update
managedflink.sessions.delete managedflink.sessions.delete
managedflink.sessions.list managedflink.sessions.list
managedflink.sessions.get managedflink.sessions.get

预定义角色

下表列出了适用于 Apache Flink 的 BigQuery 引擎 IAM 预定义角色,以及每个角色包含的适用于 Apache Flink 的 BigQuery 引擎相关权限的列表。每个权限适用于特定的资源类型。如需查看权限列表,请参阅 Google Cloud 控制台中的角色页面

角色 说明 权限
托管式 Flink 管理员
roles/managedflink.admin
对适用于 Apache Flink 的 BigQuery 引擎资源的完整访问权限。 此角色可提供以下权限:
  • managedflink.operations.delete
  • managedflink.operations.cancel
  • managedflink.deployments.create
  • managedflink.deployments.update
  • managedflink.deployments.delete
  • managedflink.jobs.create
  • managedflink.jobs.update
  • managedflink.jobs.delete
  • managedflink.sessions.create
  • managedflink.sessions.update
  • managedflink.sessions.delete
此角色包含以下角色:
  • roles/managedflink.viewer
托管式 Flink 开发者
roles/managedflink.developer
拥有对适用于 Apache Flink 的 BigQuery 引擎作业的完整访问权限以及对部署的读取权限。 此角色可提供以下权限:
  • managedflink.jobs.create
  • managedflink.jobs.update
  • managedflink.jobs.delete
  • managedflink.sessions.create
  • managedflink.sessions.update
  • managedflink.sessions.delete
此角色包含以下角色:
  • roles/managedflink.viewer
托管式 Flink Viewer
roles/managedflink.viewer
对适用于 Apache Flink 的 BigQuery 引擎资源的只读权限。 此角色可提供以下权限:
  • resourcemanager.projects.list
  • resourcemanager.projects.get
  • managedflink.operations.list
  • managedflink.operations.get
  • managedflink.locations.list
  • managedflink.locations.get
  • managedflink.deployments.list
  • managedflink.deployments.get
  • managedflink.jobs.list
  • managedflink.jobs.get
  • managedflink.sessions.list
  • managedflink.sessions.get

创建部署和作业

要创建部署,roles/managedflink.admin 角色需具备运行和检查部署所需的一组最低权限。您还需要启用 Compute Engine API 才能创建部署。

要创建作业,roles/managedflink.developer 角色需具备运行和检查作业所需的一组最低权限。

分配角色

要管理组织级层角色,请参阅使用 IAM 对组织进行访问权限控制

要设置项目级层角色,请参阅授予、更改和撤消对资源的访问权限