有没有办法在通过Python客户端在Google KMS中创建密钥时指定名称?

时间:2018-03-28 22:01:51

标签: python google-cloud-platform google-cloud-kms

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

1 个答案:

答案 0 :(得分:1)

新密钥的名称会进入名为cryptoKeyId的顶级参数,并且必须提供。创建密钥时,无法提供正文中的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"
}