禁用和启用根密钥
您可以使用 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 控制台。
在控制台中禁用根密钥
在将密钥创建或导入到该服务后, 请按照以下步骤禁用该密钥:
-
转到 “菜单” > “资源列表” 以查看您的资源列表。
-
从 IBM Cloud 资源列表中,选择您供应的 Key Protect 实例。
-
在应用程序详细信息页面上,使用 “密钥”表浏览 您的 Key Protect 实例中的密钥。
-
点击 ⋯ 图标,打开要禁用的该键的 选项列表。
-
在“选项”菜单中,单击“禁用”,并在更新后的 “密钥”表中确认该密钥已被禁用
在控制台中启用根密钥
在创建现有密钥或将其导入到服务中 并 禁用 根密钥之后,请完成以下步骤以启用该密钥:
-
转到 “菜单” > “资源列表” 以查看您的资源列表。
-
从 IBM Cloud 资源列表中,选择您供应的 Key Protect 实例。
-
在应用程序详细信息页面中,使用密钥表来浏览服务中的密钥。
-
点击⋯图标,打开您要 启用的键的选项列表。
-
在“选项”菜单中,单击“启用”,并在更新后的 “密钥”表中确认该密钥已启用。
禁用后无法立即启用密钥。 如果在错误中禁用了密钥,请至少等待 30 秒,然后再尝试重新启用该密钥。
使用 API 禁用和启用根密钥
使用 API 禁用根密钥
您可以通过创建 POST 来禁用处于 活动 密钥状态的根密钥 调用以下端点。
https://<region>.kms.cloud.ibm.com/api/v2/keys/<keyID_or_alias>/actions/disable
-
要禁用根密钥,必须为您分配实例或密钥的 管理者 服务访问角色。 了解 IAM 角色如何映射到 Key Protect 服务操作,请查看 服务访问角色。
-
获取要禁用的根密钥的 ID。
您可以通过创建
GET /v2/keys来检索指定密钥的标识 request,或者通过在 Key Protect 仪表板。 -
运行以下
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>"根据下表替换示例请求中的变量。
| 变量 | 描述 |
|---|---|
| 区域 | **必填。 区域缩写(例如 us-south 或 eu-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
-
要启用根密钥,必须为您分配实例或密钥的 管理者 服务访问角色。 了解 IAM 角色如何映射到 Key Protect 服务操作,请查看 服务访问角色。
-
获取您想要启用的已禁用根密钥的 ID。
您可以通过创建
GET /v2/keys来检索指定密钥的标识 request,或者通过在 Key Protect 仪表板。 -
运行以下
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>"
根据下表替换示例请求中的变量。
| 变量 | 描述 |
|---|---|
| 区域 | 必填。 区域缩写(例如 us-south 或 eu-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
}
]
}