密钥管理器 - AWS IoT Greengrass

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

密钥管理器

密钥管理器组件 (aws.greengrass.SecretManager) 将密钥从 AWS Secrets Manager 部署到 Greengrass 核心设备。使用此组件在 Greengrass 核心设备的自定义组件中安全地使用凭证(如密码)。有关 Secrets Manager 的更多信息,请参阅 AWS Secrets Manager 用户指南中的什么是 AWS Secrets Manager?

要在您的自定义 Greengrass 组件中访问此组件的秘密,请使用中的操作。GetSecretValue AWS IoT Device SDK有关更多信息,请参阅使用 AWS IoT Device SDK 与 Greengrass 原子核、其他组件进行通信 AWS IoT Core检索密钥值

此组件对核心设备上的密钥进行加密,在您使用凭证和密码前确保其安全。它使用核心设备的私钥来加密和解密密钥。

版本

此组件具有以下版本:

  • 2.2.x

  • 2.1.x

  • 2.0.x

Type

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

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

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

操作系统

此组件可以安装在运行以下操作系统的核心设备上:

  • Linux

  • Windows

要求

此组件具有以下要求:

  • Greengrass 设备角色必须允许secretsmanager:GetSecretValue该操作,如以下示例策略所示。IAM

    { "Version": "2012-10-17", "Statement": [ { "Action": [ "secretsmanager:GetSecretValue" ], "Effect": "Allow", "Resource": [ "arn:aws:secretsmanager:region:123456789012:secret:MySecret" ] } ] }
    注意

    如果您使用客户管理的密 AWS Key Management Service 钥来加密机密,则设备角色也必须允许该kms:Decrypt操作。

    有关 Secrets Manager IAM 策略的更多信息,请参阅《AWS Secrets Manager 用户指南》中的以下内容:

  • 自定义组件必须定义一个授权策略,该策略允许 aws.greengrass#GetSecretValue 获取此组件存储的密钥。在此授权策略中,您可以限制组件对特定密钥的访问权限。有关更多信息,请参阅机密管理员IPC授权

  • (可选)如果您将核心设备的私钥和证书存储在硬件安全模块(HSM)中,则HSM必须支持RSA密钥,私钥必须具有unwrap权限,公钥必须具有wrap权限。

端点和端口

除基本操作所需的端点和端口外,此组件还必须能够对以下端点和端口执行出站请求。有关更多信息,请参阅 允许设备流量通过代理或防火墙

Endpoint 端口 Required 描述

secretsmanager.region.amazonaws.com

443 Yes

将密钥下载至核心设备。

依赖项

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

2.2.2

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

依赖关系 兼容版本 依赖关系类型
Greengrass Nucleus >=2.5.0 <2.15.0 软性
2.2.0

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

依赖关系 兼容版本 依赖关系类型
Greengrass Nucleus >=2.13.0 <2.14.0 软性
2.1.7 – 2.1.8

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

依赖关系 兼容版本 依赖关系类型
Greengrass Nucleus >=2.5.0 <2.13.0 软性
2.1.6

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

依赖关系 兼容版本 依赖关系类型
Greengrass Nucleus >=2.5.0 <2.12.0 软性
2.1.5

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

依赖关系 兼容版本 依赖关系类型
Greengrass Nucleus >=2.5.0 <2.11.0 软性
2.1.4

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

依赖关系 兼容版本 依赖关系类型
Greengrass Nucleus >=2.5.0 <2.10.0 软性
2.1.3

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

依赖关系 兼容版本 依赖关系类型
Greengrass Nucleus >=2.5.0 <2.9.0 软性
2.1.2

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

依赖关系 兼容版本 依赖关系类型
Greengrass Nucleus >=2.5.0 <2.8.0 软性
2.1.1

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

依赖关系 兼容版本 依赖关系类型
Greengrass Nucleus >=2.5.0 <2.7.0 软性
2.1.0

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

依赖关系 兼容版本 依赖关系类型
Greengrass Nucleus >=2.5.0 <2.6.0 软性
2.0.9

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

依赖关系 兼容版本 依赖关系类型
Greengrass Nucleus >=2.0.0 <2.5.0 软性
2.0.8

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

依赖关系 兼容版本 依赖关系类型
Greengrass Nucleus >=2.0.0 <2.4.0 软性
2.0.7

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

依赖关系 兼容版本 依赖关系类型
Greengrass Nucleus >=2.0.0 <2.3.0 软性
2.0.6

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

依赖关系 兼容版本 依赖关系类型
Greengrass Nucleus >=2.0.0 <2.2.0 软性
2.0.4 and 2.0.5

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

依赖关系 兼容版本 依赖关系类型
Greengrass Nucleus >=2.0.3 <2.1.0 软性

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

配置

此组件提供您可以在部署组件时自定义的以下配置参数。

periodicRefreshIntervalMin(可选)

此组件将核心设备上配置的密钥与来自 AWS Secrets Manager 服务的最新密钥值同步的时间间隔(以分钟为单位)。如果未配置此时间间隔,密钥管理器将不会定期刷新配置的密钥。

{ "cloudSecrets": [ { "arn": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyGreengrassSecret-abcdef" } ], "periodicRefreshIntervalMin" : 60 }
cloudSecrets

要部署到核心设备的密钥管理器密钥列表。您可以指定标签来定义要部署的每个密钥的版本。如果未指定版本,则此组件将部署使用附加了暂存标签 AWSCURRENT 的版本。有关更多信息,请参阅《AWS Secrets Manager 用户指南》中的暂存标签

密钥管理器组件在本地缓存密钥。如果密钥管理器中的密钥值发生变化,此组件不会自动检索新值。要更新本地副本,请为密钥指定一个新标签,然后将此组件配置为检索由新标签标识的密钥。

每个对象包含以下信息:

arn

部署ARN的秘诀。秘密可以是完整的,ARN也可以是部分的ARN。ARN我们建议您指定完整ARN而不是部分ARN。有关更多信息,请参阅从局部中查找机密ARN。以下是完整版ARN和部分版的示例ARN:

  • 完整ARN:arn:aws:secretsmanager:us-east-2:111122223333:secret:SecretName-abcdef

  • 部分ARN:arn:aws:secretsmanager:us-east-2:111122223333:secret:SecretName

labels

(可选)用于标识要部署到核心设备的密钥版本的标签列表。

每个标签必须是一个字符串。

例 示例:配置合并更新
{ "cloudSecrets": [ { "arn": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyGreengrassSecret-abcdef" } ] }

本地日志文件

此组件使用与 Greengrass Nucleus 组件相同的日志文件。

Linux
/greengrass/v2/logs/greengrass.log
Windows
C:\greengrass\v2\logs\greengrass.log
查看此组件的日志
  • 在核心设备上运行以下命令以实时查看此组件的日志文件。将/greengrass/v2C:\greengrass\v2替换为 AWS 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.2.2

错误修复和改进

修复了秘密管理员无法下载配置了部分 arn 的机密的问题。

2.2.1

错误修复和改进

支持 Nucleus 版本 2.5.0 及更高版本中的密钥管理器。

2.2.0

新特征

支持通过新的组件配置密钥定期刷新已配置的密钥。

在请求中添加对新请求参数的GetSecretValueIPC支持,以刷新每个请求的密钥

2.1.8

错误修复和改进

修复了密钥管理器不接受部分 ARN 的问题。

2.1.7

版本更新为 Greengrass Nucleus 版本 2.12.0 发布版。

2.1.6

版本更新为 Greengrass Nucleus 版本 2.11.0 发布版。

2.1.5

版本更新为 Greengrass Nucleus 版本 2.10.0 发布版。

2.1.4

错误修复和改进

修复了以下问题:部署了密钥管理器并且 Greengrass Nucleus 重启时,缓存的密钥会被移除。

对 Greengrass Nucleus版本 2.9.0 发行版进行了版本更新。

2.1.3

版本更新为 Greengrass Nucleus 版本 2.8.0 发布版。

2.1.2

版本更新为 Greengrass Nucleus 版本 2.7.0 发布版。

2.1.1

版本更新为 Greengrass Nucleus 版本 2.6.0 发布版。

2.1.0

新特征
  • 添加了对硬件安全集成的支持。密钥管理器组件可以使用存储在硬件安全模块 () HSM 中的私钥来加密和解密机密。有关更多信息,请参阅 硬件安全性集成

错误修复和改进
  • 版本更新为 Greengrass Nucleus 版本 2.5.0 发布版。

2.0.9

版本更新为 Greengrass Nucleus 版本 2.4.0 发布版。

2.0.8

版本更新为 Greengrass Nucleus 版本 2.3.0 发布版。

2.0.7

对 Greengrass Nucleus 版本 2.2.0 发行版进行了版本更新。

2.0.6

对 Greengrass Nucleus 版本 2.1.0 发行版进行了版本更新。

2.0.5

改进
  • 添加对 AWS 中国地区 AWS GovCloud (US) 和地区的支持。

2.0.4

初始版本。