禁用根密钥

您可以使用 IBM Cloud® Hyper Protect Crypto Services 来禁用或启用根密钥,并临时撤销对云上密钥的关联数据的访问权。

作为管理员,如果您怀疑数据可能存在安全漏洞,损害或违规,那么可能需要临时禁用根密钥。 禁用根密钥时,将暂挂加密和解密操作。 确认安全风险不再处于活动状态后,可以通过启用禁用的根密钥来恢复对数据的访问权。

如果您正在使用与 Hyper Protect Crypto Services集成的云服务,那么在禁用根密钥后,数据可能不可访问。 要确定 集成服务 是否支持通过禁用 Hyper Protect Crypto Services 根密钥来撤销对数据的访问权,请参阅服务文档。

当您禁用根密钥时,该密钥将移至 暂挂状态,不能再用于以加密方式保护数据。

当您启用先前已禁用的根密钥时,该密钥将从“已暂挂”状态移至“活动密钥”状态。 此操作将复原密钥的加密和解密操作。

在禁用根密钥后,必须等待 30 秒,然后才能再次将其启用。

对于支持撤销对已禁用根密钥的访问权的集成云服务,该服务最多可能需要 4 小时才能撤销或恢复对根密钥的关联数据的访问权。 撤销或复原对关联数据的访问权后,将在 Activity Tracker Web UI 中显示相应的启用事件。

使用 UI 禁用和启用根密钥

如果您希望使用图形界面来启用或禁用根密钥,那么可以使用 UI。

禁用根密钥

在创建现有密钥或将现有密钥导入到服务中之后,请完成以下步骤以禁用密钥:

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

禁用密钥后,密钥的 状态 将移至 密钥 表中的 Suspended

启用根密钥

如果要重新启用 已禁用 的根密钥,请完成以下步骤:

在禁用根密钥后,必须等待 30 秒,然后才能再次将其启用。

  1. 登录 UI
  2. 转至 菜单 > 资源列表 以查看资源列表。
  3. 从 IBM Cloud 资源列表,选择 Hyper Protect Crypto Services 的已供应实例。
  4. 在“KMS 密钥”页面上,使用 密钥 表来浏览服务中的密钥。
  5. 单击 操作 图标 "操作" 图标 以打开要启用的密钥的选项列表。
  6. 从选项菜单中,单击 启用密钥

启用密钥后,密钥的 状态 将传输到 密钥 表中的 Active

使用 API 禁用和启用根密钥

禁用根密钥

禁用根密钥时,密钥将进入 暂挂状态,并且不能再用于加密数据。

对于支持撤销对禁用的根密钥的访问权的集成云服务,该服务最多可能需要 4 小时才能撤销对根密钥的关联数据的访问权。 撤销对关联数据的访问权后,将在 Activity Tracker Web UI 中显示相应的禁用事件。

您可以通过对以下端点进行 POST 调用来禁用处于“活动密钥”状态的根密钥。

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

    要禁用根密钥,必须为您分配实例或密钥的 管理者 服务访问角色。 要了解 IAM 角色如何映射到 Hyper Protect Crypto Services 服务操作,请查看 服务访问角色

  2. 检索密钥管理服务 API 端点 URL。

    您可以通过 概述 > 连接 > 密钥管理端点 URL 从供应的服务实例仪表板获取 API 端点。 或者,您可以使用 API 调用动态 检索 API 端点 URL。 根据需要选择公用或专用密钥管理端点 URL。

  3. 检索要禁用的根密钥的标识。

    您可以通过发出 list keys API request或通过在 UI 中查看密钥来检索指定密钥的标识。

  4. 通过发出以下 API 调用,禁用根密钥并暂挂加密和解密操作。

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

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

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

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

    成功的禁用请求将返回 HTTP 204 No Content 响应,该响应指示已禁用根密钥进行加密和解密操作。

  5. 可选: 通过检索有关根密钥的详细信息来验证是否已禁用根密钥。

    curl -X GET \
      https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/keys/<key_id>/metadata \
      -H 'authorization: Bearer <IAM_token>' \
      -H 'bluemix-instance: <instance_ID>' \
      -H 'accept: application/vnd.ibm.kms.key+json'
    

    请查看响应主体中的 state 字段,以验证密钥是否已进入“已暂挂”密钥状态。 以下 JSON 输出显示已禁用根密钥的元数据详细信息。

    暂挂密钥状态的整数映射为 2。 密钥状态基于 NIST SP 800-57。

    {
        "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": "...",
                "description": "...",
                "tags": [
                    "..."
                ],
                "state": 2,
                "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": true,
                "creationDate": "2020-03-10T20:41:27Z",
                "createdBy": "...",
                "algorithmType": "AES",
                "algorithmMetadata": {
                    "bitLength": "128",
                    "mode": "CBC_PAD"
                },
                "algorithmBitSize": 128,
                "algorithmMode": "CBC_PAD",
                "lastUpdateDate": "2020-03-16T20:41:27Z",
                "keyVersion": {
                    "id": "30372f20-d9f1-40b3-b486-a709e1932c9c",
                    "creationDate": "2020-03-12T03:37:32Z"
                },
                "dualAuthDelete": {
                    "enabled": false
                },
                "deleted": false
            }
        ]
    }
    

启用已禁用的根密钥

当您启用先前已禁用的根密钥时,该密钥将从“已暂挂”状态移至“活动密钥”状态。 此操作将复原密钥的加密和解密操作。

对于支持撤销对已禁用根密钥的访问权的集成云服务,该服务最多可能需要 4 小时才能恢复对根密钥的关联数据的访问权。 恢复对关联数据的访问权后,将在 Activity Tracker Web UI 中显示相应的启用事件。

您可以通过对以下端点进行 POST 调用来启用处于“暂挂密钥”状态的根密钥。

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

    要启用根密钥,必须为您分配实例或密钥的 管理者 服务访问角色。 要了解 IAM 角色如何映射到 Hyper Protect Crypto Services 服务操作,请查看 服务访问角色

  2. 检索密钥管理服务 API 端点 URL。

    您可以通过单击 管理 > 密钥管理端点 URL 从供应的服务实例仪表板获取 API 端点,也可以使用 API 调用动态 检索 API 端点 URL。 根据需要选择公用或专用密钥管理端点 URL。

  3. 检索要启用的已禁用根密钥的标识。

    您可以通过发出 list keys API request或通过在 Hyper Protect Crypto Services 仪表板中查看密钥来检索指定密钥的标识。

  4. 通过发出以下 API 调用,启用根密钥并复原加密和解密操作。

    在禁用根密钥后,必须等待 30 秒,然后才能再次将其启用。

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

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

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

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

    成功的启用请求将返回 HTTP 204 No Content 响应,这指示已恢复根密钥以进行加密和解密操作。

  5. 可选: 通过检索有关根密钥的详细信息来验证是否已启用根密钥。

    curl -X GET \
      https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/keys/<key_id>/metadata \
      -H 'authorization: Bearer <IAM_token>' \
      -H 'bluemix-instance: <instance_ID>' \
      -H 'accept: application/vnd.ibm.kms.key+json'
    

    查看响应主体中的 state 字段以验证根密钥是否已移至“活动密钥”状态。 以下 JSON 输出显示活动密钥的元数据详细信息。

    “活动”键状态的整数映射为 1。 密钥状态基于 NIST SP 800-57。

    {
      "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": "...",
          "description": "...",
          "tags": [
            "..."
          ],
          "state": 1,
          "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": true,
          "creationDate": "2020-03-10T20:41:27Z",
          "createdBy": "...",
          "algorithmType": "AES",
          "algorithmMetadata": {
            "bitLength": "128",
            "mode": "CBC_PAD"
          },
          "algorithmBitSize": 128,
          "algorithmMode": "CBC_PAD",
          "lastUpdateDate": "2020-03-16T20:41:27Z",
          "keyVersion": {
            "id": "30372f20-d9f1-40b3-b486-a709e1932c9c",
            "creationDate": "2020-03-12T03:37:32Z"
          },
          "dualAuthDelete": {
            "enabled": false
          },
          "deleted": false
        }
      ]
    }