使用 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 報表中繼資料、報表資料和作業。

授予 IAM 角色

您可以使用Google Cloud 控制台或 Google Cloud CLI,將 IAM 角色授予主體。

控制台

  1. 前往 Google Cloud 控制台的「IAM」(身分與存取權管理) 頁面。

    前往「IAM」頁面

  2. 按一下 「授予存取權」

  3. 在「New principals」(新增主體) 欄位中,輸入要授予角色的主體電子郵件地址。

  4. 按一下「Select a role」(選取角色) 下拉式選單。

  5. 篩選「應用程式最佳化」角色,然後選取要授予的角色,例如「應用程式最佳化管理員」或「應用程式最佳化檢視者」。

  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:專案的 ID。 Google Cloud
    • PRINCIPAL:主體的 ID,例如 user:my-user@example.comgroup:my-group@example.com。請參閱「主體 ID」。
    • ROLE_NAME:要授予的角色,例如 roles/appoptimize.adminroles/appoptimize.viewer

例如,如要將應用程式最佳化管理員角色授予專案 my-appoptimize-project 的使用者 test-user@example.com

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

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

App Optimize 管理員

App Optimize 管理員可全面控管 App Optimize API 資源, 並具備 App Optimize 檢視者權限。

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

App Optimize 檢視者

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 權限,用於建立報表資源。應用程式最佳化管理員 (roles/appoptimize.admin) 角色已具備此權限。

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

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

    • CPU 和記憶體使用率指標:範圍內資源的監控檢視器 (roles/monitoring.viewer)。

    • 如要查看 App Hub 應用程式範圍和維度,您必須是應用程式 App Hub 主專案的應用程式管理檢視者 (roles/apphub.appManagementViewer)。

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

讀取報表資料的權限

成功建立報表後,主體只需要 appoptimize.reports.getData 權限即可讀取產生的資料。這項權限可套用至報表建立所在的專案或報表本身,且「應用程式最佳化管理員」和「應用程式最佳化檢視者」角色都具備這項權限。

後續步驟