导入标准密钥
您可以使用 UI 添加现有加密密钥,也可以使用 Hyper Protect Crypto Services 密钥管理服务 API 以编程方式添加现有加密密钥。
使用 UI 导入标准密钥
创建服务的实例后,请完成以下步骤以使用 Hyper Protect Crypto Services GUI 来输入现有标准密钥。
-
转至 菜单 > 资源列表 以查看资源列表。
-
从 IBM Cloud 资源列表,选择 Hyper Protect Crypto Services 的已供应实例。
-
要导入密钥,请在侧边菜单中选择 KMS 密钥 选项卡。
-
在“密钥”表中,单击 添加密钥,然后选择 导入密钥。
指定密钥的详细信息:
表 1. 描述用于导入标准密钥的设置 设置 描述 密钥类型 要在 Hyper Protect Crypto Services 中管理的密钥类型。 从密钥类型列表中,选择 标准密钥。 密钥名称 密钥的人类可读的唯一别名,以便可轻松识别密钥。 为保护隐私,请确保密钥名称不包含个人可标识信息 (PII),例如,姓名或位置。 密钥别名 (可选) 要分配给密钥以方便识别的一个或多个唯一的人类可读别名。 别名大小可以是 2-90 个字符。 最多可以为密钥设置五个密钥别名,每个别名以逗号分隔。 注: 每个别名必须是字母数字,区分大小写,并且不能包含空格或除短划线 (-) 或下划线 (_) 以外的特殊字符。别名不能是 V 4 UUID,也不能是 Hyper Protect Crypto Services 保留名称:
allowed_ip,key,keys,metadata,policy,policies,registration,registrations,ring,rings,rotate,wrap,unwrap,rewrap,version和versions。密钥环标识 从包含现有密钥环的列表中选择密钥环。 如果未指定密钥环,那么会将该密钥添加到 default密钥环。 有关密钥环的更多信息,请参阅 管理密钥环。密钥资料 要在服务中管理的 Base64 编码的密钥资料,例如对称密钥。 有关更多信息,请参阅 Base64 编码密钥资料。 确保密钥资料满足以下需求:
- 密钥最多可以为 7,500 字节。
- 密钥必须是 base64-encoded。
到期日期 (可选) 设置密钥到期的日期和时间。 在到期日期之后,密钥将进入“已取消激活”状态。 有关密钥状态的更多信息,请参阅 监视加密密钥的生命周期。 描述 (可选) 添加密钥的扩展描述。 长度需要为 2 到 240 个字符。 -
填写完密钥的详细信息后,单击 导入密钥 以进行确认。
使用 API 导入标准密钥
通过对以下端点发出 POST 调用来导入标准密钥:
https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/keys
-
使用以下 cURL 命令调用 Hyper Protect Crypto Services 密钥管理服务 API。
curl -X POST \ https://<instance_ID>.api.<region>.hs-crypto.appdomain.cloud/api/v2/keys \ -H 'authorization: Bearer <IAM_token>' \ -H 'bluemix-instance: <instance_ID>' \ -H 'content-type: application/vnd.ibm.kms.key+json' \ -H 'correlation-id: <correlation_ID>' \ -H 'prefer: <return_preference>' \ -d '{ "metadata": { "collectionType": "application/vnd.ibm.kms.key+json", "collectionTotal": 1 }, "resources": [ { "type": "application/vnd.ibm.kms.key+json", "name": "<key_alias>", "description": "<key_description>", "expirationDate": "<YYYY-MM-DDTHH:MM:SS.SSZ>", "payload": "<key_material>", "extractable": <key_type> } ] }'根据下表替换示例请求中的变量。
表 2. 描述使用 Hyper Protect Crypto Services 密钥管理服务 API 添加标准密钥所需的变量。 变量 描述 region区域缩写(例如, us-south或au-syd),表示 Hyper Protect Crypto Services 服务实例所在的地理区域。 有关更多信息,请参阅区域服务端点。port必需。 API 端点的端口号。 IAM_token您的 IBM Cloud 访问令牌。 在 cURL 请求中包含 IAM令牌的完整内容,包括 Bearer 值。 有关更多信息,请参阅 检索访问令牌。instance_ID指定给您的 Hyper Protect Crypto Services 服务实例的唯一标识。 有关更多信息,请参阅 检索实例标识。 correlation_ID用于跟踪和关联事务的唯一标识。 return_preference可选: 用于更改 POST和DELETE操作的服务器行为的头。 将return_preference变量设置为return=minimal时,服务仅返回响应实体主体中的密钥元数据,例如密钥名称和标识值。 将变量设置为return=representation时,服务将返回密钥资料和密钥元数据。key_alias密钥的人类可读的唯一名称,以便可轻松识别密钥。
重要信息:为保护隐私,请勿将个人数据存储为密钥的元数据。key_description可选:密钥的扩展描述。
重要信息:为保护隐私,请勿将个人数据存储为密钥的元数据。YYYY-MM-DDHH:MM:SS.SS可选:密钥在系统中到期的日期和时间(RFC 3339 格式)。 如果省略了 expirationDate属性,那么键不会到期。key_material要在服务中管理的 Base64 编码的密钥资料,例如对称密钥。 有关更多信息,请参阅 Base64 编码密钥资料。
确保密钥资料满足以下需求:
* 密钥最多可以为 7,500 字节。
* 密钥必须是 base64-encoded。key_type布尔值,用于确定密钥资料是否可以离开服务。
将extractable属性设置为true时,服务会将该密钥指定为可以存储在应用程序或服务中的标准密钥。为保护个人数据的机密性,在向服务添加密钥时,避免输入个人可标识信息 (PII),例如,姓名或位置。 有关 PII 的更多示例,请参阅 NIST Special Publication 800-122的 2.2 部分。
成功的
POST /v2/keys响应会返回密钥的标识值以及其他元数据。 该标识是分配给密钥的唯一标识,用于后续调用 Hyper Protect Crypto Services 密钥管理服务 API。 -
可选:通过运行以下调用来获取 Hyper Protect Crypto Services 服务实例中的密钥,以验证是否添加了密钥。
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 'correlation-id: <correlation_ID>' \
使用 CLI 导入标准密钥
完成以下步骤以导入使用 Key Protect CLI (集成在 Hyper Protect Crypto Services中) 的标准密钥:
-
使用以下命令导入标准密钥:
ibmcloud kp key create您可以在 Key Protect CLI 参考 中找到此命令的额外参数。
Base64 编码密钥资料
导入现有标准密钥时,需要包含要在服务中存储和管理的加密密钥资料。
使用 OpenSSL 对现有密钥资料进行编码
-
下载并安装 OpenSSL。
-
Base64 通过运行以下命令对密钥材料字符串进行编码:
$ openssl base64 -in <infile> -out <outfile>根据下表替换示例请求中的变量。
表 3. 描述对密钥资料进行 base64 编码所需的变量 变量 描述 infile密钥材料字符串所在的文件的名称。 outfile运行命令时在其中创建 base64-encoded 密钥资料的文件的名称。 如果要直接在命令行而不是文件中输出 base64 材料,请运行命令
openssl enc -base64 <<< '<key_material_string>',其中 key_material_string 是导入的密钥的密钥材料输入。
使用 OpenSSL 来创建和编码新的密钥资料
-
下载并安装 OpenSSL。
-
Base64 通过运行以下命令对密钥材料字符串进行编码:
$ openssl rand <byte_length> -base64将示例请求中的
byte_length变量替换为键的长度 (以字节计)。 可接受的字节长度最多可以为 7,500 字节。
下一步
要了解有关以编程方式管理密钥的更多信息,请 查看 Hyper Protect Crypto Services 密钥管理服务 API 参考文档。