管理各個位置的政策標記
本文說明如何管理區域位置的政策標記,以在 BigQuery 中進行資料欄層級安全防護和動態資料遮蓋。
BigQuery 透過政策標記,為敏感資料表欄提供精細的存取權控管和動態資料遮蓋功能,並支援依據資料類型分類。
建立資料分類分類並將政策標記套用至資料後,您就能進一步管理各位置的政策標記。
位置注意事項
分類是區域資源,例如 BigQuery 資料集和資料表。建立分類時,請指定分類的地區或位置。
您可以在所有提供 BigQuery 的區域中,建立分類並將政策標記套用至資料表。不過,如要將分類中的政策標記套用至資料表欄,分類和資料表必須位於同一個區域位置。
雖然您無法將政策標記套用至位於不同位置的資料表欄,但可以明確複製分類架構,將其複製到其他位置。
在不同地點使用分類
您可以明確複製 (或複製) 分類及其政策標記定義到其他位置,不必在每個位置手動建立新的分類。複製分類時,您可以在多個位置使用相同的資料欄層級安全性政策標記,簡化管理作業。
複製後,分類和政策標記在每個位置都會保留相同的 ID。
您可以再次同步分類和政策標記,確保多個位置的分類和政策標記一致。如要明確複製分類法,請呼叫 Data Catalog API。日後同步處理複製的分類時,會使用相同的 API 指令,覆寫先前的分類。
為方便同步分類,您可以使用 Cloud Scheduler,定期在各區域同步分類,無論是設定排程或手動按下按鈕都可以。如要使用 Cloud Scheduler,您必須設定服務帳戶。
在新位置複製分類
所需權限
複製分類架構的使用者憑證或服務帳戶必須具備「Data Catalog 政策標記管理員」角色。
如要進一步瞭解如何授予「政策標記管理員」角色,請參閱「透過 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 在各個地點之間同步複製的分類,您需要服務帳戶。
服務帳戶
您可以將複製同步的權限授予現有服務帳戶,也可以建立新的服務帳戶。
如要建立新的服務帳戶,請參閱「建立服務帳戶」。
所需權限
同步分類架構的服務帳戶必須具備「Data Catalog Policy Tags Admin」角色。詳情請參閱「授予政策標記管理員角色」。
使用 Cloud Scheduler 設定分類架構同步
如要使用 Cloud Scheduler 在各個位置同步複製的分類,請按照下列步驟操作:
主控台
首先,請建立同步工作及其排程。
按照操作說明在 Cloud Scheduler 中建立工作。
如需「目標」,請參閱「透過驗證建立排程器工作」一文中的操作說明。
接著,新增排定同步處理作業所需的驗證。
按一下「顯示更多」即可顯示驗證欄位。
在「Auth header」(驗證標頭) 部分,選取「Add OAuth token」(新增 OAuth 權杖)。
新增服務帳戶資訊。
在「範圍」中,輸入「https://www.googleapis.com/auth/cloud-platform」。
按一下「建立」即可儲存排程同步。
現在,請測試工作設定是否正確。
建立工作後,請按一下「立即執行」,測試工作設定是否正確。隨後,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"
更改下列內容:
${JOB_ID}
是工作的名稱。在專案中不得重複。 請注意,即使您刪除了關聯的工作,仍然不得在專案中再次使用此名稱。${FREQUENCY}
是時間表,也稱為工作間隔,亦即執行工作的頻率。例如「每 3 小時」。 您在這裡提供的字串可以是任何與 crontab 相容的字串。 熟悉舊版 App Engine Cron 的開發人員也可以使用 App Engine Cron 語法。${URI}
是端點的完整網址。--oauth-service-account-email
定義權杖類型。請注意,*.googleapis.com
上託管的 Google API 預期會使用 OAuth 憑證。${CLIENT_SERVICE_ACCOUNT_EMAIL}
是用戶端服務帳戶的電子郵件地址。${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
後續步驟
- 如需政策標記的資料欄層級安全防護機制總覽,請參閱「BigQuery 資料欄層級安全防護機制簡介」。
- 如要進一步瞭解如何建立及套用政策標記,請參閱「使用 BigQuery 資料欄層級安全防護機制限制存取權」。
- 如要瞭解使用 BigQuery 資料欄層級安全防護機制對寫入作業的影響,請參閱「使用 BigQuery 資料欄層級安全防護機制對寫入作業的影響」。
- 如要瞭解使用政策標記的最佳做法,請參閱「在 BigQuery 中使用政策標記」。