IBM Cloud Docs
使用单一授权删除密钥

使用单一授权删除密钥

如果您是 IBM Cloud® Hyper Protect Crypto Services 实例的管理员,那么可以使用 Hyper Protect Crypto Services 来删除根密钥或标准密钥以及密钥保护的内容。

在删除密钥之前,请确保您了解 删除和清除密钥的概念,并查看 注意事项

使用 UI 删除键

缺省情况下,Hyper Protect Crypto Services 需要一个权限才能删除密钥。 如果您希望使用图形界面删除加密密钥,则可以使用 UI。

在您创建密钥或将现有密钥导入服务后,请完成以下步骤以删除密钥:

  1. 登录 UI
  2. 菜单>资源列表查看您的资源列表。
  3. 从 IBM Cloud 资源列表,选择 Hyper Protect Crypto Services 的已供应实例。
  4. KMS 密钥页面,使用按键表来浏览您的服务中的密钥。
  5. 选择要删除的键,然后单击操作图标操作图标 打开该键的选项列表。
  6. 从选项菜单中,单击 删除密钥,输入密钥名称以确认要删除的密钥,然后单击 删除密钥

删除密钥后,该密钥将变为“已销毁”状态。 您可以在删除后 30 天内 复原已删除的密钥。 与密钥关联的元数据(例如,密钥的删除日期)会保存在 Hyper Protect Crypto Services 数据库中。

使用 API 删除密钥

缺省情况下,Hyper Protect Crypto Services 需要一个权限才能删除密钥。 您可以通过执行以下操作来删除密钥和内容: DELETE 调用以下端点。

https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/keys/<key_ID>

如果密钥正在主动保护一个或多个云资源,那么此操作无法成功。 你可以 查看与密钥关联的资源,或者 在查询时使用 force 参数 来删除密钥。

  1. 检索服务和认证凭证以与服务中的密钥一起使用

  2. 检索要删除的密钥的标识。

    您可以通过 检索密钥列表 或通过访问 UI 在服务实例中找到密钥的标识。

  3. 运行以下命令cURL命令永久删除密钥和内容。

    curl -X DELETE \
      "https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/keys/<key_ID>" \
      -H "authorization: Bearer <IAM_token>" \
      -H "bluemix-instance: <instance_ID>" \
      -H "x-kms-key-ring: <key_ring_ID>" \
      -H "prefer: <return_preference>"
    

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

    表 1. 描述使用 API 删除密钥所需的变量
    变量 描述
    region 必需。 地区缩写,例如 us-south 或者 au-syd,代表您的Hyper Protect Crypto Services实例驻留。 有关更多信息,请参阅区域服务端点
    port 必需。 API 端点的端口号。
    key_ID 必需。 您要删除的密钥的唯一标识。
    IAM_token 必需。 您的 IBM Cloud 访问令牌。 在 cURL 请求中包含 IAM 令牌的完整内容,包括 Bearer 值。 有关详细信息,请参阅For more information, see 检索访问令牌
    instance_ID 必需。 分配给您的Hyper Protect Crypto Services实例。 有关详细信息,请参阅For more information, see 检索实例 ID
    key_ring_ID 可选。 密钥所属的密钥环的唯一标识。 如果未指定,那么 Hyper Protect Crypto Services 将在与指定实例相关联的每个密钥环中搜索密钥。 因此,建议为更优化的请求指定密钥环标识。

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

    return_preference 改变服务器行为的标头 POSTDELETE 运营。 当您设置 return_preference 变量 return=minimal,服务返回删除成功响应。 当您将变量设置为 return=representation,服务将返回密钥材料和密钥元数据。

    如果 return_preference 变量设置为 return=representation,详细信息 DELETE 请求在响应实体主体中返回。

    以下 JSON 对象显示了示例返回值。

    {
      "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"
                  ],
                "state": 5,
                "extractable": false,
                "crn": "crn:v1:bluemix:public:hs-crypto:us-south:a/f047b55a3362ac06afad8a3f2f5586ea:12e8c9c2-a162-472d-b7d6-8b9a86b815a6:key:02fd6835-6001-4482-a892-13bd2085f75d",
                "imported": false,
                "creationDate": "2020-03-10T20:41:27Z",
                "createdBy": "...",
                "algorithmType": "AES",
                "algorithmMetadata": {
                    "bitLength": "256",
                    "mode": "CBC_PAD"
                },
                "algorithmBitSize": 256,
                "algorithmMode": "CBC_PAD",
                "lastUpdateDate": "2020-03-16T20:41:27Z",
                "dualAuthDelete": {
                    "enabled": false
                },
                "deleted": true,
                "deletionDate": "2020-03-16T21:46:53Z",
                "deletedBy": "..."
            }
        ]
    }
    

    有关可用参数的详细说明,请参阅Hyper Protect Crypto Services密钥管理服务 API 参考文档

使用 force 查询参数

Hyper Protect Crypto Services 阻止删除保护云资源的密钥,例如 IBM Cloud Object Storage 存储区。 您可以通过对以下端点进行 DELETE 调用来强制删除密钥和内容。

https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/keys/<key_ID>?force=true

删除具有关联注册的密钥时,会将密钥的内容和关联数据舍入。 任何由密钥加密的数据都将变为不可访问。

如果密钥正在保护由于保留时间策略而不可擦除的资源,那么此操作无法成功。 您可以通过 检查密钥的注册详细信息 来验证密钥是否与不可擦除资源相关联。 然后,必须先联系帐户所有者以除去与密钥关联的每个资源上的保留时间策略,然后才能删除该密钥。

  1. 检索认证凭证以使用服务中的密钥

  2. 检索要强制删除的密钥的 ID。

    您可以通过以下方式检索指定密钥的 ID:GET /v2/keys/ 请求,或者通过在 UI 中查看您的密钥。

  3. 运行以下命令cURL命令强制删除该密钥和其内容。

    curl -X DELETE \
    "https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/keys/<key_ID>?force=true" \
    -H 'authorization: Bearer <IAM_token>' \
    -H 'bluemix-instance: <instance_ID>' \
    -H "x-kms-key-ring: <key_ring_ID>" \
    -H 'prefer: <return_preference>'
    

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

    表 2. 描述使用 API 删除密钥所需的变量
    变量 描述
    region 必需。 地区缩写,例如 us-south 或者 eu-de,代表您的Hyper Protect Crypto Services实例驻留。 有关更多信息,请参阅区域服务端点
    port 必需。 API 端点的端口号。
    key_ID 必需。 您要删除的密钥的唯一标识。
    IAM_token 必需。 您的 IBM Cloud 访问令牌。 在 cURL 请求中包含 IAM 令牌的完整内容,包括 Bearer 值。 有关详细信息,请参阅For more information, see 检索访问令牌
    instance_ID 必需。 分配给您的Hyper Protect Crypto Services实例。 有关详细信息,请参阅For more information, see 检索实例 ID
    key_ring_ID 可选。 密钥所属的密钥环的唯一标识。 如果未指定,那么 Hyper Protect Crypto Services 将在与指定实例相关联的每个密钥环中搜索密钥。 因此,建议为更优化的请求指定密钥环标识。

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

    return_preference 改变服务器行为的标头 POSTDELETE 运营。 当您设置 return_preference 变量 return=minimal,服务返回删除成功响应。 当您将变量设置为 return=representation,服务将返回密钥材料和密钥元数据。

    如果 return_preference 变量设置为 return=representation,详细信息 DELETE 请求在响应实体主体中返回。

    以下 JSON 对象显示了示例返回值。

    {
        "metadata": {
            "collectionType": "application/vnd.ibm.kms.key+json",
            "collectionTotal": 1
        },
        "resources": [
            {
                "id": "2291e4ae-a14c-4af9-88f0-27c0cb2739e2",
                "type": "application/vnd.ibm.kms.key+json",
                "aliases": [
                    "alias-1",
                    "alias-2"
                ],
                "name": "test-root-key",
                "description": "...",
                "state": 5,
                "expirationDate": "2020-03-15T20:41:27Z",
                "crn": "crn:v1:bluemix:public:hs-crypto:us-south:a/f047b55a3362ac06afad8a3f2f5586ea:30372f20-d9f1-40b3-b486-a709e1932c9c:key:2291e4ae-a14c-4af9-88f0-27c0cb2739e2",
                "deleted": true,
                "algorithmType": "AES",
                "createdBy": "...",
                "deletedBy": "...",
                "creationDate": "2020-03-10T20:41:27Z",
                "deletionDate": "2020-03-16T21:46:53Z",
                "lastUpdateDate": "2020-03-16T20:41:27Z",
                "extractable": false
            }
        ]
    }
    

    有关可用参数的详细说明,请参阅Hyper Protect Crypto Services密钥管理服务 API 参考文档

下一步