本文說明如何搭配 Batch 使用 VPC Service Controls。VPC Service Controls 可將特定資源隔離到服務 perimeter,藉此保護 Google Cloud 服務的資源和資料。服務範圍會封鎖與範圍外服務的連線,以及未明確允許的網際網路連線。 Google Cloud
- 如要設定 VPC Service Controls 服務邊界以使用 Batch,請參閱本文的「為 Batch 設定服務邊界」。
- 如果專案或網路使用 VPC Service Controls 限制 Batch 的網路存取權,您必須設定 Batch 作業,在所需的服務周圍區域內執行。如要瞭解如何建立,請參閱本文的「建立在 service perimeter 中執行的工作」。
如要進一步瞭解網路概念和設定網路的時機,請參閱「批次網路總覽」。
事前準備
- 如果您從未使用過 Batch,請參閱「開始使用 Batch」,並完成專案和使用者的必要條件,啟用 Batch。
-
如要取得搭配 Batch 使用 VPC Service Controls 所需的權限,請要求管理員授予下列 IAM 角色:
-
如要設定服務範圍,您必須在專案中擁有 Access Context Manager 編輯者 (
roles/accesscontextmanager.policyEditor) 角色。 -
如何建立工作:
- 專案的批次工作編輯者 (
roles/batch.jobsEditor) - 服務帳戶使用者 (
roles/iam.serviceAccountUser) 在作業的服務帳戶上,預設為預設 Compute Engine 服務帳戶
- 專案的批次工作編輯者 (
-
如要找出專案或網路的服務安全防護範圍,您必須具備專案的「Access Context Manager 讀取者」 (
roles/accesscontextmanager.policyReader) 角色。 -
如要找出作業的網路和子網路:
專案的 Compute 網路檢視者 (
roles/compute.networkViewer)
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
-
如要設定服務範圍,您必須在專案中擁有 Access Context Manager 編輯者 (
-
如果您建立在服務周界執行的工作,必須找出要用於該工作的網路。在服務範圍內執行的作業所指定的網路必須符合下列規定:
- 網路是與作業位於相同專案的虛擬私有雲 (VPC) 網路,或是由作業專案代管或與該專案共用的Shared VPC network。
- 網路包含您要執行工作的地點中的子網路。
- 該網路位於必要服務安全防護範圍內,並使用私人 Google 存取權,允許存取作業使用的 API 和服務網域。詳情請參閱本文的「為 Batch 設定服務範圍」。
為 Batch 設定服務範圍
如要為 Batch 設定服務範圍,請按照下列步驟操作:
規劃服務範圍的設定。如要瞭解服務範圍的設定階段總覽,請參閱 VPC Service Controls 說明文件的「服務範圍詳細資料和設定」。
如要使用 Batch,服務安全防護範圍必須符合下列規定:
受限制的服務:如要在服務範圍內保護 Batch,您必須在該範圍內加入 Batch 工作所需的 Google Cloud 服務,例如下列服務:
- 批次 API (
batch.googleapis.com) - Cloud Logging API (
logging.googleapis.com):如要讓作業將記錄寫入 Cloud Logging,就必須啟用這項 API。(建議) - Container Registry API (
containerregistry.googleapis.com): 如果提交的作業使用任何容器,且容器的映像檔來自 Container Registry,則必須啟用這項 API。 - Artifact Registry API (
artifactregistry.googleapis.com): 如果您提交的作業使用任何含有 Artifact Registry 映像檔的容器,則必須啟用這項 API。 - Filestore API (
file.googleapis.com):如果作業使用 Filestore 檔案共用,則為必要項目。 - Cloud Storage API (
storage.googleapis.com):部分使用 Cloud Storage bucket 的作業需要此 API。如果您為批次工作使用的映像檔未預先安裝批次服務代理程式,則必須提供這項資訊。
如要瞭解如何在 service perimeter 中啟用這些服務,請參閱「可透過虛擬私有雲存取的服務」。
除了 Batch 以外,您納入的每項服務也必須驗證您的服務周圍區域是否符合「VPC Service Controls 支援的產品和限制」說明文件中列出的服務需求。
- 批次 API (
虛擬私有雲網路:每個 Batch 批次工作都需要虛擬私有雲網路,因此 service perimeter 必須包含 Batch 批次工作可執行的虛擬私有雲網路。如要瞭解如何設定虛擬私有雲網路,以便在服務邊界內執行 Batch 工作,請參閱下列文件:
- 如要瞭解如何在 service perimeter 中使用虛擬私有雲網路,請參閱「管理 service perimeter 中的虛擬私有雲網路」。
- 如要瞭解如何搭配使用 Private Google Access 和 VPC Service Controls,設定 Batch 作業所需 Google Cloud服務的存取權,請參閱「設定連至 Google API 和服務的私人連線」。
- 如要進一步瞭解 Batch 作業的網路需求,請參閱「作業網路總覽」。
建立在服務範圍內執行的工作
建立要在服務安全防護範圍內執行的工作時,您也必須封鎖工作執行的所有 VM 的外部存取權,並指定允許工作存取必要 API 的網路和子網路。
如要建立在服務範圍內執行的工作,請按照「建立工作,禁止所有 VM 存取外部資源」一文中的步驟操作,並指定符合在服務範圍內執行工作時網路需求的網路。