管理各個位置的政策標記

本文件說明如何在 BigQuery 中,針對資料欄層級安全性和動態資料遮罩,管理各區域位置的政策標記。

BigQuery 透過政策標記,為機密資料表欄提供精細的存取權控管動態資料遮蓋功能,支援依類型分類的資料。

建立資料分類分類並將政策標記套用至資料後,您可以進一步管理各個位置的政策標記。

位置注意事項

分類法是 BigQuery 資料集和資料表等區域性資源。建立分類時,您會指定分類的地區或位置

您可以建立分類,並將政策標記套用至 所有支援 BigQuery 的區域中的資料表。不過,如要將分類中的政策標記套用至資料表欄,分類和資料表必須位於相同的區域位置。

雖然您無法將政策標記套用至位於不同位置的資料表欄,但您可以明確複製分類至其他位置。

在不同地區使用分類

您可以明確複製 (或複製) 分類法及其政策代碼定義到其他位置,而無須在每個位置手動建立新的分類法。複製分類法時,您可以在多個位置使用相同的資料欄層級安全性政策標記,簡化管理作業。

複製時,分類和政策標記會在每個位置保留相同的 ID。

您可以再次同步分類和政策標記,讓這些標記在多個位置保持一致。分類法明確複製作業是透過呼叫 Data Catalog API 完成。複製分類法日後的同步作業會使用相同的 API 指令,這會覆寫先前的分類法。

為方便同步分類法,您可以使用 Cloud Scheduler,定期在各個區域執行分類法同步作業,或是手動按下按鈕。如要使用 Cloud Scheduler,您必須設定服務帳戶。

在新位置複製分類

所需權限

複製分類法的使用者憑證或服務帳戶必須具備「資料目錄政策標記管理員」角色。

如要進一步瞭解如何授予「政策標記管理員」角色,請參閱「透過 BigQuery 資料欄層級的安全防護機制限制存取權」一文。

如要進一步瞭解 BigQuery 中的 IAM 角色和權限,請參閱「預先定義的角色與權限」一文。

如要跨地點複製分類方式,請按照下列步驟操作:

API

呼叫 Data Catalog API 的 projects.locations.taxonomies.import 方法,在 HTTP 字串中提供 POST 要求,以及目的地專案和位置的名稱。

POST https://datacatalog.googleapis.com/{parent}/taxonomies:import

parent 路徑參數是您要複製分類法的位置和目標專案。示例:projects/MyProject/locations/eu

同步已複製的分類

如要同步已在不同位置複製的分類法,請按照「在新位置複製分類法」一節所述,重複呼叫 Data Catalog API。

或者,您也可以使用服務帳戶和 Cloud Scheduler,按照指定時間表同步分類法。在 Cloud Scheduler 中設定服務帳戶後,您也可以透過 Google Cloud 控制台的 Cloud Scheduler 頁面或 Google Cloud CLI 觸發隨選 (未排程) 同步處理作業。

使用 Cloud Scheduler 同步複製的分類法

如要使用 Cloud Scheduler 在不同位置同步複製的分類法,您需要服務帳戶。

服務帳戶

您可以將複寫同步作業的權限授予現有服務帳戶,也可以建立新的服務帳戶。

如要建立新的服務帳戶,請參閱「建立服務帳戶」。

所需權限

  1. 同步分類法的服務帳戶必須具備「資料目錄政策代碼管理員」角色。詳情請參閱「授予政策代碼管理員角色」。

  2. 啟用 Cloud Scheduler API

使用 Cloud Scheduler 設定分類法同步

如要使用 Cloud Scheduler 在不同位置同步複製的分類法,請按照下列步驟操作:

主控台

首先,請建立同步處理工作及其排程。

  1. 請按照在 Cloud Scheduler 中建立工作的操作說明進行。

  2. 在「頻率」中,填入自動同步處理的間隔時間。

  3. 如果是 Target,請參閱「透過驗證建立排程器工作」一文中的操作說明。

    建立排程器工作 (第 2 部分)

接著,新增排定同步處理作業所需的驗證。

  1. 按一下「顯示更多」即可顯示驗證欄位。

  2. 在「Auth header」部分,選取「Add OAuth token」(新增 OAuth 權杖)。

  3. 新增服務帳戶資訊。

  4. 在「範圍」中輸入「https://www.googleapis.com/auth/cloud-platform」。

  5. 按一下「建立」,儲存排程同步作業。

    建立排程器工作 (第 2 部分)

接下來,請測試工作是否設定正確。

  1. 建立工作後,請按一下「立即執行」,測試工作是否設定正確。接著,Cloud Scheduler 會根據您指定的時間表觸發 HTTP 要求。

    測試排程器工作

gcloud

語法:

  gcloud scheduler jobs create http "JOB_ID" --schedule="FREQUENCY" --uri="URI" --oath-service-account-email="CLIENT_SERVICE_ACCOUNT_EMAIL" --time-zone="TIME_ZONE" --message-body-from-file="MESSAGE_BODY"
  

更改下列內容:

  1. ${JOB_ID} 是工作的名稱。在專案中不得重複。請注意,即使您刪除了關聯的工作,仍然不得在專案中再次使用此名稱。
  2. ${FREQUENCY} 是工作應執行的頻率,也稱為「工作間隔」。例如「每 3 小時」。您在這裡提供的字串可以是任何與 crontab 相容的字串。熟悉舊版 App Engine Cron 的開發人員也可以使用 App Engine Cron 語法。
  3. ${URI} 是端點的完整網址。
  4. --oauth-service-account-email 定義權杖類型。請注意,在 *.googleapis.com 上託管的 Google API 會要求 OAuth 權杖。
  5. ${CLIENT_SERVICE_ACCOUNT_EMAIL} 是用戶端服務帳戶的電子郵件地址。
  6. ${MESSAGE_BODY} 是包含 POST 要求主體的檔案路徑。

您也可以使用 Google Cloud CLI 參考資料中所述的其他選項參數。

範例:

  gcloud scheduler jobs create http cross_regional_copy_to_eu_scheduler --schedule="0 0 1 * *" --uri="https://datacatalog.googleapis.com/v1/projects/my-project/locations/eu/taxonomies:import" --oauth-service-account-email="policytag-manager-service-acou@my-project.iam.gserviceaccount.com" --time-zone="America/Los_Angeles" --message-body-from-file=request_body.json
  

後續步驟