VPC Service Controls

VPC Service Controls 可讓組織定義 Google Cloud 資源的 perimeter,降低資料竊取風險。您可以使用 VPC Service Controls 建立 perimeter,保護您明確指定的服務資源和資料。

隨附 Cloud Firestore 服務

下列 API 在 VPC Service Controls 中會綁定在一起:

  • firestore.googleapis.com
  • datastore.googleapis.com
  • firestorekeyvisualizer.googleapis.com

在 perimeter 限制 firestore.googleapis.com 服務時,perimeter 也會限制 datastore.googleapis.com 和 firestorekeyvisualizer.googleapis.com 服務。

限制 datastore.googleapis.com 服務

datastore.googleapis.com 服務與 firestore.googleapis.com 服務綁定。如要限制 datastore.googleapis.com 服務,您必須按照下列方式限制 firestore.googleapis.com 服務:

  • 使用 Google Cloud 控制台建立 service perimeter 時,請新增 Cloud Firestore 做為受限制的服務。
  • 使用 Google Cloud CLI 建立 service perimeter 時,請使用 firestore.googleapis.com,而非 datastore.googleapis.com。

    --perimeter-restricted-services=firestore.googleapis.com
    

Datastore 的 App Engine 舊版隨附服務

App Engine 的 Datastore 舊版隨附服務不支援 service perimeter。使用 service perimeter 保護 Datastore 服務,會封鎖來自 App Engine 舊版隨附服務的流量。舊版隨附服務包括:

匯入和匯出作業的輸出保護

Cloud Firestore 支援 VPC Service Controls,但須額外設定,才能在匯入和匯出作業中獲得完整的輸出保護。您必須使用 Cloud Firestore 服務代理,而非預設的 App Engine 服務帳戶,來授權匯入和匯出作業。請按照下列操作說明,查看及設定匯入和匯出作業的授權帳戶。

Cloud Firestore 服務代理

Cloud Firestore 會使用 Cloud Firestore 服務代理授權匯入和匯出作業,而非使用 App Engine 服務帳戶。服務代理和服務帳戶採用下列命名慣例:

Cloud Firestore 服務代理
service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com

Cloud Firestore 先前使用的是 App Engine 預設服務帳戶,而非 Cloud Firestore 服務代理。如果資料庫仍使用 App Engine 服務帳戶匯入或匯出資料,建議您按照本節的操作說明,改用 Cloud Firestore 服務代理。

App Engine 個服務帳戶
PROJECT_ID@appspot.gserviceaccount.com

建議使用 Cloud Firestore 服務代理,因為這是 Cloud Firestore 專用。App Engine 服務帳戶由多項服務共用。

查看授權帳戶

您可以前往 Google Cloud 控制台的「Import/Export」(匯入/匯出) 頁面,查看匯入和匯出作業使用哪個帳戶授權要求。您也可以查看資料庫是否已使用 Cloud Firestore 服務代理。

  1. 查看「Import/Export jobs run as」(匯入/匯出工作執行身分) 標籤旁的授權帳戶。

如果專案未使用 Cloud Firestore 服務代理,您可以使用下列任一技術,遷移至 Cloud Firestore 服務代理:

建議採用第一種技術,因為這種技術會將影響範圍限制在單一 Cloud Firestore 專案。第二種技術不會遷移現有的 Cloud Storage bucket 權限,因此不建議使用。不過,這項服務會在組織層級提供安全性法規遵循。

檢查並更新 Cloud Storage bucket 權限,以便進行遷移

遷移程序包含兩個步驟:

  1. 更新 Cloud Storage bucket 權限。詳情請參閱下節。
  2. 確認遷移至 Cloud Firestore 服務代理。

服務代理值區權限

如果匯出或匯入作業使用「其他」專案中的 Cloud Storage bucket,您必須為該 bucket 授予 Cloud Firestore 服務代理權限。例如,將資料移至其他專案的作業需要存取該專案中的 bucket。否則,遷移至 Cloud Firestore 服務代理後,這些作業會失敗。

如果匯入和匯出工作流程都在同一個專案中,則不需變更權限。根據預設,Cloud Firestore 服務代理可以存取相同專案中的 bucket。

更新其他專案中 Cloud Storage bucket 的權限,將存取權授予 service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com 服務代理。將 Firestore Service Agent 角色授予服務代理。

Firestore Service Agent 角色會授予 Cloud Storage bucket 的讀取和寫入權限。如需僅授予讀取或寫入權限,請使用自訂角色。

下一節說明的遷移程序可協助您找出可能需要更新權限的 Cloud Storage bucket。

將專案遷移至 Firestore 服務代理

請完成下列步驟,從 App Engine 服務帳戶遷移至 Cloud Firestore 服務代理。遷移完成後即無法復原。

  1. 如果專案尚未遷移至 Cloud Firestore 服務代理,您會看到說明遷移作業的橫幅和「Check Bucket Status」(檢查 bucket 狀態) 按鈕。下一步可協助您找出並修正潛在的權限錯誤。

    按一下「Check Bucket Status」(檢查值區狀態)。

    畫面上會顯示選單,其中包含完成遷移的選項和 Cloud Storage bucket 清單。清單可能需要幾分鐘才能載入完畢。

    這份清單包含最近用於匯入和匯出作業,但目前未授予 Cloud Firestore 服務代理讀取和寫入權限的 bucket。

  2. 記下專案 Cloud Firestore 服務代理的主體名稱。服務代理名稱會顯示在「Service agent to give access to」(要授予存取權的服務代理) 標籤下方。
  3. 針對清單中日後要用於匯入或匯出作業的任何 bucket,請完成下列步驟:

    1. 在值區的表格列中,按一下「修正」。 系統會在新分頁開啟該值區的權限頁面。

    2. 按一下 [新增]。
    3. 在「New principals」(新增主體) 欄位中,輸入 Cloud Firestore 服務代理程式的名稱。
    4. 在「Select a role」(選取角色) 欄位中,依序選取「Service Agents」(服務代理) >「Firestore Service Agent」(Firestore 服務代理)。
    5. 按一下 [儲存]。
    6. 返回 Cloud Firestore 匯入/匯出頁面的分頁。
    7. 對清單中的其他值區重複執行這些步驟。請務必查看清單的所有頁面。
  4. 按一下「Migrate to Firestore Service Agent」(遷移至 Firestore 服務代理)。如果仍有 bucket 未通過權限檢查,請按一下「Migrate」(遷移) 確認遷移。

    遷移作業完成後,系統會發出快訊通知。遷移作業無法復原。

查看遷移狀態

如要確認專案的遷移狀態,請按照下列步驟操作:

  1. 找到「Import/Export jobs run as」(匯入/匯出工作執行身分) 標籤旁的主體。

    如果主體是 service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com,表示專案已遷移至 Cloud Firestore 服務代理。遷移作業無法復原。

    如果專案尚未遷移,頁面頂端會顯示橫幅,並附有「Check Bucket Status」(檢查 bucket 狀態) 按鈕。請參閱「遷移至 Firestore 服務代理」一文,完成遷移作業。

新增組織層級政策限制

  • 在組織政策中設定下列限制:

    必須使用 Firestore 服務代理才能執行匯入/匯出工作 (firestore.requireP4SAforImportExport)。

    這項限制規定匯入和匯出作業必須使用 Cloud Firestore 服務代理授權要求。如要設定這項限制,請參閱「 建立及管理組織政策 」。

套用這項組織政策限制,並不會自動為 Cloud Firestore 服務代理授予適當的 Cloud Storage bucket 權限。

如果限制導致任何匯入或匯出工作流程發生權限錯誤,您可以停用限制,改回使用預設服務帳戶。檢查並更新 Cloud Storage bucket 權限後,即可再次啟用限制。