設定 Workload Manager,以便與 VPC Service Controls 搭配使用

本頁面說明如何設定輸入和輸出規則,在受 VPC Service Controls 保護的專案中執行 Workload Manager 評估。

在受 VPC Service Controls 保護的專案中執行 Workload Manager 評估時,您必須為附加至 Compute Engine 執行個體的服務帳戶設定輸入和輸出規則,該執行個體會執行運算工作負載代理。這些規則可讓服務帳戶存取 VPC Service Controls 範圍內的必要 API。如未設定這些規則,代理程式就無法將資料傳送至 Workload Manager,評估作業也會失敗。

詳情請參閱「VPC Service Controls 總覽」。

事前準備

為專案設定 VPC Service Controls 前,請先完成下列工作:

  1. 設定 VPC Service Controls perimeter
  2. 找出附加至 Compute Engine 執行個體的服務帳戶,該執行個體會執行運算工作負載代理。例如 sap-example-svc-acct@example-project-123456.iam.gserviceaccount.com。您可以在 Google Cloud 控制台的「VM 執行個體詳細資料」頁面中找到這項資訊。
  3. 確認服務帳戶具備必要的角色。例如,請參閱「代理程式和 SAP 工作負載的必要角色」。

必要的角色

如要取得在 VPC Service Controls perimeter 內設定 Workload Manager 所需的權限,請要求系統管理員授予您專案的Access Context Manager 編輯者 (roles/accesscontextmanager.policyEditor) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

您或許也能透過自訂角色或其他預先定義的角色,取得必要權限。

為 service perimeter 建立輸入和輸出規則

如要讓運算工作負載代理與必要服務通訊,您必須在 VPC Service Controls perimeter 中設定輸入和輸出規則。

如要進一步瞭解如何建立輸入規則,請參閱「設定輸入和輸出政策」。

控制台

  1. 前往 Google Cloud 控制台的「VPC Service Controls」頁面。

    前往 VPC Service Controls

  2. 選取專案。

  3. 按一下 service perimeter 名稱,然後點選「Edit」(編輯)

  4. 按一下「輸入政策」或「輸出政策」

  5. 按一下「Add an ingress rule」(新增輸入規則)

  6. 在「From」(寄件者) 部分,指定服務代理的身分:

    1. 在「身分」部分,選取「選取身分和群組」
    2. 按一下「Add identities」(新增身分)
    3. 輸入代理程式服務帳戶的電子郵件地址。例如 sap-example-svc-acct@example-project-123456.iam.gserviceaccount.com
  7. 在「To」部分,指定允許的操作:

    1. 針對「資源」,選取「所有專案」
    2. 在「作業」部分,選取「選取作業」
    3. 按一下「新增作業」,然後選取「所有方法」,新增下列服務:
      • compute.googleapis.com
      • workloadmanager.googleapis.com
      • secretmanager.googleapis.com
  8. 依序按一下 [完成] 及 [儲存]

gcloud

如要新增輸入規則,請建立包含輸入規則的 YAML 檔案,並使用 gcloud access-context-manager perimeters update 指令搭配 --set-ingress-policies 旗標。

  1. 建立名為 ingress_policy.yaml 的輸入政策 YAML 檔案,並在其中加入下列內容:

    - ingressFrom:
        identities:
         - serviceAccount:SERVICE_ACCOUNT_EMAIL
        sources:
        - accessLevel: '*'
      ingressTo:
        operations:
        - serviceName: compute.googleapis.com
          methodSelectors:
          - method: "*"
        - serviceName: workloadmanager.googleapis.com
          methodSelectors:
          - method: "*"
        - serviceName: secretmanager.googleapis.com
          methodSelectors:
          - method: "*"
        resources:
        - "*"
    

    SERVICE_ACCOUNT_EMAIL 替換為附加至 Compute Engine 執行個體的服務帳戶電子郵件地址,該執行個體會執行運算工作負載代理。

  2. 將輸入政策新增至範圍:

       gcloud access-context-manager perimeters update PERIMETER_NAME \
         --set-ingress-policies=ingress_policy.yaml
    

    PERIMETER_NAME 替換為您的服務安全防護範圍名稱。例如:accessPolicies/1234567890/servicePerimeters/example_perimeter

排解 VPC Service Controls 違規問題

如要查看專案中的 VPC Service Controls 違規事項並排解問題,請使用 Logs Explorer。

詳情請參閱「排解 VPC Service Controls 問題」。

後續步驟