检索 Key Protect 密钥列表
IBM® Key Protect for IBM Cloud® 提供了用于查看、管理和审计加密密钥的集中式系统。 审计您的密钥和密钥访问限制,以确保资源安全。
虽然您可以 为单个键分配细粒度的访问权限,但请注意,调用 list keys API 不会返回您已分配了单独访问权限的键(换句话说,只有您可以访问)。 但是,调用此 API 将返回您有权访问的密钥环中的密钥 (如果您有权访问实例中的所有密钥,那么将看到所有密钥)。 但是,您可以通过遵循 通过 IAM 查看细颗粒度访问密钥 中的指示信息通过 IAM 查看密钥,或者通过使用 API 传递特定密钥标识来查看只有您有权访问的密钥。
最好定期审计密钥配置:
-
检查创建密钥的时间并确定是否需要对密钥进行循环。
-
检查哪些用户对密钥具有访问权以及访问级别是否正确。
有关审核资源访问的更多信息,请参阅 管理用户访问。
在控制台中查看密钥
如果想要使用图形界面来检查服务中的密钥,那么可以使用 Key Protect 仪表板。
创建密钥或将现有密钥导入服务后,请完成以下步骤以查看密钥。
-
转到菜单 > 资源列表以查看您的资源列表。
-
从 IBM Cloud 资源列表中,选择您供应的 Key Protect 实例。
-
单击 密钥,这将显示服务实例中所有密钥的列表。 可以按其 密钥状态 (例如,仅显示处于 已启用 状态的密钥) 或使用下拉列表按其 密钥环标识 进行过滤。 此外,可以对各个值 (例如 上次轮换日期) 进行排序。 搜索栏可用于按其显示名称,密钥标识和别名来搜索密钥。 请注意,查找密钥的最快方法是按其密钥标识进行搜索。 可以使用 设置 按钮来定制表中找到的字段。 缺省情况下,您可以看到:
列 | 描述 |
---|---|
名称 | 您为密钥提供的显示名称。 |
密钥标识 | Key Protect 服务指定给密钥的唯一密钥标识。 您可以使用 ID 值通过 Key Protect API 调用服务。 |
密钥环标识 | 与密钥关联的 密钥环。 这些状态包括 已取消激活,已销毁,_已禁用_和 已启用。 |
上次轮换时间 | 上次轮换密钥的日期。 |
密钥别名 | 密钥的 密钥别名 (或别名)。 |
类型 | 密钥的 密钥类型 (根密钥或标准密钥)。 |
状态 | 密钥的 密钥状态,其中一个为 已取消激活,已销毁,_已禁用_或 已启用。 |
表中的其他可用字段包括:
- 上次修改时间: 指示上次以任何方式更改密钥的时间。
- 已创建: 密钥的创建日期。
- 已删除: 显示密钥是否处于已删除状态 (正在等待清除)。
- 已导入: 指示密钥是否是使用用户提供的密钥资料创建的。
- 轮换策略: 显示此密钥是否具有附加的轮换策略。
- 关联资源: 显示密钥是否保护任何资源。
搜索功能仅限于 5,000 个键的卷。 如果具有超过 5,000 个密钥,并且无法过滤将搜索到少于 5,000 个的密钥 (例如,通过按密钥状态过滤以仅查找 Enabled
个密钥),那么除非搜索与密钥标识或别名完全匹配,否则搜索将失败。 有关密钥搜索的 API 规范的更多信息,请查看 GET /keys。
如果要缩小搜索返回的结果数,请尝试使用以下参数之一或组合:
not:
指定时,将反转搜索使用的逻辑 (例如,not:foo
将搜索具有不包含foo
的别名或名称的密钥)。escape:
此选项之后的所有内容都采用明文形式 (例如:escape:not:
将搜索具有包含子串not:
的别名或名称的密钥)。exact:
仅查找完全匹配项。alias:
仅查找密钥别名。name:
仅查找密钥名称。
请注意,not:exact:foobar
将查找密钥名称或别名 不完全是 foobar
的密钥,而 exact:not:foobar
将查找密钥名称或别名完全是 not:foobar
的密钥
搜索作用域的行为方式为 OR。 这意味着当使用多个搜索范围时,至少一个范围中的匹配项将导致返回键。 缺省情况下 (如果未提供作用域),将在 name
和 alias
作用域中执行搜索。
未看到存储在 Key Protect 实例中的密钥的完整列表? 向管理员验证是否为您分配了适用的 Key Protect 实例或单个密钥的正确角色。 有关角色的更多信息,请参阅角色和许可权。
按状态检索密钥
通过对 Key Protect 实例中特定密钥的状态进行过滤,可以检索处于指定状态的密钥。
例如,您的 Key Protect 实例中可能有处于活动,已暂挂和已破坏状态的密钥,但您仅希望在查看密钥列表时检索处于活动状态的密钥。
有关密钥状态的更多信息,请参阅 密钥状态和过渡。
在创建现有密钥或将现有密钥导入到服务中之后,您可以使用两个选项来查看密钥。 第一个选项 通过资源列表查看键 适用于除已分配 细颗粒度访问 的键以外的所有键。 有关如何查看具有细颗粒度访问权的密钥的信息,请查看 查看细颗粒度访问密钥 IAM。
通过资源列表查看密钥
-
转到菜单 > 资源列表以查看您的资源列表。
-
从 IBM Cloud 资源列表中,选择您供应的 Key Protect 实例。
-
在应用程序详细信息页面上,单击过滤器图标,然后从 状态 菜单中选择下拉列表。
-
选择要检索的密钥的密钥状态。
-
单击应用按钮。
-
此外,在表行标题中,可以单击
Last Updated
以按最近更新表中的键的日期对列表进行排序,或者单击Type
以将所有根键和标准键作为组列出。
通过 IAM 查看细颗粒度访问密钥
-
从菜单栏中,单击 管理 > 访问权 (IAM),然后选择 用户 以浏览帐户中的现有用户。
-
选择表行,然后单击 ⋯ 图标以打开该用户的选项列表。 然后从下拉列表中选择 管理访问权。
-
您可以在此处查看此用户的所有 IAM 信息,包括他们所属的访问组。 要专门查看此用户的访问策略,请单击 访问策略 选项卡。
具有相应特权的帐户所有者或用户可以查看分配给此用户的所有策略,包括对密钥的任何细颗粒度访问。
使用 API 查看密钥
您可以通过使用 Key Protect API 来检索密钥的内容。
检索键列表
对于高级视图,可以通过向以下端点发出 GET
调用,浏览在供应的 Key Protect 实例中管理的密钥。
https://<region>.kms.cloud.ibm.com/api/v2/keys
-
通过运行以下
curl
命令来查看有关密钥的常规特征。$ curl -X GET \ "https://<region>.kms.cloud.ibm.com/api/v2/keys" \ -H "accept: application/vnd.ibm.collection+json" \ -H "authorization: Bearer <IAM_token>" \ -H "bluemix-instance: <instance_ID>" \ -H "x-kms-key-ring: <key_ring_ID>" \ -H "correlation-id: <correlation_ID>"
根据表 1 中的信息替换示例请求中的变量。 有关查看密钥集合 (包括搜索密钥的功能) 时可用的可选参数的更多信息,请参阅 有关
List keys
方法的 API 文档。
变量 | 描述 |
---|---|
区域 | 需要。 区域缩写,如 us-south 或 eu-gb ,表示 Key Protect 实例所在的地理区域。 有关更多信息,请参阅区域服务端点。 |
keyID_or_alias | 需要。 要检查的密钥的唯一标识或别名。 |
IAM_token | 需要。 您的 IBM Cloud 访问令牌。 在 curl 请求中包含 IAM 令牌的全部内容,包括承载器值。 更多信息,请参阅 检索访问令牌。 |
instance_ID | 需要。 指定给您的 Key Protect 服务实例的唯一标识。 更多信息,请参阅 检索实例 ID。 |
key_ring_ID | 可选。 目标密钥环的唯一标识。 如果未指定,那么响应将包含用户在指定实例中有权访问的所有资源。 如果提供了响应,那么该响应将仅包含用户在指定密钥环中有权访问的资源。 有关更多信息,请参阅 分组密钥。 |
correlation_ID | 可选。用于跟踪和关联交易的唯一标识符。 |
成功的 GET api/v2/keys
请求会返回 Key Protect 服务实例中可用的密钥的集合。
{
"metadata": {
"collectionType": "application/vnd.ibm.kms.key+json",
"collectionTotal": 2
},
"resources": [
{
"id": "02fd6835-6001-4482-a892-13bd2085f75d",
"type": "application/vnd.ibm.kms.key+json",
"name": "Root-key",
"state": 1,
"crn": "crn:v1:bluemix:public:kms:us-south:a/f047b55a3362ac06afad8a3f2f5586ea:12e8c9c2-a162-472d-b7d6-8b9a86b815a6:key:02fd6835-6001-4482-a892-13bd2085f75d",
"createdBy": "...",
"creationDate": "2020-03-11T16:30:06Z",
"lastUpdateDate": "2020-03-11T16:30:06Z",
"algorithmMetadata": {
"bitLength": "256",
"mode": "Deprecated"
},
"extractable": false,
"imported": true,
"algorithmMode": "Deprecated",
"algorithmBitSize": 256,
"dualAuthDelete": {
"enabled": false
}
},
{
"id": "2291e4ae-a14c-4af9-88f0-27c0cb2739e2",
"type": "application/vnd.ibm.kms.key+json",
"name": "Standard-key",
"state": 1,
"expirationDate": "2020-03-14T03:50:12Z",
"crn": "crn:v1:bluemix:public:kms:us-south:a/f047b55a3362ac06afad8a3f2f5586ea:30372f20-d9f1-40b3-b486-a709e1932c9c:key:2291e4ae-a14c-4af9-88f0-27c0cb2739e2",
"createdBy": "...",
"creationDate": "2020-03-12T03:50:12Z",
"lastUpdateDate": "2020-03-12T03:50:12Z",
"algorithmMetadata": {
"bitLength": "256",
"mode": "Deprecated"
},
"extractable": true,
"imported": false,
"algorithmMode": "Deprecated",
"algorithmBitSize": 256,
"dualAuthDelete": {
"enabled": false
}
}
]
}
默认情况下,GET api/v2/keys
会返回前 200 个键,但您可以在查询时使用 limit
参数调整这一限制。 要了解有关 limit
和 offset
的更多信息,请参阅检索密钥子集。
未看到完整的密钥列表? 您可能需要使用 limit
和 offset
,或者与管理员一起检查,以确保为您分配了对实例中密钥的正确级别访问权。 要了解更多信息,请参阅 无法查看或列出密钥。
检索密钥子集
通过在查询时指定 limit
和 offset
参数,可检索密钥子集,从指定的 offset
值开始。
例如,您可能有 3000 个密钥存储在 Key Protect 实例中,但您想在 GET /keys
请求时检索 200 - 300 个密钥。
您可以使用以下示例请求来检索一组不同的密钥。
$ curl -X GET \
"https://<region>.kms.cloud.ibm.com/api/v2/keys?offset=<offset>&limit=<limit>" \
-H "accept: application/vnd.ibm.collection+json" \
-H "authorization: Bearer <IAM_token>" \
-H "bluemix-instance: <instance_ID>"
根据下表替换请求中的 limit
和 offset
变量。
变量 | 描述 |
---|---|
offset | 要跳过的密钥数。 例如,如果实例中有 50 个键,要列出键 26 - 50,请使用 ../keys?offset=25 。 您还可以将抵消与限制配对,以翻阅可用资源。 |
limit | 要检索的密钥数。 例如,如果实例中有 100 个键,而您只想列出 10 个键,请使用 ../keys?limit=10 。 限值的最大值为 5000。 |
Offset 是数据集中特定密钥的位置。 offset
值从 0 开始,这意味着数据集中的第 10 个加密密钥位于 offset 9。
按状态检索密钥
通过在查询时指定 state
参数,可以检索处于指定状态的密钥。
例如,您的 Key Protect 实例中可能有处于活动状态,已暂挂状态和已破坏状态的密钥,但您仅希望在发出 GET /keys
请求时检索处于活动状态的密钥。
状态查询参数采用从 0 到 5 的整数列表,以逗号分隔,不含空格或尾部逗号。 有关密钥状态的更多信息,请参阅 密钥状态和过渡。
您可以使用以下示例请求来检索一组不同的密钥。
$ curl -X GET \
"https://<region>.kms.cloud.ibm.com/api/v2/keys?state=<state_integers>" \
-H "accept: application/vnd.ibm.collection+json" \
-H "authorization: Bearer <IAM_token>" \
-H "bluemix-instance: <instance_ID>"
根据下表替换请求中的 state
变量。
变量 | 描述 |
---|---|
状态 | 要检索的键的状态。 状态为整数,其中预激活 = 0,活动 = 1,已暂挂 = 2,已取消激活 = 3,已销毁 = 5 值。 例如,如果只想列出 Key Protect 实例中处于活动状态的密钥,请使用 ../keys?state=1 。 您还可以通过可用资源将状态与偏移量和页面限制进行配对。 |
有关使用说明,请查看以下示例,了解如何设置 state
查询参数。
URL | 描述 |
---|---|
.../keys |
列出所有可用资源,最多排到前 200 个键。 |
.../keys?state=5 |
列出处于已删除状态的密钥。 |
.../keys?state=2,3 |
列出处于暂挂和取消激活状态的密钥。 |
按可抽取值检索密钥
通过在查询时指定 extractable
参数,您可以检索其物料可以离开服务的密钥。
例如,您可能在 Key Protect 实例中同时具有标准密钥和根密钥,但您只希望在发出 GET /keys
请求时使用可抽取的密钥材料来检索密钥。
可抽取查询参数采用布尔值。
您可以使用以下示例请求来检索一组不同的密钥。
$ curl -X GET \
"https://<region>.kms.cloud.ibm.com/api/v2/keys?extractable=<extractable>" \
-H "accept: application/vnd.ibm.collection+json" \
-H "authorization: Bearer <IAM_token>" \
-H "bluemix-instance: <instance_ID>"
根据下表替换请求中的 extractable
变量。
变量 | 描述 |
---|---|
可抽取 | 要检索的密钥的类型。 根据可抽取属性过滤键。 您可以使用此查询参数来搜索其物料可离开服务的密钥。 如果设置为 true,那么将检索标准密钥。 如果设置为 false,那么将检索根密钥。 如果省略,那么将检索根密钥和标准密钥。 例如,如果只想列出 Key Protect 实例中具有可抽取材料的密钥,请使用 ../keys?extractable=true 。 您还可以将 extractable 与 offset 、limit 和 state 配对,以翻阅可用资源。 |
有关使用说明,请查看以下示例,了解如何设置 extractable
查询参数。
URL | 描述 |
---|---|
../keys |
列出所有可用资源,最多排到前 200 个键。 |
../keys?extractable=true |
列出标准密钥。 |
../keys?extractable=false |
列出根密钥。 |
对键列表排序
在基于一个或多个键属性返回的查询字符串 对密钥列表进行排序 中使用 sort
参数。 要按属性降序排序,请以 "-" 作为术语的前缀。要对多个键属性进行排序,请使用逗号来分隔每个属性。 逗号分隔列表中的第一个属性将在下一个属性之前进行求值。
$ curl -X GET \
"https://<region>.kms.cloud.ibm.com/api/v2/keys?sort=<sort-value>" \
-H "accept: application/vnd.ibm.collection+json" \
-H "authorization: Bearer <IAM_token>" \
-H "bluemix-instance: <instance_ID>"
变量 | 描述 |
---|---|
排序值 | 用于排序的属性列表。 目前可排序的关键属性有
- |