本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
PKCS#11 提供程序
PKCS #11 提供程序组件 (aws.greengrass.crypto.Pkcs11Provider
) 使您可以通过 PKCS #11 接口
要配置在 HSM 中存储其证书和私钥的 Greengrass 核心设备,您必须在安装 Core 软件时将此组件指定为配置插件。 Amazon IoT Greengrass 有关更多信息,请参阅 使用手动资源配置来安装 Amazon IoT Greengrass Core 软件。
Amazon IoT Greengrass 将此组件作为 JAR 文件提供,您可以下载该文件以在安装过程中将其指定为预配插件。你可以通过以下 URL 下载该组件 JAR 文件的最新版本:https://d2s8p88vqu9w66.cloudfront。 net/releases/Pkcs11Provider/aws.greengrass.crypto.pkcs11Provider
版本
此组件具有以下版本:
-
2.0.x
类型
此组件是一个插件组件 (aws.greengrass.plugin
)。Greengrass Nucleus 在与该 Nucleus 相同的 Java 虚拟机(JVM)中运行该组件。当您在核心设备上更改此组件的版本时,Nucleus 会重新启动。
此组件使用与 Greengrass Nucleus 相同的日志文件。有关更多信息,请参阅 监控 Amazon IoT Greengrass 日志。
有关更多信息,请参阅 组件类型。
操作系统
此组件只能安装在 Linux 核心设备上。
要求
此组件具有以下要求:
-
支持 PKCS#1 v1.5
签名方案和 RSA-2048 密钥大小(或更大)的 RSA 密钥或 ECC 密钥的硬件安全模块。 注意
要使用带 ECC 密钥的硬件安全模块,必须使用 Greengrass Nucleus v2.5.6 或更高版本。
要使用硬件安全模块和密钥管理器,必须使用带 RSA 密钥的硬件安全模块。
-
一个 PKCS #11 提供程序库, Amazon IoT Greengrass 核心软件可以在运行时加载该库(使用 libdl)来调用 PKCS #11 函数。PKCS#11 提供程序库必须实施以下 PKCS#11 API 操作:
-
C_Initialize
-
C_Finalize
-
C_GetSlotList
-
C_GetSlotInfo
-
C_GetTokenInfo
-
C_OpenSession
-
C_GetSessionInfo
-
C_CloseSession
-
C_Login
-
C_Logout
-
C_GetAttributeValue
-
C_FindObjectsInit
-
C_FindObjects
-
C_FindObjectsFinal
-
C_DecryptInit
-
C_Decrypt
-
C_DecryptUpdate
-
C_DecryptFinal
-
C_SignInit
-
C_Sign
-
C_SignUpdate
-
C_SignFinal
-
C_GetMechanismList
-
C_GetMechanismInfo
-
C_GetInfo
-
C_GetFunctionList
-
-
硬件模块必须可按槽标签解析,如 PKCS#11 规范所定义。
-
如果 HSM 支持对象,则必须将私钥和证书存储在 HSM 中的同一个插槽中,并且它们必须使用相同的对象标签和对象 ID。 IDs
-
证书和私有密钥必须由对象标签来解析。
-
私有密钥必须具有以下权限:
-
sign
-
decrypt
-
-
(可选)要使用密钥管理器组件,必须使用 2.1.0 或更高版本,并且私有密钥必须具有以下权限:
-
unwrap
-
wrap
-
-
(可选)如果您使用 TPM2 库并将 Greengrass 核心作为服务运行,则必须提供一个包含 PKCS #11 存储位置的环境变量。以下示例是具有所需环境变量的 systemd 服务文件:
[Unit] Description=Greengrass Core After=network.target [Service] Type=simple PIDFile=/var/run/greengrass.pid Environment=TPM2_PKCS11_STORE=
/path/to/store/directory
RemainAfterExit=no Restart=on-failure RestartSec=10 ExecStart=/bin/sh /greengrass/v2/alts/current/distro/bin/loader [Install] WantedBy=multi-user.target
依赖项
部署组件时, Amazon IoT Greengrass 还会部署其依赖项的兼容版本。这意味着您必须满足组件及其所有依赖关系的要求,才能成功部署组件。本部分列出了此组件的已发布版本的依赖关系,以及定义每个依赖关系的组件版本的语义版本约束。您还可以在 Amazon IoT Greengrass 控制台
有关组件依赖关系的更多信息,请参阅组件配方参考。
配置
此组件提供您可以在部署组件时自定义的以下配置参数。
name
-
PKCS#11 配置的名称。
library
-
Amazon IoT Greengrass 核心软件可以使用 libdl 加载的 PKCS #11 实现库的绝对文件路径。
slot
-
包含私有密钥和设备证书的槽的 ID。此值不同于槽索引或槽标签。
userPin
-
用于访问该槽的用户 PIN。
例 示例:配置合并更新
{ "name": "softhsm_pkcs11", "library": "/usr/lib/softhsm/libsofthsm2.so", "slot": 1, "userPin": "1234" }
本地日志文件
此组件使用与 Greengrass Nucleus 组件相同的日志文件。
查看此组件的日志
-
在核心设备上运行以下命令可实时查看此组件的日志文件。将
或/greengrass/v2
C:\greengrass\v2
替换为 Amazon IoT Greengrass 根文件夹的路径。
更改日志
下表介绍每个组件版本的更改。
版本 |
更改 |
---|---|
2.0.9 |
Greengrass nucleus 版本 2.14.0 版本的版本已更新。 |
2.0.8 |
对 Greengrass Nucleus 版本 2.13.0 发行版进行了版本更新。 |
2.0.7 |
版本更新为 Greengrass Nucleus 版本 2.12.0 发布版。 |
2.0.6 |
版本更新为 Greengrass Nucleus 版本 2.11.0 发布版。 |
2.0.5 |
版本更新为 Greengrass Nucleus 版本 2.10.0 发布版。 |
2.0.4 |
对 Greengrass Nucleus版本 2.9.0 发行版进行了版本更新。 |
2.0.3 |
版本更新为 Greengrass Nucleus 版本 2.8.0 发布版。 |
2.0.2 |
版本更新为 Greengrass Nucleus 版本 2.7.0 发布版。 |
2.0.1 |
版本更新为 Greengrass Nucleus 版本 2.6.0 发布版。 |
2.0.0 |
初始版本。 |