關於磁碟加密


根據預設,Compute Engine 會加密靜態儲存的客戶內容。Compute Engine 會自動使用 Google-owned and Google-managed encryption keys 加密資料。

不過,您可以提供金鑰加密金鑰 (KEK),自訂 Compute Engine 用於資源的加密方式。金鑰加密金鑰不會直接加密您的資料,而是加密 Compute Engine 用來加密您資料的Google-owned and managed keys 。

您有兩種方式可提供金鑰加密金鑰:

  • 建議做法:在 Cloud KMS 中使用客戶管理的加密金鑰 (CMEK) 和 Compute Engine。使用 Cloud KMS 金鑰可讓您控管保護等級、位置、輪換時間表、使用權限和存取權,以及加密範圍。使用 Cloud KMS 還能追蹤金鑰使用情形、查看稽核記錄,以及控管金鑰生命週期。您可以在 Cloud KMS 中控制及管理這些金鑰,而不是由 Google 擁有及管理用來保護您資料的對稱金鑰加密金鑰 (KEK)

    您可以手動建立 CMEK,也可以使用 Cloud KMS Autokey 代表您自動建立 CMEK。

    在大多數情況下,建立以 CMEK 加密的磁碟後,使用該磁碟時不需要指定金鑰。

  • 您可以在 Compute Engine 外部管理自己的金鑰加密金鑰,並在建立或管理磁碟時提供金鑰。這個選項稱為「客戶提供的加密金鑰」 (CSEK)。管理 CSEK 加密資源時,您一律必須指定加密資源時使用的金鑰。

如要進一步瞭解各加密類型,請參閱「客戶管理的加密金鑰」和「客戶提供的加密金鑰」。

如要為 Hyperdisk Balanced 磁碟多添一層安全防護,請啟用機密模式。機密模式會為 Hyperdisk Balanced 磁碟新增以硬體為基礎的加密功能。

支援的磁碟類型

本節列出 Compute Engine 提供的磁碟和其他儲存空間選項支援的加密類型。

使用 Cloud KMS Autokey 的 CMEK

如要使用 Cloud KMS 金鑰保護 Compute Engine 資源,您可以手動建立 CMEK,也可以使用 Cloud KMS Autokey 建立金鑰。使用 Autokey 時,系統會在 Compute Engine 中建立資源時,視需要產生金鑰環和金鑰。如果服務代理尚未建立,系統會建立服務代理,並授予必要的 Identity and Access Management (IAM) 角色,以便使用金鑰進行加密和解密作業。詳情請參閱「Autokey 總覽」。

如要瞭解如何使用 Cloud KMS Autokey 建立的 CMEK 保護 Compute Engine 資源,請參閱「搭配 Compute Engine 資源使用 Autokey」。

快照

使用 Autokey 建立金鑰來保護 Compute Engine 資源時,Autokey 不會為快照建立新金鑰。您必須使用與來源磁碟相同的金鑰加密快照。如果您使用 Google Cloud 控制台建立快照,系統會自動將磁碟使用的加密金鑰套用至快照。如果您使用 gcloud CLI、Terraform 或 Compute Engine API 建立快照,必須取得用於加密磁碟的金鑰資源 ID,然後使用該金鑰加密快照。

使用客戶管理的加密金鑰來加密磁碟

如要進一步瞭解如何使用手動建立的客戶自行管理的加密金鑰 (CMEK) 加密磁碟和其他 Compute Engine 資源,請參閱「使用 Cloud KMS 金鑰保護資源」。

使用客戶提供的加密金鑰來為磁碟加密

如要瞭解如何使用客戶提供的加密金鑰 (CSEK) 加密磁碟和其他 Compute Engine 資源,請參閱使用客戶提供的加密金鑰來為磁碟加密

查看磁碟加密資訊

Compute Engine 中的磁碟會使用下列其中一種加密金鑰加密:

  • Google-owned and managed keys
  • 客戶自行管理的加密金鑰 (CMEK)
  • 客戶提供的加密金鑰 (CSEK)

根據預設,Compute Engine 會使用 Google-owned and managed keys。

如要查看磁碟的加密類型,可以使用 gcloud CLI、 Google Cloud 主控台或 Compute Engine API。

主控台

  1. 前往 Google Cloud 控制台的「Disks」(磁碟) 頁面。

    前往「Disks」(磁碟) 頁面

  2. 在「Name」(名稱) 欄中,按一下磁碟名稱。

  3. 在「屬性」表格中,標示為「加密」的資料列會指出加密類型:Google 管理客戶管理客戶提供

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. 使用 gcloud compute disks describe 指令

        gcloud compute disks describe DISK_NAME \
          --zone=ZONE \
          --format="json(diskEncryptionKey)"
      

    更改下列內容:

    • PROJECT_ID:您的專案 ID。
    • ZONE:磁碟所在的區域。
    • DISK_NAME:磁碟名稱。

      指令輸出

      如果輸出結果為 null,表示磁碟使用 Google-owned and managed key。

      否則輸出內容為 JSON 物件。

      如果 JSON 物件包含名為 diskEncryptionKey 的欄位,表示磁碟已加密。diskEncryptionKey 物件包含磁碟是否經過 CMEK 或 CSEK 加密的相關資訊:

      • 如果存在 diskEncryptionKey.kmsKeyName 屬性,磁碟就會經過 CMEK 加密。kmsKeyName 屬性會指出用來加密磁碟的特定金鑰名稱:
        {
          "diskEncryptionKey": {
            "kmsKeyName": "projects/my-proj/.."
          }
        }
        
      • 如果存在 diskEncryptionKey.sha256 屬性,磁碟就會經過 CSEK 加密。 sha256 屬性是客戶提供的加密金鑰的 SHA-256 雜湊,用於保護磁碟。
          {
            "diskEncryptionKey": {
              "sha256": "abcdefghijk134560459345dssfd"
            }
          }
            

  3. REST

    compute.disks.get 方法發出 POST 要求。

        POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME
    

    更改下列內容:

    • PROJECT_ID:您的專案 ID。
    • ZONE:磁碟所在的區域。
    • DISK_NAME:磁碟名稱

    要求回覆

    如果回應是 null,表示磁碟使用 Google-owned and managed key。

    否則,回覆內容為 JSON 物件。

    如果 JSON 物件包含名為 diskEncryptionKey 的欄位,表示磁碟已加密。diskEncryptionKey 物件包含磁碟是否經過 CMEK 或 CSEK 加密的相關資訊:

    • 如果存在 diskEncryptionKey.kmsKeyName 屬性,磁碟就會經過 CMEK 加密。kmsKeyName 屬性會指出用來加密磁碟的特定金鑰名稱:
      {
        "diskEncryptionKey": {
          "kmsKeyName": "projects/my-proj/.."
        }
      }
      
    • 如果存在 diskEncryptionKey.sha256 屬性,磁碟就會經過 CSEK 加密。 sha256 屬性是客戶提供的加密金鑰的 SHA-256 雜湊,用於保護磁碟。
        {
          "diskEncryptionKey": {
            "sha256": "abcdefghijk134560459345dssfd"
          }
        }
          

如果磁碟使用 CMEK,請按照「依專案查看金鑰」一文中的步驟操作,即可查看金鑰、金鑰環和位置的詳細資訊。

如果磁碟使用 CSEK,請與貴機構的管理員聯絡,瞭解金鑰的詳細資訊。您也可以使用 CMEK,透過金鑰使用情形追蹤功能,查看該金鑰保護的資源。詳情請參閱「查看金鑰用量」。

Hyperdisk Balanced 機密模式

如果您使用機密運算,可以啟用機密模式,將硬體式加密功能擴展至 Hyperdisk Balanced 磁碟區。

Hyperdisk Balanced 磁碟區的機密模式可讓您啟用額外安全性,不必重構應用程式。機密模式是您建立新的 Hyperdisk Balanced 磁碟區時可以指定的屬性。

機密模式的 Hyperdisk Balanced 磁碟區只能搭配機密 VM 使用。

如要在機密模式下建立 Hyperdisk Balanced 磁碟區,請按照「在機密模式下建立 Hyperdisk Balanced 磁碟區」一文中的步驟操作。

機密模式下支援 Hyperdisk Balanced 磁碟區的機器類型

機密模式的 Hyperdisk Balanced 磁碟區只能搭配使用 N2D 機型的機密 VM。

支援 Hyperdisk Balanced 磁碟區機密模式的區域

下列區域提供 Hyperdisk Balanced 磁碟區的機密模式:

  • europe-west4
  • us-central1
  • us-east4
  • us-east5
  • us-south1
  • us-west4

機密模式下 Hyperdisk Balanced 磁碟區的限制

  • Hyperdisk Extreme、Hyperdisk Throughput、Hyperdisk ML 和 Hyperdisk Balanced High Availability 不支援機密模式。
  • 您無法暫停或恢復機密模式下使用 Hyperdisk Balanced 磁碟區的 VM。
  • 您無法在機密模式下,將 Hyperdisk 儲存空間集區與 Hyperdisk Balanced 磁碟區搭配使用。
  • 您無法在機密模式下,從 Hyperdisk Balanced 磁碟區建立機器映像檔或自訂映像檔。

後續步驟