创建外部密钥

本页介绍了如何在 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 位置。 如需创建密钥环,请参阅创建密钥 环
  • 如需创建手动管理的外部密钥,您必须在 外部密钥管理合作伙伴系统中创建密钥。确切的步骤因 外部密钥管理合作伙伴而异。

    1. 如有必要,请向您的外部密钥管理合作伙伴申请访问权限,以 参与此过程。
    2. 在外部密钥管理合作伙伴系统中创建对称密钥或非对称密钥,或 选择现有密钥。

      在您计划用于 Cloud EKM 密钥的区域附近的区域中创建密钥。 Google Cloud 这有助于减少项目和外部密钥管理合作伙伴之间的网络延迟。 Google Cloud 否则,操作失败的次数可能会增加。 如需了解详情,请参阅 Cloud EKM 和区域

    3. 请记下外部密钥的 URI 或密钥路径。您需要此 信息才能创建 Cloud EKM 密钥。
  • 在外部密钥管理合作伙伴系统中,向 Google Cloud服务帐号授予使用外部密钥的权限。将服务帐号 视为电子邮件地址。EKM 合作伙伴可能会使用与本文档中使用的术语不同的术语。
  • 如需创建 EKM over VPC 密钥,您需要 创建 EKM 连接
  • 可选:如需使用 gcloud CLI,请准备您的环境。

    在 Google Cloud 控制台中,激活 Cloud Shell。

    激活 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

您也可以使用自定义角色或其他预定义角色来获取这些权限。

创建协调的外部密钥

控制台

  1. 在 Google Cloud 控制台中,前往 密钥管理 页面。

    前往 Key Management

  2. 点击您要为其创建密钥的密钥环的名称。

  3. 点击创建密钥

  4. 对于密钥名称,请输入密钥的名称。

  5. 对于保护级别 ,请选择外部

  6. 对于外部密钥管理器 (EKM) 连接类型 ,请选择通过 VPC

  7. 对于通过 VPC 连接的 EKM,请选择一个连接。

    如果您没有 EkmConnection.list 权限,则必须手动输入连接资源名称。

  8. 点击继续

  9. 密钥材料 部分,您应该会看到一条消息,指出 Cloud KMS 请求了新的密钥材料,并且这些材料已在您的 EKM 中生成。如果您看到密钥路径 字段,则表示您选择的通过 VPC 连接的 EKM 未配置为协调的外部密钥。

  10. 根据需要配置其余密钥设置,然后点击创建

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 密钥

控制台

  1. 在 Google Cloud 控制台中,前往 密钥管理 页面。

    前往 Key Management

  2. 点击您要为其创建密钥的密钥环的名称。

  3. 点击创建密钥

  4. 对于密钥名称,请输入密钥的名称。

  5. 对于保护级别 ,请选择外部

  6. 对于外部密钥管理器 (EKM) 连接类型 ,请选择通过 VPC

  7. 对于通过 VPC 连接的 EKM,请选择一个连接。

    注意:如果您没有 EkmConnection.list 权限,则必须手动输入连接资源名称。

  8. 点击继续

  9. 密钥路径 字段中,输入外部密钥的路径。

  10. 根据需要配置其余密钥设置,然后点击创建

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 密钥

控制台

  1. 在 Google Cloud 控制台中,前往 密钥管理 页面。

    前往 Key Management

  2. 点击您要为其创建密钥的密钥环的名称。

  3. 点击创建密钥

  4. 对于密钥名称,请输入密钥的名称。

  5. 对于保护级别 ,请选择外部

  6. 对于外部密钥管理器 (EKM) 连接类型 ,请选择通过互联网

  7. 点击继续

  8. 密钥 URI 字段中,输入外部密钥的路径。

  9. 根据需要配置其余密钥设置,然后点击创建

gcloud

如需在命令行上使用 Cloud KMS,请先 安装或升级到最新版本的 Google Cloud CLI

  1. 创建空的外部密钥:

    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 标志运行命令。

  2. 为您刚刚创建的密钥创建新密钥版本:

    gcloud kms keys versions create \
      --key KEY_NAME \
      --keyring KEY_RING \
      --location LOCATION \
      --external-key-uri EXTERNAL_KEY_URI
    

    EXTERNAL_KEY_URI 替换为外部密钥的 URI。

    对于对称密钥版本,请添加 --primary 标志以将新密钥版本设置为主版本。

后续步骤