IBM Cloud Docs
查看根密钥或标准密钥的列表

查看根密钥或标准密钥的列表

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

定期审计密钥配置:

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

使用 UI 查看根密钥或标准密钥

如果您希望使用图形界面来检查服务中的密钥,那么可以使用 UI。

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

  1. 登录 UI

  2. 转至 菜单 > 资源列表 以查看资源列表。

  3. 从 IBM Cloud 资源列表,选择 Hyper Protect Crypto Services 的已供应实例。

  4. 在“KMS 密钥”页面上,在 密钥 表中浏览密钥的一般特征:

    表 1. 描述键表
    描述
    名称 分配给密钥的唯一人类可读名称。
    标识 Hyper Protect Crypto Services 服务指定给密钥的唯一密钥标识。 您可以使用标识值通过 Hyper Protect Crypto Services 密钥管理服务 API 对服务进行调用。
    别名 为便于在创建密钥时识别而指定的人类可读别名。
    密钥环标识 密钥所属的密钥环。
    类型 描述服务中密钥的指定用途的密钥类型。
    州/省 密钥状态,基于 NIST Special Publication 800-57, Recommendation for Key Management。 这些状态包括“预激活”,“活动”,“已暂挂”,“已取消激活”和“已销毁”。
    指示是否导入密钥。Created 指示密钥由服务实例创建; Imported 指示密钥由用户导入。
    上次更新时间 最近一次更新密钥的日期和时间。 当创建密钥,轮换密钥或修改密钥元数据的任何部分时,将更新此字段。
    上次轮换时间 最近一次轮换密钥的日期和时间。
    创建时间 创建密钥的日期和时间。
    已启用双重授权

    密钥上的双重授权策略的状态。

    • True: 需要双重授权才能删除密钥。
    • False: 无需事先授权即可删除密钥。
    设置为删除

    指示是否对密钥发出删除授权。

    • True: 删除此密钥的授权由第一个用户发出。 具有 "管理者" 访问策略的第二个用户可以安全地删除密钥。
    • False: 未设置要删除的密钥。 无需进一步操作。
    删除到期 密钥的删除授权到期日期。 如果此日期过去,那么授权不再有效。 如果 False 是键的 Dual authorization enabledSet for deletion 列的值,那么 Deletion expiration 列将保留为空。

    缺省情况下,并非所有关键特征都显示。 要定制 密钥 表的显示方式,请单击 设置图标 "设置" 图标,然后检查要显示的列。

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

    您还可以使用搜索栏来搜索特定键,或者通过单击 表中的 过滤器 图标 "过滤器" 图标 来根据需要过滤键。

使用密钥管理服务 API 查看根密钥或标准密钥

您可以使用 Hyper Protect Crypto Services 密钥管理服务 API 来检索密钥的内容。

检索根密钥或标准密钥的列表

对于高级视图,可以通过对以下端点进行 GET 调用来浏览在 Hyper Protect Crypto Services 的供应实例中管理的根密钥或标准密钥。

https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/keys
  1. 检索服务和认证凭证以与服务中的密钥一起使用

  2. 通过运行以下 cURL 命令来查看有关密钥的常规特征。

    curl -X GET \
    "https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/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>' \
    

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

    表 2. 描述使用 API 查看密钥所需的变量
    变量 描述
    region 区域缩写(例如,us-southau-syd),表示 Hyper Protect Crypto Services 服务实例所在的地理区域。 有关更多信息,请参阅区域服务端点
    port 必需。 API 端点的端口号。
    IAM_token 您的 IBM Cloud 访问令牌。 在 cURL 请求中包含 IAM 令牌的完整内容,包括 Bearer 值。 有关更多信息,请参阅 检索访问令牌
    instance_ID 指定给您的 Hyper Protect Crypto Services 服务实例的唯一标识。 有关更多信息,请参阅 检索实例标识
    key_ring_ID 可选。 密钥所属的密钥环的唯一标识。 如果未指定,Hyper Protect Crypto Services 将在与指定实例关联的每个密钥环中搜索密钥。 因此,建议为更优化的请求指定密钥环标识。

    注: 在没有 x-kms-key-ring 头的情况下创建的密钥的密钥环标识为: 缺省值。 有关更多信息,请参阅 管理密钥环

    correlation_ID 可选。 用于跟踪和关联事务的唯一标识。

    成功的 GET /v2/keys 请求将返回 Hyper Protect Crypto Services 实例中可用的密钥集合。

    {
      "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:hs-crypto: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": "CBC_PAD"
          },
          "extractable": false,
          "imported": true,
          "algorithmMode": "CBC_PAD",
          "algorithmBitSize": 256,
          "dualAuthDelete": {
            "enabled": false
          }
        },
        {
          "id": "2291e4ae-a14c-4af9-88f0-27c0cb2739e2",
          "type": "application/vnd.ibm.kms.key+json",
          "name": "Standard-key",
          "state": 1,
          "crn": "crn:v1:bluemix:public:hs-crypto: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": "CBC_PAD"
          },
          "extractable": true,
          "imported": false,
          "algorithmMode": "CBC_PAD",
          "algorithmBitSize": 256,
          "dualAuthDelete": {
            "enabled": false
          }
        }
      ]
    }
    

    缺省情况下,GET api/v2/keys 会返回前 200 个键,但您可以在查询时使用 limit 参数来调整此限制。 要了解有关 limitoffset 的更多信息,请参阅检索密钥子集

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

检索密钥子集

通过在查询时指定 limitoffset 参数,可检索密钥子集,从指定的 offset 值开始。

例如,可能总共有 3000 密钥存储在 Hyper Protect Crypto Services 服务实例中,但是在发出 GET /keys 请求时可能想要检索密钥 200 - 300。

您可以使用以下示例请求来检索一组不同的密钥。

curl -X GET \
  'https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/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。 您还可以将 offsetlimit 配对,以页面浏览可用资源。
limit 要检索的密钥数。 例如,如果实例中有 100 个密钥,并且只想列出 10 个密钥,请使用 ../keys?limit=10limit 的最大值为 5000。

要获取用法注释,请查看用于设置 limitoffset 查询参数的以下示例。

表 3. 提供限制和偏移量查询参数的使用说明
URL 描述
.../keys 列出所有可用资源,最多为前 2000 个密钥。
.../keys?limit=10 列出前 10 个密钥。
.../keys?offset=25&limit=50 列出密钥 26 - 75。
.../keys?offset=3000&limit=50 列出密钥 3001 - 3050。

Offset 是数据集中特定密钥的位置。 offset 值从 0 开始,这意味着数据集中的第 10 个加密密钥位于 offset 9。

按状态检索密钥

通过在查询时指定 state 参数,可以检索处于指定状态的密钥。

例如,服务实例中的密钥可能处于“活动”,“已暂挂”和“已破坏”状态,但您仅希望在发出 GET /keys 请求时检索处于“活动”状态的密钥。

状态查询参数采用由逗号分隔的整数 0-5 列表,其中没有空格或尾部逗号。 有效状态基于 NIST SP 800-57。 有关密钥状态的更多信息,请参阅 密钥状态和转换

您可以使用以下示例请求来检索一组不同的密钥。

curl -X GET \
  'https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/keys?state=<state_integers>' \
  -H 'accept: application/vnd.ibm.collection+json' \
  -H 'authorization: Bearer <IAM_token>' \
  -H 'bluemix-instance: <instance_ID>'

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

表 4. 描述状态变量
变量 描述
state 要检索的密钥的状态。 状态为整数,对应于“预活动 = 0”,“活动 = 1”,“已暂挂 = 2”,“已取消激活 = 3”和“已销毁 = 5”值。 例如,如果只想列出服务实例中处于活动状态的密钥,请使用 ../keys?state=1。 您还可以将 stateoffsetlimit 配对,以通过页面浏览可用资源。

有关用法说明,请查看以下用于设置 state 查询参数的示例。

表 5. 提供阶段查询参数的使用说明
URL 描述
.../keys 列出所有可用资源,最多前 200 个密钥。
.../keys?state=5 列出处于已删除状态的密钥。
.../keys?state=2,3 列出处于暂挂和取消激活状态的密钥。

按可抽取值检索密钥

通过在查询时指定 extractable 参数,您可以检索其物料可以离开服务的密钥。

例如,您可能在 Hyper Protect Crypto Services 实例中同时具有标准密钥和根密钥,但您仅希望在发出 GET /keys 请求时使用可抽取的密钥资料来检索密钥。

可抽取查询参数采用布尔值。

您可以使用以下示例请求来检索一组不同的密钥。

$ curl -X GET \
    "https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/keys?extractable=<extractable>" \
    -H "accept: application/vnd.ibm.collection+json" \
    -H "authorization: Bearer <IAM_token>" \
    -H "bluemix-instance: <instance_ID>"

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

表 5. 描述可抽取变量
变量 描述
可抽取 要检索的密钥的类型。 根据可抽取属性过滤键。 您可以使用此查询参数来搜索其物料可离开服务的密钥。 如果将该参数设置为 true,那么将检索标准密钥。 如果将该参数设置为 false,那么将检索根密钥。 如果省略此参数,那么将同时检索根密钥和标准密钥。 例如,如果要仅列出服务实例中具有可抽取材料的密钥,请使用 ../keys?extractable=true。 您还可以将可抽取内容与 offsetlimitstate 配对,以在可用资源中进行页面调度。

有关用法说明,请查看以下用于设置 extractable 查询参数的示例。

表 6. 提供可抽取查询参数的用法说明
URL 描述
../keys 列出所有可用资源,最多前 200 个密钥。
../keys?extractable=true 列出标准密钥。
../keys?extractable=false 列出根密钥。

对键列表进行排序

在基于一个或多个键属性返回的查询字符串 对密钥列表进行排序 中使用 sort 参数。 要按属性降序排序,请以 "-" 作为术语前缀。要对多个键属性进行排序,请使用逗号来分隔每个属性。 逗号分隔列表中的第一个属性将在下一个属性之前进行求值。

$ curl -X GET \
    "https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/keys?sort=<sort-value>" \
    -H "accept: application/vnd.ibm.collection+json" \
    -H "authorization: Bearer <IAM_token>" \
    -H "bluemix-instance: <instance_ID>"
表 7. 排序查询参数的用法说明
变量 描述
排序值

用于排序的属性列表。 此时可排序的关键属性为:

-id
-state
-extractable
-已导入

  • creationDate
  • lastUpdateDate
  • lastRotateDate
  • deletionDate
  • expirationDate