您可以使用 Dataflow 執行器,在本機或代管資源上執行 Dataflow 管道。 Google Cloud無論是在本機或雲端執行管道,管道及其工作站都會使用權限系統,維護管道檔案和資源的存取安全。 系統會根據用於存取管道資源的角色指派 Dataflow 權限。本文將說明下列概念:
- 升級 Dataflow VM
- 執行本機和 Google Cloud 管道所需的角色和權限
- 存取管道資源所需的角色和權限
- Dataflow 服務和資料安全使用的資料類型
事前準備
請參閱 Google Cloud Google Cloud 總覽,瞭解專案 ID。這些識別碼包含專案名稱、專案 ID 和專案編號。
升級及修補 Dataflow VM
Dataflow 使用 Container-Optimized OS。 Container-Optimized OS 的安全程序也適用於 Dataflow。
批次管道有時間限制,不需要維護。 新的批次管道啟動時,系統會使用最新的 Dataflow 映像檔。
如果是串流管道,如果需要立即套用安全性修補程式,Google Cloud 會使用安全性公告通知您。如果是串流管道,建議使用「--update
」選項,以最新的 Dataflow 映像檔重新啟動工作。
您可以在 Google Cloud 控制台中查看 Dataflow 容器映像檔。
執行階段環境
對於 pipeline 使用者程式碼的執行階段環境,Dataflow 會使用預先建構的 Apache Beam 映像檔,或使用提供的自訂容器。
容器執行作業的使用者是由 Dataflow 服務選取。系統會根據每個工作分配管道資源,VM 和其他資源不會跨管道共用。
執行階段環境生命週期與管道生命週期相關聯。這項服務會在管道啟動時啟動,並在管道終止時停止;執行管道期間,執行階段環境可能會重新啟動一或多次。
本機管道的安全性與權限
在本機上執行作業時,Apache Beam 管道會以您Google Cloud 透過 Google Cloud CLI 執行檔設定的帳戶執行。在本機執行的 Apache Beam SDK 作業和您的帳戶可存取相同的檔案和資源。 Google Cloud
如要列出您選取的預設 Google Cloud 帳戶,請執行 gcloud config list
指令。
本機管道可以將資料輸出至本機目的地,例如本機檔案;或是輸出至雲端目的地,例如 Cloud Storage 或 BigQuery。如果在本機執行的管道將檔案寫入雲端型的資源 (例如 Cloud Storage),它將使用您的 Google Cloud 帳戶憑證和 Google Cloud 專案 (預設為 Google Cloud CLI)。如要瞭解如何使用 Google Cloud 帳戶憑證進行驗證,請參閱您所用語言的教學課程:Java、Python 或 Go。
Google Cloud管道的安全性與權限
執行管道時,Dataflow 會使用兩個服務帳戶來管理安全性和權限:
Dataflow 服務帳戶。Dataflow 服務會在工作建立要求中使用 Dataflow 服務帳戶,例如檢查專案配額及代表您建立工作站執行個體。Dataflow 也會在工作執行期間使用 Dataflow 服務帳戶管理工作。這個帳戶也稱為 Dataflow 服務代理程式。
工作站服務帳戶。提交工作後,工作站執行個體會使用工作站服務帳戶來存取輸入和輸出資源。根據預設,工作站會使用與專案相關聯的Compute Engine 預設服務帳戶做為工作站服務帳戶。最佳做法是指定使用者管理的服務帳戶,而非使用預設工作站服務帳戶。
如要模擬服務帳戶,啟動管道的帳戶必須具備下列角色:iam.serviceAccounts.actAs
。
視其他專案權限而定,您的使用者帳戶可能也需要 roles/dataflow.developer
角色。如果您是專案擁有者或編輯者,則已具備「roles/dataflow.developer
」角色所含的權限。
最佳做法
- 盡可能為工作者服務帳戶指定使用者代管的服務帳戶,而非使用預設工作者服務帳戶。
- 授予資源權限時,請授予包含執行工作所需最低權限的角色。您可以建立自訂角色,只授予必要權限。
- 授予資源存取權時,請使用最低資源層級。舉例來說,您可以在 BigQuery 資料表上授予角色,而不是在專案或資料夾上授予「
roles/bigquery.dataEditor
」角色。 - 建立由專案擁有的值區,做為 Dataflow 的暫存值區使用。預設值區權限可讓 Dataflow 使用值區,暫存管道的可執行檔。
Dataflow 服務帳戶
凡是使用資源 Dataflow Job
的專案,都會有 Dataflow 服務帳戶 (又稱 Dataflow服務代理程式),電子郵件地址如下:
service-PROJECT_NUMBER@dataflow-service-producer-prod.iam.gserviceaccount.com
這個服務帳戶是由 Google 建立及管理,並在您首次使用資源 Dataflow Job
時,自動指派給專案。
執行 Dataflow 管道時,Dataflow 會代表您操控資源。例如,建立其他 VM。使用 Dataflow 執行管道時,系統會使用這個服務帳戶。
這個帳戶會取得專案的 Dataflow 服務代理人角色。這個帳戶具備在專案中執行 Dataflow 工作所需的權限,包括啟動 Compute Engine 工作站。這個帳戶僅供 Dataflow 使用,而且是您專案的專屬帳戶。
您可以在Google Cloud 控制台或 Google Cloud CLI 中,查看指派給 Dataflow 服務帳戶的角色。
控制台
前往「Roles」(角色) 頁面。
如有需要,請選取專案。
在清單中,按一下「Cloud Dataflow Service Agent」標題。系統會開啟頁面,列出指派給 Dataflow 服務帳戶的權限。
gcloud CLI
查看 Dataflow 服務帳戶的權限:
gcloud iam roles describe roles/dataflow.serviceAgent
由於 Google Cloud 服務預期會具有專案及其資源的讀取/寫入權限,因此建議您不要變更系統為您的專案自動建立的預設權限。如果 Dataflow 服務帳戶不具備專案的權限,Dataflow 將無法啟動 VM 或執行其他管理工作。
如果您將服務帳戶的權限從身分與存取權管理 (IAM) 政策中移除,由於這類帳戶由 Dataflow 服務所擁有,因此帳戶會繼續存在。
工作站服務帳戶
Compute Engine 執行個體會在雲端執行 Apache Beam SDK 作業。這些工作站會使用專案的工作站服務帳戶,存取與管道相關聯的檔案和其他資源。工作站服務帳戶會做為所有工作站 VM 的身分,而源自 VM 的所有要求都會使用工作站服務帳戶。這個服務帳戶也會用於與 Cloud Storage 值區和 Pub/Sub 主題等資源互動。
- 工作者服務帳戶必須具備
roles/dataflow.worker
角色,才能執行作業。 - 如要讓工作者服務帳戶建立或檢查工作,必須具備
roles/dataflow.admin
角色。
此外,當 Apache Beam 管道存取 Google Cloud 資源時,您需要將必要角色授予 Dataflow 專案的工作人員服務帳戶。執行 Dataflow 工作時,工作站服務帳戶必須能夠存取資源。舉例來說,如果您的工作會寫入 BigQuery,則服務帳戶也至少要有 BigQuery 資料表的 roles/bigquery.dataEditor
角色。資源範例包括:
預設工作站服務帳戶
根據預設,工作站會將專案的 Compute Engine 預設服務帳戶做為工作站服務帳戶使用。這個服務帳戶的電子郵件地址如下:
PROJECT_NUMBER-compute@developer.gserviceaccount.com
當您透過 Google Cloud 控制台的 API 程式庫為專案啟用 Compute Engine API 時,系統會自動建立這個服務帳戶。
雖然您可以將 Compute Engine 預設服務帳戶做為 Dataflow 工作者服務帳戶,但建議您建立專用的 Dataflow 工作者服務帳戶,並只授予必要的角色和權限。
視機構政策設定而定,系統可能會自動將專案的編輯者角色授予預設服務帳戶。強烈建議您
強制執行 iam.automaticIamGrantsForDefaultServiceAccounts
機構政策限制,停用自動授予角色功能。如果您是在 2024 年 5 月 3 日後建立機構,系統預設會強制執行這項限制。
如果停用自動角色授予功能,您必須決定要授予預設服務帳戶哪些角色,然後自行授予這些角色。
如果預設服務帳戶已具備「編輯者」角色,建議您將「編輯者」角色替換為權限較少的角色。如要安全地修改服務帳戶的角色,請使用 政策模擬器查看變更的影響,然後授予及撤銷適當的角色。
指定使用者代管的工作人員服務帳戶
如要以精細的存取權控管方式來建立及使用資源,您可以建立使用者代管的服務帳戶。將這個帳戶做為工作人員服務帳戶。
如果您沒有使用者代管的服務帳戶,請建立服務帳戶。
為服務帳戶設定必要的 IAM 角色。
- 工作者服務帳戶必須具備
roles/dataflow.worker
角色,才能執行作業。 - 如要讓工作者服務帳戶建立或檢查工作,必須具備
roles/dataflow.admin
角色。 - 或者,建立具備必要權限的自訂 IAM 角色。如需必要權限的清單,請參閱角色。
- 您的服務帳戶可能需要具備其他角色,才能使用工作所需的 Google Cloud 資源,例如 BigQuery、Pub/Sub 或 Cloud Storage。舉例來說,如果您的工作會從 BigQuery 讀取資料,則服務帳戶也至少要有 BigQuery 表格的
roles/bigquery.dataViewer
角色。 - 請確認使用者管理的服務帳戶有權讀取及寫入 Dataflow 工作中指定的暫存和臨時位置。
- 如要模擬服務帳戶,使用者帳戶必須具備
iam.serviceAccounts.actAs
權限。
- 工作者服務帳戶必須具備
在包含使用者管理的服務帳戶的專案中,Dataflow 服務帳戶 (
service-PROJECT_NUMBER@dataflow-service-producer-prod.iam.gserviceaccount.com
) 和 Compute Engine 服務代理 (service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com
) 必須具備下列角色。PROJECT_NUMBER 是 Dataflow 工作執行的專案 ID。這兩個帳戶都是服務代理商。- 服務帳戶憑證建立者角色
(
iam.serviceAccountTokenCreator
) - 服務帳戶使用者角色
(
iam.serviceAccountUser
)
假設 Dataflow 工作在專案 A 中執行,而工作站服務帳戶位於專案 B,請確認專案 A 的服務代理人在專案 B 中具有
iam.serviceAccountTokenCreator
和iam.serviceAccountUser
角色。在 Dataflow 工作執行的專案中,這些帳戶預設會具備下列角色。如要授予這些角色,請按照「管理服務帳戶存取權」頁面中「授予單一角色」一節的步驟操作。- 服務帳戶憑證建立者角色
(
如果使用者代管的工作站服務帳戶和工作位於不同專案,請確保擁有使用者代管服務帳戶的專案未強制執行
iam.disableCrossProjectServiceAccountUsage
布林值限制。詳情請參閱「啟用服務帳戶,以便跨專案附加」。執行管道工作時,請指定服務帳戶。
Java
從指令列執行管道工作時,請使用
--serviceAccount
選項並指定服務帳戶:--serviceAccount=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
以彈性範本執行管道工作時,請使用
--service-account-email
選項並指定服務帳戶:--service-account-email=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
Python
執行管道工作時,請使用
--service_account_email
選項並指定服務帳戶:--service_account_email=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
Go
執行管道工作時,請使用
--service_account_email
選項並指定服務帳戶:--service_account_email=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
使用者管理的服務帳戶可以與工作位於相同專案,也可以位於不同專案。如果服務帳戶和工作位於不同專案,您必須設定服務帳戶,才能執行工作。
新增角色
如要在專案中新增角色,請按照下列步驟操作。
控制台
前往 Google Cloud 控制台的「IAM」頁面。
選取專案。
在包含您使用者帳戶的資料列中,按一下
「Edit principal」(編輯主體),然後按一下 「Add another role」(新增其他角色)。在下拉式清單中,選取「服務帳戶使用者」角色。
在包含工作者服務帳戶的資料列中,按一下
「Edit principal」(編輯主體),然後按一下 「Add another role」(新增其他角色)。在下拉式清單中,選取「Dataflow Worker」(Dataflow 工作者) 角色。
如果工作者服務帳戶需要 Dataflow 管理員角色,請對 Dataflow 管理員重複上述步驟。
針對作業中使用的資源所需的所有角色重複上述步驟,然後按一下「儲存」。
如要進一步瞭解如何授予角色,請參閱「使用控制台授予 IAM 角色」。
gcloud CLI
將
roles/iam.serviceAccountUser
角色授予使用者帳戶。執行下列指令:gcloud projects add-iam-policy-binding PROJECT_ID --member="user:EMAIL_ADDRESS --role=roles/iam.serviceAccountUser
- 將
PROJECT_ID
替換為您的專案 ID。 - 將
EMAIL_ADDRESS
替換為使用者帳戶的電子郵件地址。
- 將
將角色授予工作人員服務帳戶。針對
roles/dataflow.worker
IAM 角色,以及作業中使用的資源所需的任何角色,執行下列指令。如果工作站服務帳戶需要 Dataflow 管理員角色,請對roles/dataflow.admin
IAM 角色重複上述步驟。這個範例使用 Compute Engine 預設服務帳戶,但建議您使用使用者管理的服務帳戶。gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com" --role=SERVICE_ACCOUNT_ROLE
- 將
PROJECT_ID
替換為您的專案 ID。 - 將
PROJECT_NUMBER
替換為專案編號。如要找出專案編號,請參閱「識別專案」一文,或使用gcloud projects describe
指令。 - 將
SERVICE_ACCOUNT_ROLE
替換為各個角色。
- 將
存取 Google Cloud 資源
您的 Apache Beam 管道可存取 Google Cloud 資源,無論是位於相同 Google Cloud 專案還是其他專案。這些資源包括:
如要確保 Apache Beam 管道可以存取這些資源,您必須使用資源各自的存取權控管機制,將存取權明確授予 Dataflow 專案的工作站服務帳戶。
如果您搭配 Dataflow 使用 Assured Workloads 功能 (例如歐盟地區和支援主權控制項),管道存取的所有 Cloud Storage、BigQuery、Pub/Sub、I/O 連接器和其他資源,都必須位於貴機構的Assured Workloads 專案或資料夾中。
如果您使用使用者管理的 Worker 服務帳戶,或存取其他專案中的資源,可能需要採取額外行動。下列範例假設使用 Compute Engine 預設服務帳戶,但您也可以使用使用者管理的服務帳戶。
存取 Artifact Registry 存放區
搭配 Dataflow 使用自訂容器時,您可能會將構件上傳至 Artifact Registry 存放區。
如要在 Dataflow 中使用 Artifact Registry,您必須至少授予Artifact Registry 寫入者存取權 (role/artifactregistry.writer
) 給執行 Dataflow 工作的工作站服務帳戶。
所有存放區內容都會使用 Google-owned and Google-managed encryption keys 或客戶管理的加密金鑰加密。Artifact Registry 預設會使用Google-owned and Google-managed encryption keys ,不需要為這個選項進行任何設定。
存取 Cloud Storage bucket
如要授予 Dataflow 專案 Cloud Storage 值區的存取權,請開放讓 Dataflow 專案的工作站服務帳戶存取該值區。服務帳戶至少需要具備值區及其內容的讀取和寫入權限。您可以使用 Cloud Storage 的 IAM 權限來授予必要的存取權。
如要授予工作站服務帳戶讀取及寫入 bucket 的必要權限,請使用 gcloud storage buckets add-iam-policy-binding
指令。這項指令會將 Dataflow 專案服務帳戶新增至值區層級政策。
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME --member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com" --role=SERVICE_ACCOUNT_ROLE
更改下列內容:
- BUCKET_NAME:Cloud Storage bucket 的名稱
- PROJECT_NUMBER:您的 Dataflow 專案編號。如要找出專案編號,請參閱「識別專案」一文,或使用
gcloud projects describe
指令。 - SERVICE_ACCOUNT_ROLE:IAM 角色,例如
storage.objectViewer
如要擷取Google Cloud 專案中的 Cloud Storage bucket 清單,請使用 gcloud storage buckets list
指令:
gcloud storage buckets list --project= PROJECT_ID
將 PROJECT_ID 替換為專案 ID。
除非您受到限制資源共用的機構政策限制,否則可以存取與 Dataflow 管道不同專案中的 bucket。如要進一步瞭解網域限制,請參閱「依照網域設定身分限制」。
如果沒有 bucket,請建立新 bucket。 接著,授予工作人員服務帳戶從 bucket 讀取及寫入資料的必要權限。
您也可以透過 Google Cloud 控制台設定值區權限,詳情請參閱「設定值區權限」一文。
Cloud Storage 提供兩個系統來授予使用者存取值區和物件的權限:IAM 和存取控制清單 (ACL)。在大多數情況下,建議使用 IAM 控制資源存取權。
IAM 可控管整個Google Cloud 的權限,並允許您在值區和專案層級授予權限。如需與 Cloud Storage 相關聯的 IAM 角色清單,以及每個角色所含的權限,請參閱適用於 Cloud Storage 的 IAM 角色。如要進一步控管權限,請建立自訂角色。
如果您使用 ACL 控制存取權,請確保工作人員服務帳戶權限與 IAM 設定一致。由於 IAM 和 ACL 政策不一致,當 Cloud Storage bucket 從細微存取權移轉至統一 bucket 層級存取權時,Dataflow 工作可能無法存取 Cloud Storage bucket。詳情請參閱「常見錯誤指南」。
存取 BigQuery 資料集
您可以使用 BigQueryIO
API 存取 BigQuery 資料集,無論該資料集位於您使用 Dataflow 的專案,還是其他專案,都可以存取。如要讓 BigQuery 來源和接收器正常運作,下列兩個帳戶必須能夠存取 Dataflow 工作讀取或寫入的任何 BigQuery 資料集:
- 用來執行 Dataflow 工作的 Google Cloud 帳戶
- 執行 Dataflow 工作的工作站服務帳戶
您可能需要設定 BigQuery 以明確為這些帳戶授予存取權。如要進一步瞭解如何使用 BigQuery 頁面或 BigQuery API 授予 BigQuery 資料集的存取權,請參閱 BigQuery 存取權控管一文。
在必要的 BigQuery 權限中,管道需要 bigquery.datasets.get
身分與存取權管理權限,才能存取 BigQuery 資料集。一般來說,大多數 BigQuery IAM 角色都包含 bigquery.datasets.get
權限,但 roles/bigquery.jobUser
角色是例外。
存取 Pub/Sub 主題和訂閱項目
如要存取 Pub/Sub 主題或訂閱項目,請使用 Pub/Sub 的身分與存取權管理功能,為工作人員服務帳戶設定權限。
需要以下 Pub/Sub 角色的權限:
roles/pubsub.subscriber
是取用資料的必要條件。- 建立 Pub/Sub 訂閱項目時,
roles/pubsub.editor
為必要欄位。 roles/pubsub.viewer
是建議做法,這樣 Dataflow 就能查詢主題和訂閱項目的設定。這項設定有兩項優點:- Dataflow 可以檢查訂閱項目中不支援的設定,這些設定可能無法正常運作。
- 如果訂閱項目未使用 10 秒的預設 ack 期限,效能就會提升。Dataflow 會在管道處理訊息時,重複延長訊息的確認期限。如果沒有
pubsub.viewer
權限,Dataflow 就無法查詢確認期限,因此必須採用預設期限。這項設定會導致 Dataflow 發出超出必要數量的 modifyAckDeadline 要求。 - 如果擁有訂閱項目或主題的專案已啟用 VPC Service Controls,Dataflow 就無法透過以 IP 位址為準的傳入規則查詢設定。在這種情況下,您需要以工作人員服務帳戶為依據的 Ingress 規則。
如需詳細資訊與示範如何使用 Pub/Sub 身分與存取權管理功能的程式碼範例,請參閱用途範例:跨專案通訊。
存取 Firestore
如要存取 Firestore 資料庫 (Native 模式或 Datastore 模式),請將 Dataflow 工作者服務帳戶 (例如 PROJECT_NUMBER-compute@developer.gserviceaccount.com
) 新增為資料庫所屬專案的編輯者,或使用限制較多的 Datastore 角色 (例如 roles/datastore.viewer
)。此外,請在 Google Cloud 主控台的API 程式庫中,為兩個專案啟用 Firestore API。
存取設有可信映像檔政策的專案映像檔
如果專案已設定可信映像檔政策,且開機映像檔位於其他專案,請確認可信映像檔政策已設定為可存取該映像檔。舉例來說,如果您執行範本化的 Dataflow 工作,請確保政策檔案包含 dataflow-service-producer-prod
專案的存取權。這個 Google Cloud 專案包含範本工作的圖片。
資料存取與安全性
Dataflow 服務可處理兩種資料:
使用者資料。這項資料會由 Dataflow pipeline 處理。一般管道會從一或多個來源讀取資料、實作資料轉換,並將結果寫入一或多個接收器。所有來源和接收器都是儲存空間服務,並非由 Dataflow 直接管理。
營運資料。這項資料包括管理 Dataflow 管道所需的所有中繼資料。這項資料包括使用者提供的中繼資料 (例如工作名稱或管道選項),以及系統產生的中繼資料 (例如工作 ID)。
Dataflow 服務使用多種安全機制來保護資料安全和隱私。這些機制適用於下列情境:
- 將管道提交至服務
- 評估管道
- 在管道執行期間與執行完成後要求存取遙測資料和指標時
- 使用 Shuffle 或 Streaming Engine 等 Dataflow 服務
資料本地性
Dataflow 的所有核心資料處理作業,都會在管道程式碼中指定的區域進行。如未指定區域,系統會使用預設區域 us-central1
。如果您在管道程式碼中指定該選項,管道作業就能選擇從其他區域的來源和接收器讀取及寫入資料。不過,實際的資料處理作業只會在指定執行 Dataflow VM 的區域進行。
系統會在個別工作站 VM 執行個體上評估管道邏輯。您可以指定這些執行個體的所在區域,以及指定用來進行通訊的私人網路所在位置。平台的輔助運算作業會使用中繼資料,例如 Cloud Storage 位置或檔案大小。
Dataflow 是地區性服務。如要進一步瞭解資料區域和地區,請參閱「Dataflow 地區」。
管道提交中的資料
專案的 IAM 權限可控管 Dataflow 服務的存取權。 Google Cloud 任何具備專案編輯者或擁有者權限的主體,都可以將管道提交至服務。如要提交管道,您必須使用 Google Cloud CLI 進行驗證。驗證完成後,系統會使用 HTTPS 通訊協定提交管道。如需使用 Google Cloud 帳戶憑證進行驗證的操作說明,請參閱您所用語言的快速入門導覽課程。
管道評估中的資料
在評估管道的過程中,系統可能會產生暫存資料,並儲存在本機的工作站 VM 執行個體或 Cloud Storage 中。系統存放暫存資料時會經過靜態加密,而且資料在管道評估作業完成後不會保留下來。如果選擇使用 Shuffle 服務或 Streaming Engine 服務,這類資料也會儲存在 Dataflow 管道中指定的相同區域。
Java
根據預設,系統會在 Dataflow 工作完成時刪除 Compute Engine VM,無論工作成功或失敗。因此,相關聯的永久磁碟和其中儲存的任何中繼資料都會遭到刪除。儲存在 Cloud Storage 的中繼資料,可以在您以 --stagingLocation
或 --tempLocation
提供的 Cloud Storage 路徑子位置中找到。如果您將輸出寫入 Cloud Storage 檔案,系統在 `write` 作業完成前可能會在輸出位置建立暫存檔案。
Python
根據預設,系統會在 Dataflow 工作完成時刪除 Compute Engine VM,無論工作成功或失敗。因此,相關聯的永久磁碟和其中儲存的任何中繼資料都會遭到刪除。儲存在 Cloud Storage 的中繼資料,可以在您以 --staging_location
或 --temp_location
提供的 Cloud Storage 路徑子位置中找到。如果您將輸出寫入 Cloud Storage 檔案,系統在 `write` 作業完成前可能會在輸出位置建立暫存檔案。
Go
根據預設,系統會在 Dataflow 工作完成時刪除 Compute Engine VM,無論工作成功或失敗。因此,相關聯的永久磁碟和其中儲存的任何中繼資料都會遭到刪除。儲存在 Cloud Storage 的中繼資料,可以在您以 --staging_location
或 --temp_location
提供的 Cloud Storage 路徑子位置中找到。如果您將輸出寫入 Cloud Storage 檔案,系統在 `write` 作業完成前可能會在輸出位置建立暫存檔案。
管道記錄和遙測資料
儲存在 Cloud Logging 中的資訊主要是由 Dataflow 程式的程式碼產生。Dataflow 服務也可能會在 Cloud Logging 中產生警告與錯誤資料,這是該服務唯一會新增至記錄的中繼資料。Cloud Logging 是一項全球服務。
遙測資料和相關聯的指標會經過靜態加密,這類資料的存取權是由 Google Cloud 專案的讀取權限控管。
Dataflow 服務中的資料
如果管道使用 Dataflow Shuffle 或 Dataflow Streaming,請勿指定區域管道選項。請改為指定地區,並將值設為可使用 Shuffle 或 Streaming 的其中一個地區。Dataflow 會自動選取指定地區中的區域。傳輸中的使用者資料會保留在工作站 VM 中,並位於同一可用區。這些 Dataflow 工作仍可讀取及寫入 VM 區域以外的來源和接收器。傳輸中的資料也可以傳送至 Dataflow Shuffle 或 Dataflow Streaming 服務,但資料一律會保留在管道程式碼中指定的區域。
建議做法
建議您使用管道基礎雲端資源提供的安全機制,這些機制包括 BigQuery 和 Cloud Storage 等資料來源和接收器的資料安全防護功能。此外,我們也建議您儘可能避免在單一專案中混用不同的信任層級。