禁用和启用根密钥

您可以使用 IBM® Key Protect for IBM Cloud® 来禁用或启用 一个根密钥,并暂时撤销对该密钥在 云端相关数据的访问权限。

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

如果您正在使用与之集成的云服务 Key Protect 您的数据可能无法访问。 禁用根密钥后,您的数据可能无法访问。 确定 集成服务 支持通过禁用 Key Protect 根密钥,请参阅其服务 文档。

禁用或启用根密钥

禁用根密钥

禁用先前已启用的根密钥时,密钥将从 活动已暂挂 密钥状态。 此操作意味着密钥无法再用于以加密方式保护数据。

如果您正在使用支持撤销对已禁用根密钥的访问权的集成云服务,那么在撤销对根密钥的关联数据的访问权之前,该服务最多可能需要 4 小时。

撤销对关联数据的访问权后,相应的 disable event 显示在 IBM Cloud Logs 网络用户界面中。 disable event 指示密钥已撤销 (现在已禁用),并且密钥 不能 用于加密和解密操作。

启用根密钥

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

如果您正在使用支持恢复对禁用的根密钥的访问权的集成云服务,那么在恢复对根密钥的关联数据的访问权之前,该服务最多可能需要 4 小时。

复原对关联数据的访问权后,相应的 enable event 显示在 IBM Cloud Logs 网络用户界面中。 enable event 指示密钥已复原 (现在已启用),并且该密钥可用于加密和解密操作。

在控制台中禁用和启用根密钥

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

在控制台中禁用根密钥

在将密钥创建或导入到该服务后, 请按照以下步骤禁用该密钥:

  1. 登录到 IBM Cloud 控制台

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

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

  4. 在应用程序详细信息页面上,使用 “密钥”表浏览 您的 Key Protect 实例中的密钥。

  5. 点击 ⋯ 图标,打开要禁用的该键的 选项列表。

  6. 在“选项”菜单中,单击“禁用”,并在更新后的 “密钥”表中确认该密钥已被禁用

在控制台中启用根密钥

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

  1. 登录到 IBM Cloud 控制台

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

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

  4. 在应用程序详细信息页面中,使用密钥表来浏览服务中的密钥。

  5. 点击⋯图标,打开您要 启用的键的选项列表。

  6. 在“选项”菜单中,单击“启用”,并在更新后的 “密钥”表中确认该密钥已启用。

禁用后无法立即启用密钥。 如果在错误中禁用了密钥,请至少等待 30 秒,然后再尝试重新启用该密钥。

使用 API 禁用和启用根密钥

使用 API 禁用根密钥

您可以通过创建 POST 来禁用处于 活动 密钥状态的根密钥 调用以下端点。

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

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

  2. 获取要禁用的根密钥的 ID。

    您可以通过创建 GET /v2/keys 来检索指定密钥的标识 request,或者通过在 Key Protect 仪表板。

  3. 运行以下 curl 命令以禁用根密钥并暂挂其加密和解密操作。

    $ curl -X POST \
        "https://<region>.kms.cloud.ibm.com/api/v2/keys/<keyID_or_alias>/actions/disable" \
        -H "authorization: Bearer <IAM_token>" \
        -H "bluemix-instance: <instance_ID>" \
        -H "x-kms-key-ring: <key_ring_ID>"
    

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

描述了使用Key ProtectAPI 禁用根密钥所需的变量。API 禁用根密钥所需的变量。
变量 描述
区域 **必填。 区域缩写(例如 us-southeu-gb ),用于表示您的 Key Protect 实例所在的地理区域。

如需了解更多信息,请参阅 “区域服务端点”
keyID_or_alias 必填。 要禁用的根密钥的唯一标识符或别名。
IAM_token 必填。 您的 IBM Cloud 访问令牌。 在 curl 请求中包含 IAM 令牌的完整内容,包括 Bearer 值。

如需了解更多信息,请参阅“获取访问令牌”。
instance_ID 必填。 分配给您的 Key Protect 服务实例的唯一标识符。

如需了解更多信息,请参阅 “检索实例 ID”
键环 ID 可选。 密钥所属的密钥环的唯一标识。 如果未指定,Key Protect 将在与指定实例关联的每个密钥环中搜索密钥。 建议为更优化的请求指定密钥环标识。

注: 在没有 x-kms-key-ring 头的情况下创建的密钥的密钥环标识为: 缺省值。

有关更多信息,请参阅 分组键

禁用请求成功后会返回 HTTP 204 No Content 响应、响应,表明根密钥在加密和解密操作中被禁用。操作。

可选: 验证密钥禁用

您可以通过发出获取密钥元数据请求来验证是否已禁用密钥:

$ curl -X GET \
    "https://<region>.kms.cloud.ibm.com/api/v2/keys/<keyID_or_alias>/metadata" \
    -H "accept: application/vnd.ibm.kms.key+json" \
    -H "authorization: Bearer <IAM_token>" \
    -H "bluemix-instance: <instance_ID>"

其中 <keyID_or_alias> 是密钥的标识或别名,<instance_ID> 是实例的名称,<IAM_token> 是 IAM 令牌。

查看响应主体中的 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:kms: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": "Deprecated",
            "algorithmMetadata": {
                "bitLength": "128",
                "mode": "Deprecated"
            },
            "algorithmBitSize": 128,
            "algorithmMode": "Deprecated",
            "lastUpdateDate": "2020-03-16T20:41:27Z",
            "keyVersion": {
                "id": "30372f20-d9f1-40b3-b486-a709e1932c9c",
                "creationDate": "2020-03-12T03:37:32Z"
            },
            "dualAuthDelete": {
                "enabled": false
            },
            "deleted": false
        }
    ]
}

使用 API 启用已禁用的根密钥

您可以通过创建 POST 来启用处于 已暂挂 密钥状态的根密钥 调用以下端点。

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

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

  2. 获取您想要启用的已禁用根密钥的 ID。

    您可以通过创建 GET /v2/keys 来检索指定密钥的标识 request,或者通过在 Key Protect 仪表板。

  3. 运行以下 curl 命令以启用根密钥并复原其加密和解密操作。

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

    $ curl -X POST \
        "https://<region>.kms.cloud.ibm.com/api/v2/keys/<keyID_or_alias>/actions/enable" \
        -H "authorization: Bearer <IAM_token>" \
        -H "bluemix-instance: <instance_ID>" \
        -H "x-kms-key-ring: <key_ring_ID>"
    

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

描述了使用Key ProtectAPI 启用根密钥所需的变量。API 启用根密钥所需的变量。
变量 描述
区域 必填。 区域缩写(例如 us-southeu-gb ),用于表示您的 Key Protect 实例所在的地理区域。

如需了解更多信息,请参阅 “区域服务端点”
keyID_or_alias 必填。 要启用的根密钥的唯一标识符或别名。
IAM_token 必填。 您的 IBM Cloud 访问令牌。 在 curl 请求中包含 IAM 令牌的完整内容,包括 Bearer 值。

如需了解更多信息,请参阅“获取访问令牌”。
instance_ID 必填。 分配给您的 Key Protect 服务实例的唯一标识符。

如需了解更多信息,请参阅 “检索实例 ID”
键环 ID 可选。 密钥所属的密钥环的唯一标识。 如果未指定,Key Protect 将在与指定实例关联的每个密钥环中搜索密钥。 建议为更优化的请求指定密钥环标识。

注: 在没有 x-kms-key-ring 头的情况下创建的密钥的密钥环标识为: 缺省值。

有关更多信息,请参阅 分组键

启用请求成功后会返回 HTTP 204 No Content 响应,表示已恢复根密钥用于加密和解密。响应,表明根密钥已恢复用于加密和解密 操作。

可选: 验证密钥启用

您可以通过发出获取密钥元数据请求来验证是否已启用密钥:

$ curl -X GET \
    "https://<region>.kms.cloud.ibm.com/api/v2/keys/<keyID_or_alias>/metadata" \
    -H "accept: application/vnd.ibm.kms.key+json" \
    -H "authorization: Bearer <IAM_token>" \
    -H "bluemix-instance: <instance_ID>"

其中 <keyID_or_alias> 是密钥的标识或别名,<instance_ID> 是实例的名称,<IAM_token> 是 IAM 令牌。

查看响应主体中的 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:kms: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
        }
    ]
}