本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
准备安全性
本节讨论 Software Package Catal AWS IoT Device Management og 的主要安全要求。
基于资源的身份验证
在更新实例集中的软件时,软件包目录使用基于资源的授权来提高安全性。这意味着您必须创建一个 AWS Identity and Access Management (IAM) 策略,该策略授予对软件包和软件包版本执行createreadupdatedelete、、和list操作的权限,并在该Resources部分中引用要部署的特定软件包和软件包版本。您也需要这些权限,以便更新预留命名影子。您可以通过为每个实体包括 Amazon 资源名称(ARN)来引用软件包和软件包版本。
注意
如果您打算让策略授予软件包版本 API 调用的权限(例如CreatePackageVersionUpdatePackageVersion、、DeletePackageVersion),则需要在策略 ARNs 中同时包含软件包和软件包版本。如果您打算通过策略授予软件包 API 调用(例如CreatePackageUpdatePackage、和 DeletePackage)的权限,则必须在策略中仅包含软件包 ARN。
按 ARNs 如下方式构造软件包和软件包版本:
软件包:
arn:aws:iot:<region>:<accountID>:package/<packageName>/package程序包版本:
arn:aws:iot:<region>:<accountID>:package/<packageName>/version/<versionName>
注意
您还可以此策略中包含其它相关权限。例如,您可以为 job、thinggroup 和 jobtemplate 加入一个 ARN。有关更多信息和策略选项的完整列表,请参阅使用AWS IoT 任务保护用户和设备。
例如,如果您的软件包和软件包版本命名如下:
AWS IoT 东西:
myThing软件包名称:
samplePackage版本
1.0.0
该策略可能类似于以下示例:
AWS IoT 部署包版本的 Job 权限
出于安全考虑,您务必授予部署软件包和软件包版本的权限,并指定允许部署的特定软件包和软件包版本。为此,您需要创建 IAM 角色和策略,以授予使用软件包版本部署任务的权限。该策略必须将目标软件包版本指定为资源。
IAM policy
IAM policy 授予创建任务的权限,此任务包括在 Resource 部分中指定的软件包和版本。
注意
如果要部署卸载软件包和软件包版本的任务,则必须授权其中软件包版本为 $null 的 ARN,如下所示:
arn:aws:iot:<regionCode>:111122223333:package/<packageName>/version/$null
AWS IoT 更新保留的名为 shadow 的 Job 权限
要允许任务在任务成功完成时更新事物的预留名称影子,您必须创建 IAM 角色和策略。有两种方法可以在 AWS IoT 控制台中执行此操作。第一种是在控制台中创建软件包时。如果您看到为软件包管理启用依赖项对话框,则可以选择使用现有角色或创建新角色。或者,在 AWS IoT 控制台中,选择设置,选择管理索引,然后选择管理设备软件包和版本的索引。
注意
如果您选择在 AWS IoT 任务成功完成时让 Job 服务更新预留的名为 shadow,则 API 调用将计入您的 Dev ice Shadow 和注册表操作,并且可能会产生费用。有关更多信息,请参阅AWS IoT Core 定价
使用创建角色选项时,所生成角色的名称以 aws-iot-role-update-shadows 开头并包含以下策略:
设置角色
- 权限
-
权限策略授予查询和更新事物影子的权限。资源 ARN 中的
$package参数以预留命名影子为目标。 - 信任关系
-
除了权限策略外,该角色还需要与 AWS IoT Core 建立信任关系,以便实体可以代入该角色并更新预留命名影子。
设置用户策略
- iam:PassRole 权限
-
最后,在调用 UpdatePackageConfigurationAPI 操作 AWS IoT Core 时,您必须拥有将角色传递给的权限。
AWS IoT 从 Amazon S3 下载的任务权限
任务文件保存在 Amazon S3 中。当你通过 AWS IoT Jobs 调度时,你会参考这个文件。您必须向 AWS IoT Jobs 提供下载文件的权限 (s3:GetObject)。您还必须在 Amazon S3 和 AWS IoT 任务之间建立信任关系。有关创建这些策略的说明,请参阅管理作业 URLs中的预签名。
更新软件包版本的软件物料清单的权限
要更新处于Draft、Published或Deprecated生命周期状态的软件包版本的软件物料清单,您需要一个 AWS Identity and Access Management 角色和策略来在 Amazon S3 中查找新的软件物料清单并在中更新软件包版本 AWS IoT Core。
首先,您需要将更新的软件物料清单放置在受版本控制的 Amazon S3 存储桶中,并在包含 sboms 参数的情况下调用 UpdatePackageVersion API 操作。接下来,您的授权委托人将担任您创建的 IAM 角色,在 Amazon S3 中找到更新的软件物料清单,然后在 Software Package Catalog 中 AWS IoT Core 更新软件包版本。
执行此更新需要以下策略:
策略
-
信任策略:该策略与代入 IAM 角色的授权主体建立信任关系,以便其可以从 Amazon S3 中受版本控制的存储桶找到更新的软件物料清单,并在 AWS IoT Core中更新软件包版本。
-
-
权限策略:通过该策略可以访问其中存储了软件包版本软件物料清单的 Amazon S3 受版本控制的存储桶,并在 AWS IoT Core中更新软件包版本。
-
-
传递角色权限:策略授予在您调用
UpdatePackageVersionAPI 操作 AWS IoT Core 时向 Amazon S3 传递 IAM 角色的权限。 -
注意
对于已转换为 Deleted 生命周期状态的软件包版本,您无法更新软件物料清单。
有关为 AWS 服务创建 IAM 角色的更多信息,请参阅创建向 AWS 服务委派权限的角色。
有关创建 Amazon S3 存储桶并向其上传对象的更多信息,请参阅创建存储桶和上传对象。