使用政策自動調度管理工具的必要條件

本頁說明使用 VM 管理工具的政策自動調度管理工具功能時,必須符合的必要條件。

為機構和資料夾協調作業設定配額專案

使用政策自動化調度管理工具管理機構或資料夾中的 OS 政策資源時,您會向以用戶端為基礎的 API 發出要求。以用戶端為準的 API 必須使用配額專案。如要進一步瞭解以用戶端為準的 API 和配額專案設定,請參閱「配額專案總覽」。

使用 gcloud CLI 或 REST API 呼叫政策協調器方法時,請依下列方式指定配額專案:

gcloud

在 gcloud CLI 設定屬性中設定配額專案:

gcloud config set billing/quota_project QUOTA_PROJECT_ID

QUOTA_PROJECT_ID 替換為配額專案的專案 ID。

或者,您也可以使用 --billing-project 標記,為特定指令設定配額專案,這個標記的優先順序高於設定屬性。

REST

在每個要求中新增 x-goog-user-project HTTP 標頭,指定配額專案。詳情請參閱「使用 REST 要求設定配額專案」。

啟用 OS Config API

如要在 VM 管理員中使用政策自動化調度管理工具功能,請在下列專案中啟用 OS Config API:

  • 如要進行機構層級和資料夾層級的協調作業,請為配額專案啟用 OS Config API。
  • 如要進行專案層級的自動調度,請在建立政策自動調度管理工具的專案中,啟用 OS 設定 API。

詳情請參閱「啟用 OS Config API」。

為專案啟用 Progressive Rollout API

主控台

  1. 在 Trusted Cloud 控制台中,選取要啟用 API 的 Trusted Cloud 專案,然後前往「APIs & Services」(API 和服務) 頁面:

    前往「API 與服務」

  2. 點選「啟用 API 和服務」

  3. 搜尋「Progressive Rollout」。

  4. 在搜尋結果中,按一下「Progressive Rollout API」

  5. 如果 API 尚未啟用,請點選「啟用」

gcloud

  1. 如要查看是否已啟用 Progressive Rollout API,請執行下列指令,並將 PROJECT_ID 替換為要啟用 API 的專案 ID:

     gcloud services list --project=PROJECT_ID
    

    如果輸出結果中出現 progressiverollout.googleapis.com,表示 API 已啟用。

  2. 如果 API 未啟用,請執行下列指令來啟用:

     gcloud services enable progressiverollout.googleapis.com
    

    詳情請參閱 gcloud services

設定 OS Config 服務代理程式

政策自動化調度管理工具會使用 OS 設定服務代理程式,在專案中執行動作。此外,這項服務也依附 Progressive Rollout API,而該 API 有自己的服務代理。詳情請參閱服務代理程式

您必須為建立政策協調器的每個專案、資料夾或機構建立服務代理程式。

如要建立服務代理程式,請按照下列步驟操作。

  1. 查看各項資源的服務專員電子郵件地址格式:

    專案

    • service-PROJECT_NUMBER@gcp-sa-osconfig.s3ns-system.iam.gserviceaccount.com
    • service-PROJECT_NUMBER@gcp-sa-osconfig-rollout.s3ns-system.iam.gserviceaccount.com
    • service-PROJECT_NUMBER@gcp-sa-progrollout.s3ns-system.iam.gserviceaccount.com

    PROJECT_NUMBER 替換為您建立政策協調器的專案的數值 ID。

    資料夾

    • service-folder-FOLDER_NUMBER@gcp-sa-osconfig.s3ns-system.iam.gserviceaccount.com
    • service-folder-FOLDER_NUMBER@gcp-sa-osconfig-rollout.s3ns-system.iam.gserviceaccount.com
    • service-folder-FOLDER_NUMBER@gcp-sa-progrollout.s3ns-system.iam.gserviceaccount.com

    FOLDER_NUMBER 替換為您建立政策協調器的資料夾的數值 ID。

    機構

    • service-org-ORGANIZATION_NUMBER@gcp-sa-osconfig.s3ns-system.iam.gserviceaccount.com
    • service-org-ORGANIZATION_NUMBER@gcp-sa-osconfig-rollout.s3ns-system.iam.gserviceaccount.com
    • service-org-ORGANIZATION_NUMBER@gcp-sa-progrollout.s3ns-system.iam.gserviceaccount.com

    ORGANIZATION_NUMBER 替換為您建立政策協調器的機構的數值 ID。

  2. 如要為特定 API 和資源建立服務代理程式,請使用 gcloud beta services identity create 指令

    專案

    gcloud beta services identity create --service=osconfig.googleapis.com  --project=PROJECT_NUMBER
    
    gcloud beta services identity create --service=progressiverollout.googleapis.com  --project=PROJECT_NUMBER
    

    PROJECT_NUMBER 替換為要建立服務代理程式的專案的數值 ID。

    資料夾

    gcloud beta services identity create --service=osconfig.googleapis.com  --folder=FOLDER_NUMBER
    
    gcloud beta services identity create --service=progressiverollout.googleapis.com  --folder=FOLDER_NUMBER
    

    FOLDER_NUMBER 替換為要建立服務代理程式的資料夾的數值 ID。

    機構

    gcloud beta services identity create --service=osconfig.googleapis.com --organization=ORGANIZATION_NUMBER
    
    gcloud beta services identity create --service=progressiverollout.googleapis.com  --organization=ORGANIZATION_NUMBER
    

    ORGANIZATION_NUMBER 替換為要建立服務代理程式的機構的數值 ID。

將 IAM 角色授予服務代理

如要讓政策協調器正常運作,您必須在協調器的父項資源中,將所有必要的服務代理角色授予相應的服務帳戶:

  • @gcp-sa-osconfig.s3ns-system.iam.gserviceaccount.com 帳戶的 OSConfig 服務代理程式 (roles/osconfig.serviceAgent)
  • @gcp-sa-osconfig-rollout.s3ns-system.iam.gserviceaccount.com 帳戶的 OSConfig Rollout 服務代理程式 (roles/osconfig.rolloutServiceAgent)
  • Progressiverollout 服務代理人 (roles/progressiverollout.serviceAgent) for the @gcp-sa-progrollout.s3ns-system.iam.gserviceaccount.com account

如要將 IAM 角色授予服務代理,請使用 Trusted Cloud 控制台或 add-iam-policy-binding 指令。 詳情請參閱「將角色授予服務代理程式」。

必要的角色

  • 如要取得授予服務代理程式存取權所需的權限,請管理員在您要授予存取權的專案、資料夾或機構中,授予下列 IAM 角色:

    • 授予服務代理程式專案存取權: 專案 IAM 管理員 (roles/resourcemanager.projectIamAdmin)
    • 授予服務代理程式資料夾存取權: 資料夾管理員 (roles/resourcemanager.folderAdmin)
    • 授予服務代理人專案、資料夾和機構的存取權: 機構管理員 (roles/resourcemanager.organizationAdmin)

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

    這些預先定義的角色具備授予服務代理人存取權所需的權限。如要查看確切的必要權限,請展開「必要權限」部分:

    所需權限

    如要授予服務代理人存取權,必須具備下列權限:

    • 授予服務代理專案存取權:
      • resourcemanager.projects.getIamPolicy
      • resourcemanager.projects.setIamPolicy
    • 授予服務代理人資料夾存取權:
      • resourcemanager.folders.getIamPolicy
      • resourcemanager.folders.setIamPolicy
    • 授予服務代理機構存取權:
      • resourcemanager.organizations.getIamPolicy
      • resourcemanager.organizations.setIamPolicy

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

如要授予服務代理程式角色,請執行 gcloud add-iam-policy-binding,如下所示:

專案

gcloud projects add-iam-policy-binding PROJECT_ID \
 --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-osconfig-rollout.s3ns-system.iam.gserviceaccount.com" \
 --role="roles/osconfig.rolloutServiceAgent"
 gcloud projects add-iam-policy-binding PROJECT_ID \
 --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-osconfig.s3ns-system.iam.gserviceaccount.com" \
 --role="roles/osconfig.serviceAgent"
gcloud projects add-iam-policy-binding PROJECT_ID \
--member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-progrollout.s3ns-system.iam.gserviceaccount.com" \
--role="roles/progressiverollout.serviceAgent"

PROJECT_NUMBER 替換為要新增 IAM 政策繫結的專案 ID (數字)。

資料夾

gcloud resource-manager folders add-iam-policy-binding FOLDER_NUMBER \
 --member="serviceAccount:service-folder-FOLDER_NUMBER@gcp-sa-osconfig-rollout.s3ns-system.iam.gserviceaccount.com" \
 --role="roles/osconfig.rolloutServiceAgent"
 gcloud resource-manager folders add-iam-policy-binding FOLDER_NUMBER \
 --member="serviceAccount:service-folder-FOLDER_NUMBER@gcp-sa-osconfig.s3ns-system.iam.gserviceaccount.com" \
 --role="roles/osconfig.serviceAgent"
gcloud resource-manager folders add-iam-policy-binding FOLDER_NUMBER \
--member="serviceAccount:service-folder-FOLDER_NUMBER@gcp-sa-progrollout.s3ns-system.iam.gserviceaccount.com" \
--role="roles/progressiverollout.serviceAgent"

FOLDER_NUMBER 替換為要新增 IAM 政策繫結的資料夾 ID (數字)。

機構

gcloud organizations add-iam-policy-binding ORGANIZATION_NUMBER \
 --member="serviceAccount:service-org-ORGANIZATION_NUMBER@gcp-sa-osconfig-rollout.s3ns-system.iam.gserviceaccount.com" \
 --role="roles/osconfig.rolloutServiceAgent"
 gcloud organizations add-iam-policy-binding ORGANIZATION_NUMBER \
 --member="serviceAccount:service-org-ORGANIZATION_NUMBER@gcp-sa-osconfig.s3ns-system.iam.gserviceaccount.com" \
 --role="roles/osconfig.serviceAgent"
gcloud organizations add-iam-policy-binding ORGANIZATION_NUMBER \
--member="serviceAccount:service-org-ORGANIZATION_NUMBER@gcp-sa-progrollout.s3ns-system.iam.gserviceaccount.com" \
--role="roles/progressiverollout.serviceAgent"

ORGANIZATION_NUMBER 替換為要新增 IAM 政策繫結的機構數字 ID。

後續步驟