本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
授权核心设备与Amazon服务
Amazon IoT Greengrass核心设备使用Amazon IoT Core凭据提供程序授权调用Amazon服务。这些区域有:Amazon IoT Core凭据提供程序允许设备使用其 X.509 证书作为唯一设备标识来进行身份验证Amazon请求。这样,您就不必再存储Amazon访问密钥 ID 和私有访问密钥Amazon IoT Greengrass核心设备。有关更多信息,请参阅 。授权直接调用Amazon服务中的Amazon IoT Core开发人员指南.
当您运行Amazon IoT Greengrass核心软件,您可以选择预配置Amazon核心设备所需的资源。这包括Amazon Identity and Access Management(IAM) 角色,您的核心设备通过Amazon IoT Core凭证提供程序。使用--provision true
参数来配置允许核心设备获取临时Amazon凭证。此参数还配置了Amazon IoT指向此 IAM 角色的角色别名。您可以指定 IAM 角色的名称和Amazon IoT角色别名。如果您指定--provision
true
没有这些其他名称参数,Greengrass 核心设备将创建并使用以下默认资源:
-
IAM 角色:
GreengrassV2TokenExchangeRole
此角色具有名为为
GreengrassV2TokenExchangeRoleAccess
以及允许的信任关系credentials.iot.amazonaws.com
代入角色。该策略包括核心设备的最低权限。重要 此策略不包括访问 S3 存储桶中的文件。您必须向角色添加权限,以允许核心设备从 S3 存储桶检索组件对象。有关更多信息,请参阅允许访问 S3 存储桶。
-
Amazon IoT角色别名:
GreengrassV2TokenExchangeRoleAlias
此角色别名指 IAM 角色。
有关更多信息,请参阅安装 Amazon IoT Greengrass Core 软件。
您还可以为现有核心设备设置角色别名。为此,请配置iotRoleAlias
配置参数Greengrass 核组件.
您可以获得临时Amazon此 IAM 角色执行的凭证Amazon操作。有关更多信息,请参阅与交互Amazon服务。
核心设备的服务角色权限
该角色允许以下服务代入该角色:
-
credentials.iot.amazonaws.com
如果您将Amazon IoT Greengrass核心软件创建此角色,它使用以下权限策略允许核心设备连接并将日志发送到Amazon. 策略的名称默认为 IAM 角色的名称,结尾为Access
. 例如,如果您使用默认 IAM 角色名称,则此策略的名称为GreengrassV2TokenExchangeRoleAccess
.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:DescribeCertificate", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams", "iot:Connect", "iot:Publish", "iot:Subscribe", "iot:Receive", "s3:GetBucketLocation" ], "Resource": "*" } ] }
允许访问 S3 存储桶
默认核心设备角色不允许核心设备访问 S3 存储桶。要部署 S3 存储桶中包含工件的组件,您必须将s3:GetObject
权限,以允许核心设备下载组件工件。您可以向核心设备角色添加新策略以授予此权限。
添加允许访问 Amazon S3 中的组件工件的策略
-
创建名为的文件
component-artifact-policy.json
并将以下 JSON 复制到该文件中。此策略允许访问 S3 存储桶中的所有文件。Replace文档示例存储桶
替换为 S3 存储桶的名称以允许核心设备访问。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": "arn:aws:s3:::
DOC-EXAMPLE-BUCKET
/*" } ] } -
运行以下命令以从中的策略文档创建策略。
component-artifact-policy.json
.aws iam create-policy \ --policy-name
MyGreengrassV2ComponentArtifactPolicy
\ --policy-document file://component-artifact-policy.json从输出中的策略元数据复制策略 Amazon 资源名称 (ARN)。您可以在下一步中使用此 ARN 将此策略附加到核心设备角色。
-
运行以下命令以将策略附加到核心设备角色。Replace
绿草 V2 代码交换器
替换为您运行时指定的角色名称Amazon IoT GreengrassCore 软件。然后,将策略 ARN 替换为上一步中的 ARN。aws iam attach-role-policy \ --role-name
GreengrassV2TokenExchangeRole
\ --policy-arn arn:aws:iam::123456789012
:policy/MyGreengrassV2ComponentArtifactPolicy
如果命令没有输出,则成功,并且您的核心设备可以访问您上传到此 S3 存储桶的对象。