本页介绍了如何在 Cloud Key Management Service (Cloud KMS) 中现有密钥环上创建 Cloud External Key Manager (Cloud EKM) 密钥。
准备工作
在完成本页中的任务之前,您需要满足以下条件:
-
一个 Google Cloud 项目资源,用于存放您的 Cloud KMS 资源。我们建议您为 Cloud KMS 资源使用单独的项目,该项目不包含任何其他 Google Cloud 资源。
记下项目的 Cloud EKM 服务帐号。在以下示例中,将
PROJECT_NUMBER替换为您的 Google Cloud 项目 的项目编号。每次使用 Google Cloud 控制台创建 Cloud EKM 密钥时,也会显示此信息。service-PROJECT_NUMBER@gcp-sa-ekms.iam.gserviceaccount.com - 您要在其中创建密钥的密钥环的名称和位置。 选择位于靠近其他资源且 支持 Cloud EKM 的位置的密钥环。 如需查看可用的位置及其支持的保护级别,请参阅 Cloud KMS 位置。 如需创建密钥环,请参阅创建密钥 环。
-
如需创建手动管理的外部密钥,您必须在 外部密钥管理合作伙伴系统中创建密钥。确切的步骤因 外部密钥管理合作伙伴而异。
- 如有必要,请向您的外部密钥管理合作伙伴申请访问权限,以 参与此过程。
-
在外部密钥管理合作伙伴系统中创建对称密钥或非对称密钥,或 选择现有密钥。
在您计划用于 Cloud EKM 密钥的区域附近的区域中创建密钥。 Google Cloud 这有助于减少项目和外部密钥管理合作伙伴之间的网络延迟。 Google Cloud 否则,操作失败的次数可能会增加。 如需了解详情,请参阅 Cloud EKM 和区域。
- 请记下外部密钥的 URI 或密钥路径。您需要此 信息才能创建 Cloud EKM 密钥。
- 在外部密钥管理合作伙伴系统中,向 Google Cloud服务帐号授予使用外部密钥的权限。将服务帐号 视为电子邮件地址。EKM 合作伙伴可能会使用与本文档中使用的术语不同的术语。
- 如需创建 EKM over VPC 密钥,您需要 创建 EKM 连接。
- 可选:如需使用 gcloud CLI,请准备您的环境。
在 Google Cloud 控制台中,激活 Cloud Shell。
所需角色
如需获得创建密钥所需的权限,请让您的管理员为您授予项目或父级资源的 Cloud KMS Admin (roles/cloudkms.admin) IAM 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
此预定义角色可提供 创建密钥所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
创建密钥需要以下权限:
-
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
创建协调的外部密钥
控制台
在 Google Cloud 控制台中,前往 密钥管理 页面。
点击您要为其创建密钥的密钥环的名称。
点击创建密钥 。
对于密钥名称,请输入密钥的名称。
对于保护级别 ,请选择外部 。
对于外部密钥管理器 (EKM) 连接类型 ,请选择通过 VPC 。
对于通过 VPC 连接的 EKM,请选择一个连接。
如果您没有
EkmConnection.list权限,则必须手动输入连接资源名称。点击继续 。
在密钥材料 部分,您应该会看到一条消息,指出 Cloud KMS 请求了新的密钥材料,并且这些材料已在您的 EKM 中生成。如果您看到密钥路径 字段,则表示您选择的通过 VPC 连接的 EKM 未配置为协调的外部密钥。
根据需要配置其余密钥设置,然后点击创建 。
Cloud EKM 会向您的 EKM 发送创建新密钥的请求。在 EKM 返回密钥路径并且 Cloud EKM 密钥可用之前,该密钥会显示为待生成 。
gcloud
如需在命令行上使用 Cloud KMS,请先 安装或升级到最新版本的 Google Cloud CLI。
gcloud kms keys create KEY_NAME \
--keyring KEY_RING \
--location LOCATION \
--purpose PURPOSE \
--default-algorithm ALGORITHM \
--protection-level "external-vpc" \
--crypto-key-backend VPC_CONNECTION_RESOURCE_ID
替换以下内容:
KEY_NAME:密钥的名称。KEY_RING:包含密钥的密钥环的名称。LOCATION:密钥环的 Cloud KMS 位置。PURPOSE:密钥的用途。ALGORITHM:要用于密钥的算法,例如google-symmetric-encryption。如需查看支持的算法的列表, 请参阅算法。VPC_CONNECTION_RESOURCE_ID:EKM 连接的资源 ID。
如需了解所有标志和可能值,请使用 --help 标志运行命令。
创建手动管理的 Cloud EKM via VPC 密钥
控制台
在 Google Cloud 控制台中,前往 密钥管理 页面。
点击您要为其创建密钥的密钥环的名称。
点击创建密钥 。
对于密钥名称,请输入密钥的名称。
对于保护级别 ,请选择外部 。
对于外部密钥管理器 (EKM) 连接类型 ,请选择通过 VPC 。
对于通过 VPC 连接的 EKM,请选择一个连接。
注意:如果您没有
EkmConnection.list权限,则必须手动输入连接资源名称。点击继续 。
在密钥路径 字段中,输入外部密钥的路径。
根据需要配置其余密钥设置,然后点击创建 。
gcloud
如需在命令行上使用 Cloud KMS,请先 安装或升级到最新版本的 Google Cloud CLI。
gcloud kms keys create KEY_NAME \
--keyring KEY_RING \
--location LOCATION \
--purpose PURPOSE \
--default-algorithm ALGORITHM \
--protection-level "external-vpc" \
--skip-initial-version-creation \
--crypto-key-backend VPC_CONNECTION_RESOURCE_ID
替换以下内容:
KEY_NAME:密钥的名称。- KEY_RING
LOCATION:密钥环的 Cloud KMS 位置。PURPOSE:密钥的用途。ALGORITHM:要用于密钥的算法,例如google-symmetric-encryption。如需查看支持的算法的列表, 请参阅算法。VPC_CONNECTION_RESOURCE_ID:EKM 连接的资源 ID。
如需了解所有标志和可能值,请使用 --help 标志运行命令。
创建手动管理的 Cloud EKM via internet 密钥
控制台
在 Google Cloud 控制台中,前往 密钥管理 页面。
点击您要为其创建密钥的密钥环的名称。
点击创建密钥 。
对于密钥名称,请输入密钥的名称。
对于保护级别 ,请选择外部 。
对于外部密钥管理器 (EKM) 连接类型 ,请选择通过互联网 。
点击继续 。
在密钥 URI 字段中,输入外部密钥的路径。
根据需要配置其余密钥设置,然后点击创建 。
gcloud
如需在命令行上使用 Cloud KMS,请先 安装或升级到最新版本的 Google Cloud CLI。
创建空的外部密钥:
gcloud kms keys create KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --purpose PURPOSE \ --protection-level external \ --skip-initial-version-creation \ --default-algorithm ALGORITHM
替换以下内容:
KEY_NAME:密钥的名称。KEY_RING:包含密钥的密钥环的名称。LOCATION:密钥环的 Cloud KMS 位置。PURPOSE:密钥的用途。ALGORITHM:要用于密钥的算法,例如google-symmetric-encryption。如需查看支持的算法的列表, 请参阅算法。
如需了解所有标志和可能值,请使用
--help标志运行命令。为您刚刚创建的密钥创建新密钥版本:
gcloud kms keys versions create \ --key KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --external-key-uri EXTERNAL_KEY_URI
将
EXTERNAL_KEY_URI替换为外部密钥的 URI。对于对称密钥版本,请添加
--primary标志以将新密钥版本设置为主版本。