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

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

PKCS #11 提供商

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

要配置在 HSM 中存储其证书和私钥的 Greengrass 核心设备,在安装Amazon IoT Greengrass Core 软件时,必须将此组件指定为配置插件。有关更多信息,请参阅 安装Amazon IoT Greengrass具有手动资源配置功能的核心软件

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

附属物

部署组件时,Amazon IoT Greengrass还会部署其依赖项的兼容版本。这意味着您必须满足组件及其所有依赖项的要求才能成功部署该组件。本节列出了此组件已发布版本的依赖关系以及为每个依赖项定义组件版本的语义版本约束。您还可以在Amazon IoT Greengrass控制台中查看每个版本组件的依赖关系。在组件详细信息页面上,查找 “依赖关系” 列表。

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

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。

Version

变更

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

初始版本。