建立並執行評估

您可以使用 Workload Manager 建立及執行自動化評估作業,依據業界標準和 Google Cloud 最佳做法掃描工作負載。定期執行評估,可及早偵測各項專案的設定偏移和架構風險,進而提升工作負載的可靠性、安全性和效能。

您可以使用 Google Cloud 控制台或 Workload Manager API,建立及執行工作負載評估作業。如要瞭解評估作業的運作方式,請參閱「關於 Workload Manager 評估作業」。

限制

Workload Manager 支援每項專案每小時最多同時執行 25 項評估作業。如果專案有超過 25 項評估作業,請將每小時評估作業數量限制為 25 項,或將評估排程設為每 6 小時執行一次或更低頻率。

事前準備

建立及執行工作負載評估作業前,請先完成下列必要條件:

  1. 確認您要評估的 Google Cloud 資源已在目標專案中建立。如需支援的資源和規則清單,請參閱「Google Cloud 最佳做法參考資料」。

  2. 在您建立及執行評估作業的 Google Cloud 用戶專案中,啟用必要的 API:

  3. 如要評估應用程式或資料庫工作負載,請確認您已在執行工作負載的所有運算執行個體或叢集上,設定必要的代理程式或運算子:

  4. 選用:除了內建的 Google Cloud 最佳做法,如要加入自訂規則,請將 GoogleCloudPlatform/workload-manager GitHub 存放區中的範例規則,上傳至頂層包含 /lib 和 /rules 資料夾的 Cloud Storage bucket。如要進一步瞭解如何上傳自訂規則,請參閱「使用 Rego 編寫自訂規則」。

  5. 如要建立及執行評估作業,請確認您具備必要角色和權限。

  6. 如果您使用 Workload Manager API 建立評估作業,請在用戶專案中手動建立 Workload Manager 服務代理,並授予下列角色:

    • 目標專案中的 Workload Manager 服務代理 (roles/workloadmanager.serviceAgent)。

    • 如果您設定評估排程,Workload Manager Worker (roles/workloadmanager.worker) 會在用戶專案中執行。

    使用 Google Cloud 控制台時,Workload Manager 會自動建立服務代理。如要進一步瞭解如何設定服務代理,請參閱「Workload Manager 服務代理」。

必要的角色

如要取得建立及執行工作負載評估作業所需的權限,請要求管理員授予您下列 IAM 角色:

  • 建立及執行評估:用戶專案的 Workload Manager 評估管理員 (roles/workloadmanager.evaluationAdmin)
  • 建立服務代理 (僅限首次評估):用戶和目標專案的專案 IAM 管理員 (roles/resourcemanager.projectIamAdmin)
  • 讀取 Cloud Asset Inventory 資料 (自訂規則和最佳做法):用戶專案的 Cloud Asset 擁有者 (roles/cloudasset.owner)
  • 從 Cloud Storage bucket 讀取自訂規則 (選用):用戶專案的 Storage 物件檢視者 (roles/storage.objectViewer)
  • 建立警告通知 (選用):用戶專案的 Monitoring 指標寫入者 (roles/monitoring.metricWriter)
  • 將評估結果匯出至 BigQuery (選用):用戶專案的 BigQuery 管理員 (roles/bigquery.admin)

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

這些預先定義的角色具備建立及執行工作負載評估所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:

所需權限

您必須具備下列權限,才能建立及執行工作負載評估:

  • 建立並執行評估:
    • 消費者專案的 workloadmanager.evaluations.create
    • 消費者專案的 workloadmanager.evaluations.run
  • 建立服務代理 (僅限首次評估): resourcemanager.projects.setIamPolicy 在用戶和目標專案上
  • 讀取 Cloud Asset Inventory 資料 (自訂規則和最佳做法): cloudasset.assets.searchAllResources 在用戶專案中
  • 從 Cloud Storage bucket 讀取自訂規則 (選用):
    • 消費者專案的 storage.objects.get
    • 消費者專案的 storage.objects.list
  • 建立快訊通知 (選用): monitoring.timeSeries.create 在消費者專案上
  • 將評估結果匯出至 BigQuery (選用):
    • 消費者專案的 bigquery.datasets.get
    • 消費者專案的 bigquery.tables.create
    • 消費者專案的 bigquery.tables.updateData

您或許還可透過自訂角色或其他預先定義的角色取得這些權限。

如要進一步瞭解用戶和目標專案的角色,請參閱「用於評估的用戶和目標專案 IAM 角色」和「Workload Manager IAM 角色和權限」。

建立工作負載評估

您可以使用 Google Cloud 控制台或 Workload Manager API 建立工作負載評估。如要建立使用自訂規則的評估作業,請參閱「使用自訂規則評估工作負載」。

控制台

如要在 Google Cloud 控制台建立工作負載評估作業,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「Workload Manager」頁面。

    前往 Workload Manager

  2. 選取要儲存及執行評估作業的 Google Cloud 消費者專案。

  3. 如果系統提示要啟用 Workload Manager 所需的 API,請按一下「Enable」(啟用)。

  4. 按一下「New evaluation」(新增評估)。

  5. 在「Name & rules」(名稱和規則) 窗格中,設定評估詳細資料,並選取要評估的規則:

    1. 針對「Evaluation name」(評估作業名稱) 的部分,輸入工作負載評估作業名稱。

    2. 選用:在「Description」(說明) 部分,輸入工作負載評估作業說明。

    3. 在「Workload type」(工作負載類型) 欄位中,選取下列其中一種支援的工作負載類型:

      • SAP

      • SQL Server

      • MySQL

      • Redis

      • OpenShift

      • 自訂

      選取「Custom」(自訂),即可依據Google Cloud 最佳做法或儲存在 Cloud Storage 的自訂規則評估工作負載。

    4. 在「Rules table」(規則表格) 中,選取要納入工作負載評估的最佳做法規則。如要進一步瞭解各項規則,請參閱「Google Cloud 最佳做法參考資料」。

  6. 按一下「繼續」。

  7. 在「Scope & filters」(範圍與篩選器) 窗格中,指定評估作業的目標專案和資源篩選器:

    1. 在「Evaluation scope」(評估範圍) 部分,按一下「Browse projects」(瀏覽專案),新增包含要評估資源的目標專案。

    2. 選用:如要跨目標專案共用規則發現項目,請勾選「Share findings」(共用發現項目) 核取方塊。詳情請參閱「分享評估結果」。

    3. 選用:在「Apply filters to resources」(對資源套用篩選器) 區段中,如要從目標專案選取特定資源,請按一下「Add filter」(新增篩選器),然後使用下列任一篩選器類型:

      • 「服務帳戶」:依附加的服務帳戶篩選 Compute Engine 執行個體。

      • 標籤:依鍵/值標籤組合篩選資源。

      • 名稱:依資源 ID 模式篩選資源。

      特定篩選器類型如有多個篩選器,系統會使用 OR 邏輯。不同類型的篩選器會使用 AND 邏輯。

    4. 如果出現提示,請選取要讓 Workload Manager 儲存評估資料的區域。

  8. 按一下「繼續」。

  9. 在「Frequency & notification」(頻率與通知) 窗格中,設定評估排程、匯出目的地和警告通知:

    1. 在「Scheduling」(排程) 部分,選取評估作業的執行頻率。

    2. 選用:如要將評估結果匯出至與評估作業位於相同區域的 BigQuery 資料集,請選取「儲存至 BigQuery 資料集」,並指定資料集。如要為評估作業建立獨立資料表,請選取「為這項評估作業建立新的結果資料表」。

    3. 選用步驟:在「Notification」(通知) 部分,選取要接收快訊通知的事件,然後選取通知管道。

  10. 按一下「繼續」。

  11. 在「Review」(檢查) 窗格中,檢查工作負載評估設定。如要修改任何設定,請按一下左側導覽面板中的面板名稱。

  12. 點選「建立」。

REST

如要使用 Workload Manager API 建立工作負載評估作業,請按照下列步驟操作:

  1. 選用:如要擷取工作負載類型可用的規則名稱清單,請將 GET 要求傳送至 projects.locations.rules.list 方法:

    curl -X GET \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "X-Goog-User-Project: CONSUMER_PROJECT_ID" \
        "https://workloadmanager.googleapis.com/v1/projects/CONSUMER_PROJECT_ID/locations/LOCATION_ID/rules?evaluationType=EVALUATION_TYPE"
    

    更改下列內容:

    • CONSUMER_PROJECT_ID:執行評估作業的用戶專案 ID

    • LOCATION_ID:評估作業支援的地區,例如 us-central1

    • EVALUATION_TYPE:工作負載評估類型,例如 SAP、SQL_SERVER、MYSQL、REDIS、OPENSHIFT 或 OTHER

  2. 如要建立評估作業,請向 projects.locations.evaluations.create 方法傳送 POST 要求:

    curl -X POST \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json; charset=utf-8" \
        -H "X-Goog-User-Project: CONSUMER_PROJECT_ID" \
        -d '{
          "description": "DESCRIPTION",
          "evaluationType": "EVALUATION_TYPE",
          "ruleNames": [
            "RULE_NAMES"
          ],
          "resourceFilter": {
            "scopes": [
              "projects/TARGET_PROJECT_ID"
            ],
            "resourceIdPatterns": [
              "RESOURCE_ID_PATTERNS"
            ],
            "inclusionLabels": {
              "LABEL_KEY": "LABEL_VALUE"
            },
            "gceInstanceFilter": {
              "serviceAccounts": [
                "SERVICE_ACCOUNT_EMAIL"
              ]
            }
          },
          "schedule": "SCHEDULE",
          "bigQueryDestination": {
            "destinationDataset": "projects/BQ_PROJECT_ID/datasets/BQ_DATASET_ID",
            "createNewResultsTable": true
          }
        }' \
        "https://workloadmanager.googleapis.com/v1/projects/CONSUMER_PROJECT_ID/locations/LOCATION_ID/evaluations?evaluationId=EVALUATION_ID"
    

    更改下列內容:

    • CONSUMER_PROJECT_ID::建立評估作業的用戶專案 ID

    • LOCATION_ID:Workload Manager 儲存評估作業的支援區域,例如 us-central1

    • EVALUATION_ID:評估作業的專屬 ID

    • DESCRIPTION:評估作業的說明

    • EVALUATION_TYPE:工作負載評估類型,例如 SAP、SQL_SERVER、MYSQL、REDIS、OPENSHIFT 或 OTHER

    • RULE_NAMES:以逗號分隔的清單,列出要納入評估的規則 ID

    • TARGET_PROJECT_ID:目標專案的專案 ID 或專案編號,其中包含要評估的資源

    • RESOURCE_ID_PATTERNS:選用的資源名稱模式,用於篩選評估的資源,例如 //compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/my-instance*

    • LABEL_KEY 和 LABEL_VALUE:選用的鍵/值標籤組合,用於篩選資源

    • SERVICE_ACCOUNT_EMAIL:選用的服務帳戶電子郵件地址,用於篩選 Compute Engine 執行個體

    • SCHEDULE:選用的 Cron 運算式 (世界標準時間),用於定期執行評估,例如 0 */6 * * * 表示每 6 小時執行一次

    • BQ_PROJECT_ID 和 BQ_DATASET_ID:選用的專案 ID 和區域 BigQuery 資料集 ID,用於匯出評估結果

    如要進一步瞭解支援的欄位,請參閱 Evaluation 資源參考資料。

執行工作負載評估作業

除了定期執行評估作業,您也可以隨時使用 Google Cloud 控制台或 Workload Manager API,視需要執行現有的工作負載評估作業。

控制台

如要在 Google Cloud 控制台執行工作負載評估作業,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「Workload Manager」頁面。

    前往 Workload Manager

  2. 按一下要執行的評估作業名稱。

  3. 按一下「Evaluation information」(評估作業資訊) 頁面中的「Run」(執行)。

    工作負載評估作業需要幾分鐘才能完成。請等待評估執行作業完成,再查看最新結果。

REST

如要使用 Workload Manager API 執行工作負載評估作業,請將 POST 要求傳送至 projects.locations.evaluations.executions.run 方法:

curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -H "X-Goog-User-Project: CONSUMER_PROJECT_ID" \
    -d '{
      "executionId": "EXECUTION_ID"
    }' \
    "https://workloadmanager.googleapis.com/v1/projects/CONSUMER_PROJECT_ID/locations/LOCATION_ID/evaluations/EVALUATION_ID/executions:run"

更改下列內容:

  • CONSUMER_PROJECT_ID:儲存評估作業的消費者專案 ID。

  • LOCATION_ID:評估作業所在區域,例如 us-central1。

  • EVALUATION_ID:要執行的評估作業 ID。

  • EXECUTION_ID:這個執行作業的專屬 ID (選用)。如要讓 Workload Manager 自動產生 ID,請略過這個欄位。

這項要求會傳回長時間執行的 Operation。如要查看執行狀態或列出結果,請使用 projects.locations.evaluations.executions.get 和 projects.locations.evaluations.executions.results.list 方法。

分享評估結果

分享評估結果後,目標專案的資源擁有者就能在本機專案控制台和整合頁面 (例如 Compute Engine) 查看設定結果。這項功能不需要直接透過 IAM 存取用戶端專案。

編輯評估作業以分享發現項目

如要啟用或停用現有評估作業的發現項目共用功能,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「Workload Manager」頁面。

    前往 Workload Manager

  2. 按一下要編輯的評估作業名稱。

  3. 按一下 [編輯]。

  4. 在「範圍和篩選器」部分,勾選或取消勾選「共用發現項目」核取方塊。

  5. 按一下「儲存」。

共用發現項目的瀏覽權限

啟用「分享發現項目」後,Workload Manager 會將規則發現項目,傳播至評估範圍內指定的所有目標專案。您可以在「規則發現項目」分頁和整合頁面 (例如 Compute Engine「總覽」頁面) 查看發現項目。

停用「Share findings」(共用發現項目) 後,Workload Manager 會停止將規則發現項目傳播至目標專案,且發現項目只會顯示在用戶專案中。

設定評估作業的快訊通知

您可以設定快訊通知,讓 Workload Manager 在發生特定評估事件時 (例如評估偵測到新發現項目或無法執行),通知您選擇的通知管道。如果您在建立評估作業時未設定快訊通知,可以按照下列步驟,在 Google Cloud 控制台為現有評估作業新增或更新通知:

  1. 前往 Google Cloud 控制台的「Workload Manager」頁面。

    前往 Workload Manager

  2. 點按要啟用警告通知的評估作業名稱。

  3. 按一下 [編輯]。

  4. 選取「Notification」(通知) 專區。

  5. 依序選取要接收快訊通知的事件和通知管道。

  6. 按一下「儲存」。

後續步驟