创建外部密钥

本页面介绍了如何在现有集群上创建 Cloud External Key Manager (Cloud EKM) 密钥, Cloud Key Management Service (Cloud KMS) 中的密钥环。

准备工作

在完成本页面上的任务之前,您需要做好以下准备:

  • 用于包含您的 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. 在外部密钥管理合作伙伴系统中创建对称或不对称密钥,或者 选择现有密钥。

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

    3. 记下外部密钥的 URI 或密钥路径。你需要这个 以创建 Cloud EKM 密钥。

  • 在外部密钥管理合作伙伴系统中,向 Google Cloud 授予 服务账号访问权限来使用您的外部密钥。对待服务账号 用作电子邮件地址。EKM 合作伙伴可能使用与此主题不同的术语。

  • 如需通过 VPC 密钥创建 EKM,您需要通过 VPC 创建 EKM 连接

  • 可选:如需使用 gcloud CLI,请准备您的环境。

    gcloud CLI

    In the Google Cloud console, activate Cloud Shell.

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

通过 VPC 密钥创建手动管理的 Cloud EKM

控制台

  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

控制台

  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 标志以将新密钥版本设置为主版本。

后续步骤