使用客戶自行管理的加密金鑰來加密資料

根據預設,Secure Source Manager 會加密靜態儲存的客戶內容。Secure Source Manager 會為您處理加密作業,您不必採取任何其他動作。這項做法稱為「Google 預設加密」

如要控管加密金鑰,您可以在 Cloud KMS 中使用客戶自行管理的加密金鑰 (CMEK),並搭配整合 CMEK 的服務,包括 Secure Source Manager。使用 Cloud KMS 金鑰可讓您控管保護等級、位置、輪換時間表、使用權限和存取權,以及加密範圍。 使用 Cloud KMS 還能追蹤金鑰用量、查看稽核記錄,以及控管金鑰生命週期。 您可以在 Cloud KMS 中控制及管理用來保護資料的對稱金鑰加密金鑰 (KEK),而不是由 Google 擁有及管理這些金鑰。

使用 CMEK 設定資源後,存取 Secure Source Manager 資源的體驗與使用 Google 預設加密機制類似。如要進一步瞭解加密選項,請參閱「客戶管理的加密金鑰 (CMEK)」。

Cloud KMS 可在獨立專案中執行,集中管理多個專案的金鑰,也可以在與 Secure Source Manager 相同的Google Cloud 專案中執行。為支援職責分離,並進一步控管金鑰存取權,建議您在不含其他 Google Cloud資源的獨立專案中建立及管理金鑰。

您可以在建立執行個體時指派 Cloud KMS 金鑰。您無法變更現有執行個體的加密機制。如果執行個體採用 CMEK 加密,您就無法將加密機制變更為 Google 預設加密,也無法指派其他 Cloud Key Management Service 金鑰進行加密。

執行個體必須與 Cloud KMS 金鑰位於相同位置

在 Secure Source Manager 中使用 CMEK 時,專案可能會耗用 Cloud KMS 加密要求配額。建立時,以 CMEK 加密的執行個體會耗用這些配額。 只有在使用硬體 (Cloud HSM) 或外部 (Cloud EKM) 金鑰時,使用 CMEK 金鑰的加密和解密作業才會影響 Cloud KMS 配額。 詳情請參閱 Cloud KMS 配額

建立 CMEK 金鑰並授予權限

下列操作說明將說明如何建立金鑰,並授予 Secure Source Manager 服務帳戶金鑰權限。

  1. 在要管理金鑰的 Google Cloud 專案中:

    1. 啟用 Cloud KMS API

    2. 使用下列其中一種方式建立金鑰環和金鑰:

      Cloud KMS 金鑰位置必須與要建立 Secure Source Manager 執行個體的專案位置相同。

  2. 如果您要在專案中建立第一個 Secure Source Manager 執行個體,請執行下列指令,手動建立 Secure Source Manager 服務代理程式:

    gcloud beta services identity create \
    --service=securesourcemanager.googleapis.com \
    --project=PROJECT
    

    其中 PROJECT 是專案的專案 ID,您將在該專案中建立 Secure Source Manager 執行個體。

    建立每個產品和專案的服務帳戶 (P4SA) 後,您必須將 Secure Source Manager 服務代理程式角色 (roles/securesourcemanager.serviceAgent) 授予主體 service-PROJECT-NUMBER@gcp-sa-sourcemanager.iam.gserviceaccount.com,否則執行個體建立作業會失敗。

  3. CryptoKey Encrypter/Decrypter IAM 角色 (roles/cloudkms.cryptoKeyEncrypterDecrypter) 授予 Secure Source Manager 服務帳戶。在您建立的金鑰上授予這項權限。

    主控台

    1. 前往「金鑰管理」頁面。

      前往「金鑰管理」

    2. 選取要使用的金鑰環,開啟「金鑰環詳細資料」 頁面,然後選取您建立的金鑰。

    3. 授予 Secure Source Manager 服務帳戶存取權:

      1. 按一下「新增原則」
      2. 新增 Secure Source Manager 服務帳戶。服務帳戶為 service-PROJECT-NUMBER@gcp-sa-sourcemanager.iam.gserviceaccount.com,其中 PROJECT-NUMBER 是啟用 Secure Source Manager 的專案專案編號。 Google Cloud
      3. 在「選取角色」中,依序選取「Cloud KMS」 >「Cloud KMS CryptoKey Encrypter/Decrypter」
      4. 按一下 [儲存]
    4. 重複上一個步驟,授予將建立 Secure Source Manager 執行個體的帳戶存取權。

    5. 返回「金鑰管理」頁面,選取金鑰環,然後開啟「金鑰環詳細資料」頁面。然後再次選取金鑰。

    6. 選取「顯示資訊面板」。您應該會在「角色/成員」欄中看到角色。

    gcloud

    1. 執行下列指令,授予 Secure Source Manager 服務帳戶存取權:

      gcloud kms keys add-iam-policy-binding [--project=PROJECT] \
             KEY_NAME --location LOCATION --keyring=KEY_RING \
             --member serviceAccount:service-PROJECT_NUMBER@gcp-sa-sourcemanager.iam.gserviceaccount.com \
             --role roles/cloudkms.cryptoKeyEncrypterDecrypter
      

      更改下列內容:

      • PROJECT:包含金鑰的專案 ID
      • KEY_NAME:金鑰名稱
      • LOCATION:金鑰位置。金鑰位置必須與要部署 Secure Source Manager 執行個體的專案位置相符
      • KEY_RING:金鑰環名稱
      • PROJECT_NUMBER:已啟用 Secure Source Manager 的Google Cloud 專案專案編號
    2. 重複上一個步驟,授予將建立 Secure Source Manager 執行個體的帳戶存取權。

    如要進一步瞭解這個指令,請參閱 gcloud kms keys add-iam-policy-binding 說明文件。

移除存取權限

您可以透過下列幾種方式移除 CMEK 加密存放區的存取權:

建議您先撤銷 Secure Source Manager 服務帳戶的權限,再停用或銷毀金鑰。權限變更會在幾秒內生效,因此您可以觀察停用或刪除金鑰的影響。

停用或刪除執行個體的加密金鑰後,您將無法查看或擷取執行個體的資料。您將無法存取執行個體中儲存的所有資料,包括程式碼記錄、提取要求和問題。

具備 Secure Source Manager 執行個體管理員角色或執行個體擁有者角色的使用者可以刪除執行個體。

CMEK 組織政策

Secure Source Manager 支援機構政策限制,可要求使用 CMEK 保護機制。

政策可以限制哪些 Cloud KMS CryptoKey 可用於 CMEK 保護措施。

  • 如果 Secure Source Manager API 位於限制 constraints/gcp.restrictNonCmekServices 的服務政策清單中,Secure Source Manager 會拒絕建立未受 CMEK 保護的新執行個體。Deny

  • 設定 constraints/gcp.restrictCmekCryptoKeyProjects 後,Secure Source Manager 會建立受 CMEK 保護的執行個體,這些執行個體受到允許的專案、資料夾或機構中的 CryptoKey 保護。

如要進一步瞭解如何設定機構政策,請參閱「CMEK 機構政策」。

後續步驟