根據預設,Managed Service for Apache Spark 會對客戶的靜態內容進行加密。Managed Service for Apache Spark 會為您處理加密作業,您不必進行任何其他操作。這項選項稱為「Google 預設加密」。
如要控管加密金鑰,您可以在 Cloud KMS 中使用客戶自行管理的加密金鑰 (CMEK),搭配整合 CMEK 的服務 (包括 Managed Service for Apache Spark)。使用 Cloud KMS 金鑰可讓您控管防護等級、位置、輪替時間表、使用權限和存取權,以及加密範圍。 使用 Cloud KMS 還能追蹤金鑰用量、查看稽核記錄,以及控管金鑰生命週期。 您可以在 Cloud KMS 中控制及管理用來保護資料的對稱金鑰加密金鑰 (KEK),而不是由 Google 擁有及管理這些金鑰。
使用 CMEK 設定資源後,存取 Managed Service for Apache Spark 資源的體驗與使用 Google 預設加密機制類似。如要進一步瞭解加密選項,請參閱「客戶自行管理的加密金鑰 (CMEK)」。
使用 CMEK
請按照本節中的步驟,使用 CMEK 加密 Managed Service for Apache Spark 寫入永久磁碟和 Managed Service for Apache Spark 暫存值區的資料。
您可以使用 Cloud Key Management Service 建立及管理金鑰環和金鑰,也可以使用 Cloud KMS Autokey 簡化金鑰環和金鑰的自動建立程序。
使用 Cloud KMS Autokey
- 在含有專案的資料夾上啟用 Autokey。
- 建立金鑰控制代碼。建立金鑰控制代碼時,請將
dataproc.googleapis.com/Batch或dataproc.googleapis.com/Session指定為--resource-type。Autokey 會產生金鑰,並指派給金鑰控制代碼。 - 請按照後續「手動建立及使用金鑰」一節中的步驟 4 和 5,授予服務帳戶權限,並設定批次或工作階段工作負載。提交工作負載時,請在
kmsKey欄位中指定金鑰控制代碼資源名稱,而非金鑰資源名稱。
手動建立及使用金鑰
請按照下列步驟手動建立 Cloud KMS 金鑰,並搭配 Managed Service for Apache Spark 使用。
複製資源名稱。
資源名稱的構造如下:
projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME
啟用 Compute Engine、Managed Service for Apache Spark 和 Cloud Storage 服務代理程式服務帳戶,以使用您的金鑰:
- 請參閱「使用 Cloud KMS 金鑰保護資源」>「必要角色」,將 Cloud KMS CryptoKey Encrypter/Decrypter 角色指派給 Compute Engine 服務代理人服務帳戶。如果這個服務帳戶未列在 Google Cloud 主控台的 IAM 頁面中,請按一下「包含 Google 提供的角色授權」,即可列出該帳戶。
將 Cloud KMS CryptoKey Encrypter/Decrypter 角色指派給 Managed Service for Apache Spark 服務代理人服務帳戶。您可以使用 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。這個專案也可以是執行 Managed Service for Apache Spark 資源的專案。PROJECT_NUMBER:執行 Managed Service for Apache Spark 資源的專案編號 (不是專案 ID)。 Google Cloud在執行 Managed Service for Apache Spark 資源的專案中啟用 Cloud KMS API。
如果Managed Service for Apache Spark 服務代理角色未附加至 Managed Service for Apache Spark 服務代理服務帳戶,請將
serviceusage.services.use權限新增至附加至 Managed Service for Apache Spark 服務代理服務帳戶的自訂角色。如果 Managed Service for Apache Spark 服務代理角色已附加至 Managed Service for Apache Spark 服務代理服務帳戶,則可略過這個步驟。按照步驟在 bucket 中新增金鑰。
提交批次工作負載時:
- 在批次
kmsKey參數中指定金鑰。 - 在批次
stagingBucket參數中指定 Cloud Storage 值區名稱。
- 在批次
-
- 在工作階段
kmsKey參數中指定金鑰。 - 在工作階段
stagingBucket參數中指定 Cloud Storage 值區名稱。
- 在工作階段