使用密钥环将密钥分组到一起
您可以使用 IBM® Key Protect for IBM Cloud® 创建 为需要相同 IAM 访问权限的目标用户组创建一组密钥。访问权限的目标用户组创建一组密钥。
作为帐户管理员,您可以将密钥捆绑到 Key Protect 服务实例将组称为“密钥环”。 密钥环是服务实例中所有需要相同 IAM 访问许可权的密钥的集合。 例如,如果您有一组需要特定密钥组的特定类型访问权的团队成员,那么可以为这些密钥创建密钥环,并将相应的 IAM 访问策略分配给目标用户组。 分配有密钥环访问权的用户可以创建和管理密钥环中存在的资源。
当一个业务单位有权访问另一个业务单位不应拥有的一组密钥时,密钥环也很有用。 帐户管理员可以为每个业务单位创建密钥环,并向相应用户 分配 相应级别的访问权。 在帐户管理员希望将特定密钥环的平台管理委托给其他人的情况下,他们可以为用户分配一个 密钥环级别的平台管理员角色。 然后,子管理员将能够管理密钥环并将访问权授予相应的用户。
您可以授予对密钥环的访问权, Key Protect 实例 (通过使用 IBM Cloud 控制台,IAM API 或 IAM CLI。
在为您的 Key Protect 例如,请记住 注意以下几点
-
每个 Key Protect 实例都随附一个缺省密钥环。 每个新创建的 Key Protect 实例都随附了标识为
default
的生成密钥环。 所有未与另行指定的密钥环关联的密钥都存在于缺省密钥环中。 -
密钥环可以保存标准密钥和根密钥。 密钥环可以同时包含标准密钥和根密钥。 对于密钥环中可以存在的密钥数量没有限制。
-
一个密钥一次只能是一个密钥环的一部分。 一个密钥只能是一个密钥环的一部分。 密钥环分配在密钥创建时发生。 如果创建时未传递密钥环标识,那么密钥将是
default
密钥环的一部分。
每个服务实例的最大密钥环数为 50。
使用 UI 创建密钥环
您必须具有服务“写入者”或“管理者”角色才能创建密钥环。
制作钥匙圈
- 单击左侧导航中的 密钥环。
- 在“密钥环”面板中,单击 创建 按钮。
- 在 创建密钥环 选项卡中,遵循有关允许的字符的指示信息,为新密钥环提供名称。 然后点击创建。
创建密钥环后,新的密钥环将显示在密钥环列表中,并且您可以向其传输密钥或为其创建密钥。
使用 API 创建密钥环
向以下端点拨打 POST
电话,创建钥匙圈。
https://<region>.kms.cloud.ibm.com/api/v2/keys
-
通过运行以下
curl
命令来创建密钥环。$ curl -X POST \ "https://<region>.kms.cloud.ibm.com/api/v2/key_rings/<key_ring_id>" \ -H "authorization: Bearer <IAM_token>" \ -H "bluemix-instance: <instance_ID>" \ -H "correlation-id: <correlation_ID>"
根据下表替换示例请求中的变量。
变量 | 描述 |
---|---|
区域 | 需要。 区域缩写,如 us-south 或 eu-gb ,表示 Key Protect 实例所在的地理区域。更多信息,请参阅 区域服务端点。 |
key_ring_id | 需要。 您要创建的钥匙圈的唯一标识符。 |
IAM_token | 需要。 您的 IBM Cloud 访问令牌。 在 curl 请求中包含 IAM 令牌的全部内容,包括承载器值。 更多信息,请参阅 检索访问令牌。 |
instance_ID | 需要。 分配给 Key Protect 服务实例的唯一标识符。 更多信息,请参阅 检索实例 ID。 |
correlation_ID | 可选。用于跟踪和关联交易的唯一标识符。 |
POST api/v2/key_rings
请求成功后会返回 HTTP 201 Created
响应,指示密钥环已创建,现在可用于保存标准密钥和根密钥。
将密钥传输到其他密钥环
随着需求更改以及新的团队成员引入到组织中,您可以创建新的密钥环以反映这些组织更改。 创建密钥环后,可能需要将密钥从现有密钥环移至具有不同 IAM 许可权的新密钥环。 例如,您可能正在加入需要特定访问权的团队,该密钥是先前生成的定制非缺省密钥环的一部分。 您可以创建专用于上线团队的新密钥环,并且由于一次只能将密钥与一个密钥环关联,因此需要将密钥移至新密钥环。
将密钥转移到另一个密钥环后,最多可能需要 10 分钟才能使更改生效。
使用 UI 将密钥传输到其他密钥环
如果您未看到您期望看到的所有选项,那么可能是因为您没有执行特定操作的许可权。 确保您的角色和许可权足以执行操作。 有关角色的更多信息,请查看 管理用户访问权。
您必须同时具有要传输的密钥和要传输密钥的目标密钥环的服务“管理者”角色。
从 密钥 面板中:
- 找到要转移的密钥。 请注意,通过在 密钥环标识 下拉列表中选择密钥环,可以帮助指定密钥当前所在的密钥环。 您还可以单击左侧导航中的 密钥环,找到相应的密钥环,然后单击设置下拉列表中的 查看关联的密钥。 这将显示与该密钥环关联的所有密钥。
- 单击 ... 按钮,然后从下拉列表中选择 编辑密钥环。
- 在下拉列表中,选择要将密钥移动到的密钥环。 然后点击保存。
使用 API 将密钥传输到其他密钥环
通过对以下端点进行 PATCH
调用,将密钥传输到其他密钥环。
https://<region>.kms.cloud.ibm.com/api/v2/keys/<keyID_or_alias>
-
要更新密钥的密钥环,您必须至少具有对密钥和目标密钥环的 Manager 服务访问权。 了解 IAM 角色如何映射到 Key Protect 服务操作,请检出 服务访问角色。
-
通过运行以下
curl
命令来更新密钥的密钥环。$ curl -X PATCH \ https://<region>.kms.cloud.ibm.com/api/v2/keys/<keyID_or_alias> \ -H 'accept: application/vnd.ibm.kms.key+json' \ -H 'authorization: Bearer <IAM_token>' \ -H 'bluemix-instance: <instance_ID>' \ -H 'content-type: application/vnd.ibm.kms.key+json' \ -H "x-kms-key-ring: <original_key_ring_ID>" \ -H "correlation-id: <correlation_ID>" \ -d '{ "keyRingID": "<new_key_ring_ID>" }'
根据下表替换示例请求中的变量。
变量 | 描述 |
---|---|
区域 | 需要。 区域缩写,如 us-south 或 eu-gb ,表示 Key Protect 实例所在的地理区域。更多信息,请参阅 区域服务端点。 |
keyID_or_alias | 需要。 您要更新的密钥的唯一标识符或别名。 |
IAM_token | 需要。 您的 IBM Cloud 访问令牌。 在 curl 请求中包含 IAM 令牌的全部内容,包括承载器值。 更多信息,请参阅 检索访问令牌。 |
instance_ID | 需要。 分配给 Key Protect 服务实例的唯一标识符。 更多信息,请参阅 检索实例 ID。 |
原始钥匙圈 ID | 可选。 密钥当前所属的密钥环的唯一标识。 如果未指定,Key Protect 将在与指定实例关联的每个密钥环中搜索密钥。 因此,建议为更优化的请求指定密钥环标识。 注: 在没有 x-kms-key-ring 头的情况下创建的密钥的密钥环标识为: default 。 |
correlation_ID | 可选。用于跟踪和关联交易的唯一标识符。 |
new_key_ring_ID | 需要。 要将密钥移动到的目标密钥环的唯一标识。 |
成功的 PATCH api/v2/keys/keyID_or_alias
请求将返回密钥的元数据,包括密钥所在的密钥环的标识。
{
"metadata": {
"collectionType": "application/vnd.ibm.kms.key+json",
"collectionTotal": 1
},
"resources": [
{
"type": "application/vnd.ibm.kms.key+json",
"id": "02fd6835-6001-4482-a892-13bd2085f75d",
"name": "test-root-key",
"aliases": [
"alias-1",
"alias-2"
],
"description": "A test root key",
"state": 1,
"extractable": false,
"keyRingID": "new-key-ring",
"crn": "crn:v1:bluemix:public:kms:us-south:a/f047b55a3362ac06afad8a3f2f5586ea:12e8c9c2-a162-472d-b7d6-8b9a86b815a6:key:02fd6835-6001-4482-a892-13bd2085f75d",
"imported": false,
"creationDate": "2020-03-12T03:37:32Z",
"createdBy": "...",
"algorithmType": "Deprecated",
"algorithmMetadata": {
"bitLength": "256",
"mode": "Deprecated"
},
"algorithmBitSize": 256,
"algorithmMode": "Deprecated",
"lastUpdateDate": "2020-03-12T03:37:32Z",
"keyVersion": {
"id": "2291e4ae-a14c-4af9-88f0-27c0cb2739e2",
"creationDate": "2020-03-12T03:37:32Z"
},
"dualAuthDelete": {
"enabled": false
},
"deleted": false
}
]
}
授予对密钥环的访问权
您可以使用 IBM Cloud 控制台,IAM API或 CLI{ :external}来授予对 Key Protect 实例中密钥环的访问权。
查看 角色和许可权,以了解 IBM Cloud IAM 角色如何映射到 Key Protect 操作。
要使用控制台分配对密钥环的访问权:
-
从菜单栏中,单击 管理 > 访问权 (IAM),然后选择 用户,用于浏览帐户中的现有用户。
-
选择表行,然后单击 ⋯ 图标以打开该用户的选项列表。
-
从选项菜单中,单击 分配访问权。
-
单击为用户分配额外访问权限。
-
单击 IAM 服务 按钮。
-
从服务列表中选择 Key Protect.
-
选择 基于属性的服务。
-
选择 实例标识 属性,然后选择密钥环所在的实例。
-
选择 密钥环标识 属性,然后输入与密钥环关联的标识。
-
选择组合 平台和服务访问角色,用于为用户分配访问权。
-
单击添加。
-
根据需要继续添加平台和服务访问角色,完成后,单击 分配。 请注意,必须为用户分配对整个实例的至少 读者 访问权,以便他们列出,创建和删除实例中的密钥环。

使用 API 列出密钥环
要查看高级视图,您可以通过以下方式浏览您的 Key Protect 管理的钥匙圈。对以下端点进行 GET 调用。
https://<region>.kms.cloud.ibm.com/api/v2/keys_rings
-
通过运行以下命令来查看有关密钥环的常规特征:
curl
指挥。$ curl -X GET \ "https://<region>.kms.cloud.ibm.com/api/v2/key_rings?totalCount=<show_total>&offset=<offset_value>&limit=<offset_limit>" \ -H "accept: application/vnd.ibm.kms.key_ring+json" \ -H "authorization: Bearer <IAM_token>" \ -H "bluemix-instance: <instance_ID>" \ -H "correlation-id: <correlation_ID>"
问号
?
后面的查询参数是可选的,但此处包含这些参数以记录其使用情况。 (: :note)根据下表替换示例请求中的变量。
变量 | 描述 |
---|---|
区域 | 需要。 区域缩写,如 us-south 或 eu-gb ,表示 Key Protect 实例所在的地理区域。更多信息,请参阅 区域服务端点。 |
IAM_token | 需要。 您的 IBM Cloud 访问令牌。 在 curl 请求中包含 IAM 令牌的全部内容,包括承载器值。 更多信息,请参阅 检索访问令牌。 |
instance_ID | 需要。 分配给 Key Protect 实例的唯一标识符。 更多信息,请参阅 检索实例 ID。 |
correlation_ID | 可选。 用于跟踪和关联事务的唯一标识。 |
偏移量限制 | 可选。 缺省情况下,GET /key_rings 返回 51 个 keyRings 的序列,包括缺省 keyRing。 要检索不同的钥匙圈,请使用 limit 和 offset 在可用资源中进行分页。 limit 的最大值为 "5,000" |
偏移值 | 可选。 通过指定 offset ,可以检索从 offset 值开始的钥匙圈子集。 |
显示总计 | 可选。 如果设置为 true ,那么响应元数据将返回与分页配合使用的 totalCount 的值。 |
成功的 GET api/v2/key_rings
请求将返回在您的 Key Protect 服务实例。
{
"metadata": {
"collectionType": "application/vnd.ibm.kms.key_ring+json",
"collectionTotal": 2
},
"resources": [
{
"id": "default"
},
{
"id": "Sample Key Ring 2",
"creationDate": "2020-03-12T11:00:06Z",
"createdBy": "..."
}
]
}
使用 API 删除密钥环
您可以通过对以下端点进行 DELETE
调用来删除密钥环。
https://<region>.kms.cloud.ibm.com/api/v2/key_rings/<key_ring_id>
如果密钥环至少包含一个处于 已销毁 状态以外的状态的密钥,那么此操作将不会成功。 如果密钥环中只有密钥处于 已销毁 状态,那么如果将 force=true
添加到 delete 命令中,那么可以删除密钥环。 处于该状态的密钥将自动传输到 default
密钥环。
-
读取要删除的钥匙圈的 ID。
您可以在您的密钥环中找到该密钥环的标识。 Key Protect 实例 检索密钥环列表。
-
运行以下
curl
命令删除钥匙圈。 请注意force=true
的存在,这将强制在密钥环包含处于 已销毁 状态的密钥时删除该密钥环。$ curl -X DELETE \ "https://<region>.kms.cloud.ibm.com/api/v2/key_rings/<key_ring_id>?force=true" \ -H "authorization: Bearer <IAM_token>" \ -H "bluemix-instance: <instance_ID>" \ -H "prefer: <return_preference>"
根据下表替换示例请求中的变量。
变量 | 描述 |
---|---|
区域 | 需要。 区域缩写,如 us-south 或 eu-gb ,表示 Key Protect 实例所在的地理区域。更多信息,请参阅 区域服务端点。 |
key_ring_id | 必需。 要删除的钥匙圈的唯一标识符。 |
IAM_token | 需要。 您的 IBM Cloud 访问令牌。 在 curl 请求中包含 IAM 令牌的全部内容,包括承载器值。 更多信息,请参阅 检索访问令牌。 |
instance_ID | 需要。 分配给 Key Protect 服务实例的唯一标识符。 更多信息,请参阅 检索实例 ID。 |
请求成功后会返回 HTTP 204 No Content
响应,表示已成功删除钥匙圈。表示已成功删除钥匙圈。