使用 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 报告元数据、报告数据和 操作的读取权限。

授予 IAM 角色

您可以使用 Google Cloud 控制台或 Google Cloud CLI 向主账号授予 IAM 角色。

控制台

  1. 在 Google Cloud 控制台中,前往 IAM 页面。

    进入 IAM

  2. 点击 授予访问权限

  3. 新的主账号 字段中,输入要授予角色的主账号的电子邮件地址。

  4. 点击选择角色 下拉菜单。

  5. 过滤 App Optimize 角色,然后选择要授予的角色,例如 App Optimize Admin 或 App Optimize Viewer。

  6. 点击保存

gcloud

  1. 如果您尚未安装和初始化 Google Cloud CLI,请执行此操作。

  2. 使用 gcloud projects add-iam-policy-binding 命令授予角色:

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="PRINCIPAL" \
        --role="ROLE_NAME"
    

    替换以下内容:

    • PROJECT_ID:您的 Google Cloud 项目的 ID。
    • PRINCIPAL:主账号的标识符,例如 user:my-user@example.comgroup:my-group@example.com。 请参阅主账号标识符
    • ROLE_NAME:要授予的角色,例如 roles/appoptimize.adminroles/appoptimize.viewer

例如,如需在项目 my-appoptimize-project 中向用户 test-user@example.com 授予 App Optimize Admin 角色,请运行以下命令:

gcloud projects add-iam-policy-binding my-appoptimize-project \
    --member="user:test-user@example.com" \
    --role="roles/appoptimize.admin"

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

App Optimize Admin

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

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

App Optimize Viewer

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 权限即可读取生成的数据。此权限可以位于创建报告的项目中,也可以位于报告本身中,并且包含在 App Optimize Admin 和 App Optimize Viewer 角色中。

后续步骤