默认情况下,Compute Engine 会对静态客户内容进行加密。Compute Engine 会为您处理和管理这项加密工作,您无需执行任何额外操作。此选项称为 Google 管理的加密。
但如果在合规性或加密材料位置方面有相关的特定要求,则可以自定义 Compute Engine 为资源使用的加密。您可以通过提供密钥加密密钥来自定义加密。密钥加密密钥不直接加密数据,而是对 Compute Engine 用来加密数据的 Google 生成的密钥进行加密。
您可以通过两种方式提供密钥加密密钥:
推荐。使用 Compute Engine 中的 Cloud Key Management Service (Cloud KMS) 创建和管理密钥加密密钥。
由 Cloud Key Management Service 管理的密钥称为客户管理的加密密钥 (CMEK)。创建密钥后,您可以将其用作磁盘的密钥加密密钥。
您可以直接创建 CMEK,也可以使用 Cloud KMS Autokey 自动创建。如需了解详情,请参阅 Cloud KMS with Autokey。
在大多数情况下,创建 CMEK 加密的磁盘后,您无需在使用磁盘时指定密钥。
您可以在 Compute Engine 之外管理自己的密钥加密密钥,并在创建或管理磁盘时提供密钥。此选项称为客户提供的加密密钥 (CSEK)。管理 CSEK 加密资源时,必须始终指定加密资源时使用的密钥。
如需了解详情,请参阅客户管理的加密密钥和客户提供的加密密钥。
支持的磁盘类型
本部分列出了 Compute Engine 提供的磁盘和其他存储选项支持的加密类型。
永久性磁盘卷支持 Google 默认加密、CMEK 和 CSEK。
Google Cloud Hyperdisk 支持 CMEK 和 Google 默认加密。您无法使用 CSEK 来加密 Hyperdisk。
本地 SSD 磁盘仅支持 Google 默认加密。您无法使用 CSEK 或 CMEK 来加密本地 SSD 磁盘。
使用客户管理的加密密钥来加密磁盘
如需详细了解如何使用客户管理的加密密钥 (CMEK) 来加密磁盘和其他 Compute Engine 资源,请参阅使用 Cloud KMS 密钥保护资源。
使用客户提供的加密密钥来加密磁盘
如需了解如何使用客户提供的加密密钥 (CSEK) 来加密磁盘和其他 Compute Engine 资源,请参阅使用客户提供的加密密钥来加密磁盘。
查看有关磁盘加密的信息
Compute Engine 中的磁盘使用 Google 管理的加密密钥、客户管理的加密密钥或客户提供的加密密钥进行加密。Google 管理的加密是默认选项。
如需查看磁盘的加密类型,您可以使用 gcloud CLI、Google Cloud 控制台或 Compute Engine API。
控制台
在 Google Cloud 控制台中,转到磁盘页面。
在名称列中,点击磁盘的名称。
在属性表中,标记为加密的行表示加密的类型:由 Google 管理、由客户管理或由客户提供。
gcloud
-
In the Google Cloud console, 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.
使用
gcloud compute disks describe
命令:gcloud compute disks describe DISK_NAME \ --zone=ZONE \ --format="json(diskEncryptionKey)"
替换以下内容:
PROJECT_ID
:您的项目 ID。ZONE
:您的磁盘所在的区域。DISK_NAME
:磁盘的名称。命令输出
如果输出为
null
,则表示磁盘使用默认的 Google 管理的加密。否则,输出为 JSON 对象。
如果 JSON 对象包含名为
diskEncryptionKey
的字段,则磁盘会进行加密。diskEncryptionKey
对象包含有关磁盘是使用 CMEK 加密还是 CSEK 加密的信息:- 如果存在
diskEncryptionKey.kmsKeyName
属性,则表示磁盘采用 CMEK 加密。kmsKeyName
属性指示用于加密磁盘的特定密钥的名称:{ "diskEncryptionKey": { "kmsKeyName": "projects/my-proj/.." } }
- 如果存在
diskEncryptionKey.sha256
属性,则表示磁盘采用 CSEK 加密。sha256
属性是用于保护磁盘的客户提供的加密密钥的 SHA-256 哈希。{ "diskEncryptionKey": { "sha256": "abcdefghijk134560459345dssfd" } }
- 如果存在
API
向 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 管理的加密。
否则,响应为 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,通过密钥使用情况跟踪来查看密钥所保护的资源。如需了解详情,请参阅查看密钥使用情况。
后续步骤
- 如需了解如何自动创建 CMEK,请参阅 Cloud KMS with Autokey(预览版)。
- 如需了解如何创建 CMEK,请参阅使用 Cloud KMS 创建加密密钥。
- 使用客户管理的加密密钥 (CMEK) 加密磁盘。
- 详细了解 CSEK 的格式和规范。