在 Google KMS 中通过 Python 客户端创建密钥时,是否可以指定名称?

Is there a way to specify a name when creating a key in Google KMS via the Python client?

在文档 here 中,您无法在 Python 客户端中为密钥指定名称(名称为 "Output only")。但是,使用 CLI 工具,您可以指定密钥的名称(此处为 KEY_NAME)ala gcloud kms keys create KEY_NAME --location LOCATION --keyring KEYRING_NAME --purpose encryption。此功能在 Python API 中不可用吗?

新密钥的名称进入名为 cryptoKeyId 的 top-level 参数,并且必须提供。创建key时不能提供body中的name字段;唯一的必填字段是 purpose,它必须是 ENCRYPT_DECRYPT;然后,当响应返回时,名称字段将被填充。

这是我刚刚从 API Explorer 发出的请求(在我使用已经创建的密钥环控制的项目中)。您可以看到新键名作为 URL 参数提供,cryptoKeyId。 (key={YOUR_API_KEY} 是由浏览器 API Explorer UI 编辑的。

要求:

POST https://cloudkms.googleapis.com/v1/projects/cloud-kms-demonstration/locations/global/keyRings/test01/cryptoKeys?cryptoKeyId=testKey01&key={YOUR_API_KEY}

{
 "purpose": "ENCRYPT_DECRYPT"
}

响应码:200

响应:

{
 "name": "projects/cloud-kms-demonstration/locations/global/keyRings/test01/cryptoKeys/testKey01",
 "primary": {
  "name": "projects/cloud-kms-demonstration/locations/global/keyRings/test01/cryptoKeys/testKey01/cryptoKeyVersions/1",
  "state": "ENABLED",
  "createTime": "2018-03-28T23:17:32.485044241Z"
 },
 "purpose": "ENCRYPT_DECRYPT",
 "createTime": "2018-03-28T23:17:32.485044241Z"
}