使用 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 管理員 全面掌控 App Optimize API 報表和作業。
roles/appoptimize.viewer App Optimize 檢視者 具備 App Optimize API 報表中繼資料、報表資料和作業的讀取權限。

由於 App Optimize API 處於預先發布階段,這些角色可能不會顯示在 Google Cloud 控制台中。 如要授予這些角色,請使用 Google Cloud CLI。如果尚未安裝,請安裝並初始化 Google Cloud CLI

如要將「應用程式最佳化管理員」角色 (roles/appoptimize.admin) 授予使用者,請執行下列指令:

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

如要將 App Optimize 檢視者角色 (roles/appoptimize.viewer) 授予使用者,請執行下列指令:

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

更改下列內容:

  • PROJECT_ID:擁有報表資源的 Google Cloud 專案 ID。
  • USER_EMAIL:要授予角色的使用者電子郵件地址。

如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。

App Optimize 管理員

具備 App Optimize API 資源的完整控制權,並包含授予 App Optimize 檢視者的權限。

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

App Optimize 檢視者

授予讀取 App Optimize API 報表、中繼資料和作業的權限。

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

建立報表的權限

如要建立報表,使用者、服務帳戶或其他主體必須具備下列條件:

  • 專案的 appoptimize.reports.create 權限 (通常由應用程式最佳化管理員 (roles/appoptimize.admin) 角色授予),用於建立報表資源。

  • 報表範圍內所有專案的 billing.resourceCosts.get 權限。「帳單帳戶檢視者」角色 (roles/billing.viewer) 或基本「檢視者」角色 (roles/viewer) 均提供這項權限。

  • 存取報表範圍、維度和指標所涵蓋資料來源的權限。App Optimize API 會在建立報表時檢查這些權限。可授予這項資料來源存取權的角色包括:

    • 如要查看 CPU 和記憶體使用率指標,您必須具備範圍內資源的 Monitoring 檢視者 (roles/monitoring.viewer) 角色。

    • 如要查看 App Hub 應用程式範圍和維度,您必須在應用程式的 App Hub 主專案中,具備 App Management Viewer (roles/apphub.appManagementViewer) 角色。

    如果您要產生應用程式中心應用程式的報表 (這類應用程式可能由多個專案組成),您必須擁有所有相關聯專案的必要監控和帳單權限,才能建立報表。

讀取報表資料的權限

成功建立報表後,主體只需要下列權限,即可讀取產生的資料:

  • appoptimize.reports.getData 專案 (報表是在該專案中建立) 或報表本身。此權限包含在 roles/appoptimize.viewer 角色中。

後續步驟