IBM Cloud Hyper Protect Crypto Services 入门
IBM Cloud® Hyper Protect Crypto Services (简称Hyper Protect Crypto Services ) 是基于 IBM Cloud的专用密钥管理服务和硬件安全模块 (HSM)。 通过此服务,您可以获取云 HSM 的所有权以完全管理加密密钥并执行加密操作。Hyper Protect Crypto Services 也是云行业中唯一基于 FIPS 140-2 级别 4 认证的硬件构建的服务。 Unified Key Orchestrator 函数提供企业的混合多云环境中加密密钥的唯一云本机单点控制。
本教程向您显示了有关如何通过装入主密钥,使用 UI 创建和管理加密密钥以及使用 PKCS #11 API 或 GREP11 API 执行加密操作来设置服务实例的高级步骤。
步骤 1: 初始化服务实例
根据服务实例所在位置和安全性需求,Hyper Protect Crypto Services 为您提供以下三个选项来初始化服务实例:
-
选项 1: 使用智能卡和管理实用程序初始化服务实例
此选项为您提供了最高的安全性,这使您能够使用智能卡来存储和管理主密钥部件。
-
选项 2: 使用恢复加密单元初始化服务实例
如果在启用了恢复加密单元的区域中创建服务实例,那么可以选择此选项。 使用此选项时,将在恢复加密单元中随机生成主密钥,然后自动将其导出到其他加密单元。 您可以管理主密钥并以最小的工作量完成实例初始化。
-
选项 3: 使用密钥部件文件初始化服务实例
您还可以使用存储在本地工作站上的文件中的主密钥部件来初始化服务实例。 无论服务实例是否包含恢复加密单元,都可以使用此方法。
步骤 2 (仅限标准套餐): 创建密钥
通过标准套餐,您可以创建根密钥或标准密钥以进行数据加密。 要创建第一个密钥,请完成以下步骤。 要完成这些步骤,请确保您是 IBM Cloud 帐户所有者或分配有 写程序 角色。 有关详细信息,请参阅 UI 中的 分配对 Hyper Protect Crypto Services 的访问权。
- 在 UI 中,单击 KMS 密钥 > 添加密钥。
- 选择 创建密钥。
- 指定 根密钥 或 标准密钥 作为密钥类型,并输入密钥的唯一名称。 确保密钥名称不包含个人可标识信息 (PII),例如您的名称或位置。
- 单击 添加密钥 以确认。
创建的密钥是对称 256 位密钥,受 AES-CBC 算法支持。 您可以在 密钥管理服务密钥 表中检查密钥的一般特征。 您还可以通过 导入 base64-encoded 密钥资料 来自带密钥。
步骤 2 (仅限Unified Key Orchestrator 计划): 管理加密密钥
如果要将 Hyper Protect Crypto Services 与 Unified Key Orchestrator配合使用,请遵循以下步骤来管理加密密钥。 要完成这些步骤,请确保您是 IBM Cloud 帐户所有者或分配有 保险库文件管理员 角色。 有关详细信息,请参阅 UI 中的 分配对 Hyper Protect Crypto Services 的访问权。
1. 创建保险库文件
保险库文件是单个存储库,用于通过 Cloud Identity and Access Management (IAM) 控制用户或访问组对受管密钥和密钥库的访问。
完成以下步骤以创建第一个保险库文件:
- 在服务实例 UI 中,单击导航中的 保险库 以查看所有可用的保险库文件。
- 单击 创建保险库。
- 在 保险库文件名称中输入名称。 保险库文件名称可以是 1 到 100 个字符。 (可选) 可以在 描述 部分中向保险库文件添加扩展描述。
- 单击 创建保险库 以确认。
2. 创建密钥库
密钥库是存储密钥的存储库。 您可以在服务实例中创建内部密钥库,或者连接到另一个服务实例中的外部密钥库,甚至连接到另一个云提供者 (例如 Microsoft Azure Key Vault,Amazon Web Services (AWS) Key Management Service (KMS) 和 Google Cloud KMS) 中的外部密钥库。
完成以下步骤以创建第一个内部密钥库:
- 在服务实例 UI 中,单击导航中的 密钥库 以查看所有可用的密钥库。
- 单击 添加密钥库。
- 在 保险库下,选择您创建的保险库,然后单击 下一步。 如果要将密钥库分配给新的保险库文件,请单击 创建保险库文件。
- 在 密钥库类型下,选择 IBM Cloud KMS,然后单击 下一步。
- 在 密钥库属性下,在 密钥库名称中输入名称。 密钥库名称可以是 1 到 100 个字符。 然后,单击 下一步。
- 在 摘要下,可以查看您创建的密钥库的摘要,包括密钥库类型,分配的保险库文件和常规属性。
- 确认密钥库详细信息后,单击 创建密钥库 以创建密钥库。
3. 创建密钥模板
密钥模板指定要创建的受管密钥的属性,例如命名约定,密钥算法和密钥长度。
完成以下步骤以创建第一个密钥模板:
- 在服务实例 UI 中,单击导航中的 密钥模板。
- 单击 创建密钥模板。
- 在 保险库下,选择刚刚创建的保险库,然后单击 下一步。
- 在 密钥库下,选择 IBM Cloud KMS 作为密钥库类型,选择刚刚创建的密钥库,然后单击 下一步。
- 在 密钥模板属性下,指定密钥模板的以下详细信息。 单击下一步以继续。
- 在 摘要下,查看密钥模板的摘要,然后单击 创建密钥模板 以完成密钥模板创建。
4. 创建受管密钥
仅当在至少一个密钥库中创建并激活受管密钥后,才能将其用于加密或解密。 完成以下步骤以创建第一个 IBM Cloud KMS 密钥并在您创建的密钥库中激活该密钥:
- 在服务实例 UI 中,单击导航中的 受管密钥 以查看所有可用密钥。
- 单击创建密钥。
- 在 保险库下,选择刚刚创建的保险库,然后单击 下一步。
- 在 密钥模板下,选择 从密钥模板创建,然后选择刚刚创建的密钥模板,然后单击 下一步。
- 在 键属性下,指定键的详细信息。 完成后,单击 下一步 以继续。 请注意,在手动激活密钥库之前,不会在密钥库中安装
Pre-active
密钥。Active
密钥将自动安装在密钥库中。 有关密钥属性的更多信息,请参阅 在 IBM Cloud UI 中使用密钥模板创建受管密钥。 - 在 摘要下,查看密钥的摘要,然后单击 创建密钥 以创建密钥。
步骤 3: 使用云 HSM 加密数据
您可以远程访问 Hyper Protect Crypto Services 云 HSM,以使用 PKCS #11 API 或 GREP11 API 执行加密操作。 要完成这些步骤,请确保您是 IBM Cloud 帐户所有者或分配有 写程序 角色。 有关详细信息,请参阅 UI 中的 分配对 Hyper Protect Crypto Services 的访问权。
使用 PKCS #11 API 执行加密操作
要使用 PKCS #11 API 执行加密操作,请完成以下步骤:
- 设置 PKCS #11 服务标识,角色和操作。 有关更多信息,请参阅 设置 PKCS #11 API 用户类型。
- 下载,安装和配置 PKCS #11 客户机库。 有关配置 PKCS #11 客户机库的更多信息,请参阅 使用 PKCS #11 API 执行加密操作。
使用 GREP11 API 执行加密操作
要使用 GREP11 API 执行加密操作,您需要确保应用程序是使用 gRPC支持的编程语言开发的。
以下过程使用 Golang 代码作为示例来测试 GREP11 函数。
-
按照 指示信息安装 Golang。
-
将 Golang 的 样本 GitHub 存储库 克隆到您选择的本地目录中。 Go 模块用于此存储库,因此您无需将克隆的存储库放在
GOPATH
中。 有关 GREP11 Go 代码示例的更多信息,请参阅存储库的自述文件。 -
更新
examples/server_test.go
文件中的以下代码片段。var ( Address = "<instance_ID>.ep11.us-east.hs-crypto.appdomain.cloud" APIKey = "<ibm_cloud_apikey>" )
在代码示例中,
- 将
<instance_ID>
替换为 GREP11 API 端点的值。 要查找服务端点 URL,请从供应的服务实例 UI 中单击 概述 > 连接 > Enterprise PKCS #11 端点 URL。 - 将
<ibm_cloud_apikey>
替换为您创建的 服务标识 API 密钥。
- 将
-
从
<your_repository_path>/hpcs-grep11-go/examples
目录中,通过运行go test -v -run Example
命令来执行示例。