根據預設, Google Cloud 無伺服器 Apache Spark 會加密靜態儲存的客戶內容。Serverless for Apache Spark 會為您處理加密作業,您不必採取任何其他動作。這項做法稱為「Google 預設加密」。
如要控管加密金鑰,您可以在 Cloud KMS 中使用客戶自行管理的加密金鑰 (CMEK),搭配整合 CMEK 的服務,包括 Serverless for Apache Spark。使用 Cloud KMS 金鑰可讓您控管保護等級、位置、輪換時間表、使用權限和存取權,以及加密範圍。使用 Cloud KMS 也能追蹤金鑰使用情形、查看稽核記錄,以及控管金鑰生命週期。您可以在 Cloud KMS 中控制及管理這些金鑰,而不是由 Google 擁有及管理用來保護您資料的對稱金鑰加密金鑰 (KEK)。
使用 CMEK 設定資源後,存取 Serverless for Apache Spark 資源的體驗與使用 Google 預設加密機制類似。如要進一步瞭解加密選項,請參閱客戶管理的加密金鑰 (CMEK)。
使用 CMEK
請按照本節步驟,使用 CMEK 加密 Google Cloud Serverless for Apache Spark 寫入永久磁碟和 Dataproc 暫存值區的資料。
複製資源名稱。
projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME
啟用 Compute Engine、Dataproc 和 Cloud Storage 服務代理程式服務帳戶,以使用您的金鑰:
- 請參閱「使用 Cloud KMS 金鑰保護資源> 必要角色」一節,將 Cloud KMS CryptoKey Encrypter/Decrypter 角色指派給 Compute Engine 服務代理人服務帳戶。 如果這個服務帳戶未列在 Google Cloud 控制台的「IAM」頁面,請按一下「包含 Google 提供的角色授權」,即可列出該帳戶。
將 Cloud KMS CryptoKey Encrypter/Decrypter 角色指派給 Dataproc 服務代理人服務帳戶。 您可以使用 Google Cloud CLI 指派角色:
gcloud projects add-iam-policy-binding KMS_PROJECT_ID \ --member serviceAccount:service-PROJECT_NUMBER@dataproc-accounts.iam.gserviceaccount.com \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter
更改下列內容:
KMS_PROJECT_ID
:執行 Cloud KMS 的 Google Cloud 專案 ID。這個專案也可以是執行 Dataproc 資源的專案。PROJECT_NUMBER
:執行 Dataproc 資源的 Google Cloud 專案編號 (不是專案 ID)。在執行 Serverless for Apache Spark 資源的專案中啟用 Cloud KMS API。
如果Dataproc 服務代理人角色未附加至 Dataproc 服務代理人服務帳戶,請將
serviceusage.services.use
權限新增至附加至 Dataproc 服務代理人服務帳戶的自訂角色。如果 Dataproc 服務代理人角色已附加至 Dataproc 服務代理人服務帳戶,可以略過這個步驟。按照步驟在 bucket 中新增金鑰。
提交批次工作負載時:
- 在批次
kmsKey
參數中指定金鑰。 - 在批次
stagingBucket
參數中指定 Cloud Storage bucket 名稱。
- 在批次
-
- 在工作階段
kmsKey
參數中指定金鑰。 - 在工作階段
stagingBucket
參數中指定 Cloud Storage bucket 名稱。
- 在工作階段