使用 IAM 进行访问权限控制

App Optimize API 使用 Identity and Access Management (IAM) 来控制对其资源(例如报告和操作)的访问权限。借助 IAM,您可以授予对特定 App Optimize API 资源的精细访问权限,并防止对其他资源进行不必要的访问。

本文档介绍了适用于 App Optimize API 的 IAM 权限和角色。

权限概览

有了权限,用户便可对 App Optimize API 资源执行特定操作。下表列出了 App Optimize API 的权限:

权限 说明
appoptimize.operations.cancel 取消长时间运行的操作。
appoptimize.operations.delete 删除长时间运行的操作。
appoptimize.operations.get 获取长时间运行的操作的状态。
appoptimize.operations.list 列出长时间运行的操作。
appoptimize.reports.create 创建 App Optimize API 报告资源。
appoptimize.reports.delete 删除 App Optimize API 报告资源。
appoptimize.reports.get 读取 App Optimize API 报告资源的配置元数据。这不会授予对报告数据的访问权限。
appoptimize.reports.getData 读取 App Optimize API 报告中包含的数据。
appoptimize.reports.list 列出项目中的 App Optimize API 报告资源。

预定义角色

IAM 提供预定义角色,这些角色可授予一组相关权限。以下角色适用于 App Optimize API,并在以下小节中进行了说明:

角色 职位 说明
roles/appoptimize.admin App Optimize Admin 对 App Optimize API 报告和操作拥有完全控制权。
roles/appoptimize.viewer App Optimize Viewer 拥有对 App Optimize API 报告元数据、报告数据和操作的读取权限。

由于 App Optimize API 处于预览版阶段,因此这些角色可能不会显示在 Google Cloud 控制台中。 如需授予这些角色,请使用 Google Cloud CLI。如果您尚未安装并初始化 Google Cloud CLI,请执行此操作。

如需向用户授予 App Optimize Admin 角色 (roles/appoptimize.admin),请运行以下命令:

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member="user:USER_EMAIL" \
    --role="roles/appoptimize.admin"

如需向用户授予 App Optimize Viewer 角色 (roles/appoptimize.viewer),请运行以下命令:

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member="user:USER_EMAIL" \
    --role="roles/appoptimize.viewer"

替换以下内容:

  • PROJECT_ID:将拥有报告资源的项目 ID。 Google Cloud
  • USER_EMAIL:您要向其授予角色的用户的电子邮件地址。

如需详细了解如何授予角色,请参阅 管理对项目、文件夹和组织的访问权限

App Optimize Admin

授予对 App Optimize API 资源的完全控制权,并包括授予 App Optimize Viewer 的权限。

  • 角色名称:roles/appoptimize.admin
  • 包含的权限:
    • appoptimize.operations.*
    • appoptimize.reports.*

App Optimize Viewer

授予读取 App Optimize API 报告、其元数据和操作的权限。

  • 角色名称:roles/appoptimize.viewer
  • 包含的权限:
    • appoptimize.operations.get
    • appoptimize.operations.list
    • appoptimize.reports.get
    • appoptimize.reports.getData
    • appoptimize.reports.list

创建报告的权限

如需创建报告,用户、服务帐号或其他主账号必须具备以下权限:

  • 在将创建报告资源的项目中,拥有 appoptimize.reports.create 权限,该权限通常由 App Optimize Admin (roles/appoptimize.admin) 角色授予。

  • 在报告中限定范围的所有项目上,拥有 billing.resourceCosts.get 权限。此权限由 Billing Account Viewer (roles/billing.viewer) 或基本 Viewer (roles/viewer) 等角色提供。

  • 拥有访问报告范围、维度和指标所涵盖的数据源的权限。App Optimize API 会在创建报告时检查这些权限。授予此数据源访问权限的角色包括:

    • 对于 CPU 和内存利用率指标,拥有限定范围的资源的 Monitoring Viewer (roles/monitoring.viewer) 角色。

    • 对于 App Hub 应用范围和维度,拥有应用的 App Hub 宿主项目的 App Management Viewer (roles/apphub.appManagementViewer) 角色。

    如果您要生成有关 App Hub 应用的报告(该应用可能由多个项目组成),则必须拥有该应用的所有关联项目的必要监控和结算权限,才能创建报告。

读取报告数据的权限

成功创建报告后,正文只需具备以下权限即可读取生成的数据:

  • 在创建报告的项目中,或在报告本身中,拥有 appoptimize.reports.getData 权限。此权限包含在 roles/appoptimize.viewer 角色中。

后续步骤