IBM Cloud Docs
检索 Key Protect 密钥列表

检索 Key Protect 密钥列表

IBM® Key Protect for IBM Cloud® 提供了用于查看、管理和审计加密密钥的集中式系统。 审计您的密钥和密钥访问限制,以确保资源安全。

虽然您可以 为单个键分配细粒度的访问权限,但请注意,调用 list keys API 不会返回您已分配了单独访问权限的键(换句话说,只有您可以访问)。 但是,调用此 API 将返回您有权访问的密钥环中的密钥 (如果您有权访问实例中的所有密钥,那么将看到所有密钥)。 但是,您可以通过遵循 通过 IAM 查看细颗粒度访问密钥 中的指示信息通过 IAM 查看密钥,或者通过使用 API 传递特定密钥标识来查看只有您有权访问的密钥。

最好定期审计密钥配置:

有关审核资源访问的更多信息,请参阅 管理用户访问

在控制台中查看密钥

如果想要使用图形界面来检查服务中的密钥,那么可以使用 Key Protect 仪表板。

创建密钥或将现有密钥导入服务后,请完成以下步骤以查看密钥。

  1. 登录到 IBM Cloud 控制台

  2. 转到菜单 > 资源列表以查看您的资源列表。

  3. 从 IBM Cloud 资源列表中,选择您供应的 Key Protect 实例。

  4. 单击 密钥,这将显示服务实例中所有密钥的列表。 可以按其 密钥状态 (例如,仅显示处于 已启用 状态的密钥) 或使用下拉列表按其 密钥环标识 进行过滤。 此外,可以对各个值 (例如 上次轮换日期) 进行排序。 搜索栏可用于按其显示名称,密钥标识和别名来搜索密钥。 请注意,查找密钥的最快方法是按其密钥标识进行搜索。 可以使用 设置 按钮来定制表中找到的字段。 缺省情况下,您可以看到:

描述密钥表。
描述
名称 您为密钥提供的显示名称。
密钥标识 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。 这意味着当使用多个搜索范围时,至少一个范围中的匹配项将导致返回键。 缺省情况下 (如果未提供作用域),将在 namealias 作用域中执行搜索。

未看到存储在 Key Protect 实例中的密钥的完整列表? 向管理员验证是否为您分配了适用的 Key Protect 实例或单个密钥的正确角色。 有关角色的更多信息,请参阅角色和许可权

按状态检索密钥

通过对 Key Protect 实例中特定密钥的状态进行过滤,可以检索处于指定状态的密钥。

例如,您的 Key Protect 实例中可能有处于活动,已暂挂和已破坏状态的密钥,但您仅希望在查看密钥列表时检索处于活动状态的密钥。

有关密钥状态的更多信息,请参阅 密钥状态和过渡

在创建现有密钥或将现有密钥导入到服务中之后,您可以使用两个选项来查看密钥。 第一个选项 通过资源列表查看键 适用于除已分配 细颗粒度访问 的键以外的所有键。 有关如何查看具有细颗粒度访问权的密钥的信息,请查看 查看细颗粒度访问密钥 IAM

通过资源列表查看密钥

  1. 登录到 IBM Cloud 控制台

  2. 转到菜单 > 资源列表以查看您的资源列表。

  3. 从 IBM Cloud 资源列表中,选择您供应的 Key Protect 实例。

  4. 在应用程序详细信息页面上,单击过滤器图标,然后从 状态 菜单中选择下拉列表。

  5. 选择要检索的密钥的密钥状态。

  6. 单击应用按钮。

  7. 此外,在表行标题中,可以单击 Last Updated 以按最近更新表中的键的日期对列表进行排序,或者单击 Type 以将所有根键和标准键作为组列出。

通过 IAM 查看细颗粒度访问密钥

  1. 从菜单栏中,单击 管理 > 访问权 (IAM),然后选择 用户 以浏览帐户中的现有用户。

  2. 选择表行,然后单击 ⋯ 图标以打开该用户的选项列表。 然后从下拉列表中选择 管理访问权

  3. 您可以在此处查看此用户的所有 IAM 信息,包括他们所属的访问组。 要专门查看此用户的访问策略,请单击 访问策略 选项卡。

具有相应特权的帐户所有者或用户可以查看分配给此用户的所有策略,包括对密钥的任何细颗粒度访问。

使用 API 查看密钥

您可以通过使用 Key Protect API 来检索密钥的内容。

检索键列表

对于高级视图,可以通过向以下端点发出 GET 调用,浏览在供应的 Key Protect 实例中管理的密钥。

https://<region>.kms.cloud.ibm.com/api/v2/keys
  1. 检索认证凭证以使用服务中的密钥

  2. 通过运行以下 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 文档

描述了使用Key ProtectAPI 查看密钥所需的变量。API 查看密钥所需的变量。
变量 描述
区域 需要。 区域缩写,如 us-southeu-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 参数调整这一限制。 要了解有关 limitoffset 的更多信息,请参阅检索密钥子集

未看到完整的密钥列表? 您可能需要使用 limitoffset,或者与管理员一起检查,以确保为您分配了对实例中密钥的正确级别访问权。 要了解更多信息,请参阅 无法查看或列出密钥

检索密钥子集

通过在查询时指定 limitoffset 参数,可检索密钥子集,从指定的 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>"

根据下表替换请求中的 limitoffset 变量。

表 2. 描述限制变量和偏移量变量的用法。
变量 描述
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 与 offsetlimitstate 配对,以翻阅可用资源。

有关使用说明,请查看以下示例,了解如何设置 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>"
排序查询参数的使用说明。
变量 描述
排序值 用于排序的属性列表。 目前可排序的关键属性有

-
提取
- 已
-
日期
- 最后
日期*-
修改日期*-
日期*-expirationDate日期