PKCS #11 提供商 - Amazon IoT Greengrass
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

PKCS #11 提供商

PKCS #11 提供程序组件 (aws.greengrass.crypto.Pkcs11Provider) 使您可以通过 P KCS #11 接口将Amazon IoT Greengrass核心软件配置为使用硬件安全模块 (HSM)。此组件使您能够安全地存储证书和私钥文件,这样它们就不会在软件中暴露或复制。有关更多信息,请参阅 硬件安全性集成

要配置在 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-latest.jar

版本

此组件有以下版本:

  • 2.0.x

类型

此组件是一个插件组件 (aws.greengrass.plugin)。Greengrass 核心在与核心相同的 Java 虚拟机 (JVM) 中运行此组件。当您在核心设备上更改此组件的版本时,nucleus 会重新启动。

该组件使用与 Greengrass 核相同的日志文件。有关更多信息,请参阅 监控Amazon IoT Greengrass日志

有关更多信息,请参阅 组件类型

操作系统

此组件只能安装在 Linux 核心设备上。

要求

此组件具有以下要求:

  • 一种硬件安全模块,支持 PKCS #1 v1.5 签名方案和密钥大小为 RSA-2048(或更大)或 ECC 密钥的 RSA 密钥。

    注意

    要使用带有 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 支持对象 ID,则必须将私钥和证书存储在 HSM 的同一个插槽中,并且它们必须使用相同的对象标签和对象 ID。

  • 证书和私钥必须可通过对象标签进行解析。

  • 私钥必须具有以下权限:

    • 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控制台中查看组件每个版本的依赖关系。在组件详细信息页面上,查找 “依赖关系” 列表。

2.0.7

下表列出了此组件版本 2.0.7 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=2.5.3 <2.13.0 软性
2.0.6

下表列出了此组件版本 2.0.6 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=2.5.3 <2.12.0 软性
2.0.5

下表列出了此组件版本 2.0.5 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=2.5.3 <2.11.0 软性
2.0.4

下表列出了此组件版本 2.0.4 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=2.5.3 <2.10.0 软性
2.0.3

下表列出了此组件版本 2.0.3 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=2.5.3 <2.9.0 软性
2.0.2

下表列出了此组件版本 2.0.2 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=2.5.3 <2.8.0 软性
2.0.1

下表列出了此组件版本 2.0.1 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=2.5.3 <2.7.0 软性
2.0.0

下表列出了此组件版本 2.0.0 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=2.5.3 <2.6.0 软性

有关组件依赖关系的更多信息,请参阅组件配方参考

配置

此组件提供以下配置参数,您可以在部署该组件时对其进行自定义。

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 组件相同的日志文件。

Linux
/greengrass/v2/logs/greengrass.log
Windows
C:\greengrass\v2\logs\greengrass.log
查看此组件的日志
  • 在核心设备上运行以下命令以实时查看此组件的日志文件。将/greengrass/v2C:\greengrass\v2 替换为Amazon IoT Greengrass根文件夹的路径。

    Linux
    sudo tail -f /greengrass/v2/logs/greengrass.log
    Windows (PowerShell)
    Get-Content C:\greengrass\v2\logs\greengrass.log -Tail 10 -Wait

更改日志

下表描述了该组件的每个版本中的更改。

版本

更改

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

初始版本。