本页介绍如何在 Cloud Key Management Service (Cloud KMS) 中现有密钥环上创建 Cloud External Key Manager (Cloud EKM) 密钥。
准备工作
在完成本页面上的任务之前,您需要具备以下条件:
- 
    用于包含 Cloud KMS 资源的 Google Cloud 项目资源。我们建议您为 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 合作伙伴可能使用与本文档不同的术语。
- 如需创建通过 VPC 密钥的 EKM,您需要创建 EKM 连接。
- 可选:如需使用 gcloud CLI,请准备好您的环境。
    
    
    
  
   
   
     
   
  
   
   
     
   
  
 
   
 
 
 
  
  
    In the Google Cloud console, 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
创建协同外部密钥
控制台
- 在 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 标志运行命令。
通过 VPC 密钥创建手动管理的 Cloud EKM
控制台
- 在 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
控制台
- 在 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标志以将新密钥版本设置为主版本。