本页面介绍如何在 Cloud KMS 中创建密钥。密钥可以是以下类型:对称或非对称加密密钥、非对称签名密钥或 MAC 签名密钥。
创建密钥时,您将其添加到特定 Cloud KMS 位置中的密钥环。您可以创建新的密钥环,也可以使用现有的密钥环。 在此页面中,您将生成新的 Cloud KMS 或 Cloud HSM 密钥,并将其添加到现有密钥环中。 如需创建 Cloud EKM 密钥,请参阅创建外部密钥。如需导入 Cloud KMS 或 Cloud HSM 密钥,请参阅导入密钥。
准备工作
在完成本页面上的任务之前,您需要具备以下条件:
- 用于包含 Cloud KMS 资源的 Google Cloud 项目资源。我们建议您为 Cloud KMS 资源使用单独的项目,该项目不包含任何其他 Google Cloud 资源。
- 您要在其中创建密钥的密钥环的名称和位置。 选择一个位置靠近其他资源且支持所选防护等级的密钥环。 如需查看可用的位置及其支持的保护级别,请参阅 Cloud KMS 位置。 如需创建密钥环,请参阅创建密钥环。
- 可选:如需使用 gcloud CLI,请准备好您的环境。
在 Google Cloud 控制台中,激活 Cloud Shell。
所需的角色
如需获得创建密钥所需的权限,请让管理员为您授予项目或父级资源的以下 IAM 角色:
- Cloud KMS Admin (
roles/cloudkms.admin) -
如需创建单租户 HSM 密钥,请授予以下角色:
Cloud KMS single-tenant HSM Key Creator (
roles/cloudkms.hsmSingleTenantKeyCreator)
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
这些预定义角色包含创建密钥所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
创建密钥需要以下权限:
-
cloudkms.cryptoKeys.create -
cloudkms.cryptoKeys.get -
cloudkms.cryptoKeys.list -
cloudkms.cryptoKeyVersions.create -
cloudkms.cryptoKeyVersions.get -
cloudkms.cryptoKeyVersions.list -
cloudkms.keyRings.get -
cloudkms.keyRings.list -
cloudkms.locations.get -
cloudkms.locations.list -
resourcemanager.projects.get -
如需检索公钥,请执行以下操作:
cloudkms.cryptoKeyVersions.viewPublicKey -
如需创建单租户 HSM 密钥,请执行以下操作:
-
cloudkms.singleTenantHsmInstances.get -
cloudkms.singleTenantHsmInstances.use
-
创建对称加密密钥
控制台
在 Google Cloud 控制台中,前往密钥管理页面。
点击您要为其创建密钥的密钥环的名称。
点击创建密钥。
在密钥名称部分,输入密钥的名称。
对于保护级别,请选择软件、HSM 或单租户 HSM。
如果您选择了单租户 HSM,请选择要在其中创建密钥的单租户 HSM 实例。
对于密钥材料,请选择生成的密钥。
对于用途,选择 Symmetric encrypt/decrypt。
接受轮替周期和开始日期的默认值。
点击创建。
gcloud
如需在命令行上使用 Cloud KMS,请先安装或升级到最新版本的 Google Cloud CLI。
如需创建软件或多租户 Cloud HSM 密钥,请使用 kms keys create 命令:
gcloud kms keys create KEY_NAME \
--keyring KEY_RING \
--location LOCATION \
--purpose "encryption" \
--protection-level "PROTECTION_LEVEL"
替换以下内容:
KEY_NAME:密钥的名称。KEY_RING:包含密钥的密钥环的名称。LOCATION:密钥环的 Cloud KMS 位置。PROTECTION_LEVEL:要用于密钥的保护级别,例如software或hsm。您可以针对software密钥省略--protection-level标志。
如需了解所有标志和可能值,请使用 --help 标志运行命令。
kms keys create 命令添加 --crypto-key-backend 标志:
gcloud kms keys create KEY_NAME \
--keyring KEY_RING \
--location LOCATION \
--purpose "encryption" \
--protection-level "hsm-single-tenant" \
--crypto-key-backend="projects/INSTANCE_PROJECT/locations/LOCATION/singleTenantHsmInstances/INSTANCE_NAME"
替换以下内容:
INSTANCE_PROJECT:单租户 Cloud HSM 实例所在项目的标识符。INSTANCE_NAME:您要在其中创建密钥的单租户 Cloud HSM 实例的名称。如需详细了解单租户 Cloud HSM 实例,请参阅创建和管理单租户 Cloud HSM 实例。
如需了解所有标志和可能值,请使用 --help 标志运行命令。
C#
要运行此代码,请先设置 C# 开发环境并安装 Cloud KMS C# SDK。