排查 Amazon IoT Greengrass 的身份和访问权限问题 - Amazon IoT Greengrass
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

Amazon IoT Greengrass Version 12023 年 6 月 30 日进入延长寿命阶段。有关更多信息,请参阅Amazon IoT Greengrass V1维护政策。在此日期之后,Amazon IoT Greengrass V1不会发布提供功能、增强功能、错误修复或安全补丁的更新。在上运行的设备Amazon IoT Greengrass V1不会受到干扰,将继续运行并连接到云端。我们强烈建议你迁移到Amazon IoT Greengrass Version 2,它补充说重要的新功能支持其他平台

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

排查 Amazon IoT Greengrass 的身份和访问权限问题

使用以下信息可帮助您诊断和修复在使用 Amazon IoT Greengrass 和 IAM 时可能遇到的常见问题。

有关一般故障排除帮助,请参见排除 Amazon IoT Greengrass 的故障.

我无权在 Amazon IoT Greengrass 中执行操作

如果您收到错误消息,提示您无权执行操作,必须联系您的管理员寻求帮助。您的管理员是指为您提供用户名和密码的那个人。

以下示例错误发生在mateojacksonIAM 用户尝试查看有关核心定义版本的详细信息,但没有greengrass:GetCoreDefinitionVersion权限。

User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: greengrass:GetCoreDefinitionVersion on resource: resource: arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/cores/78cd17f3-bc68-ee18-47bd-5bda5EXAMPLE/versions/368e9ffa-4939-6c75-859c-0bd4cEXAMPLE

在这种情况下,Mateo 请求他的管理员更新其策略,以允许他使用 greengrass:GetCoreDefinitionVersion 操作访问 arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/cores/78cd17f3-bc68-ee18-47bd-5bda5EXAMPLE/versions/368e9ffa-4939-6c75-859c-0bd4cEXAMPLE 资源。

错误消息: Greengrass 无权担任与此账户关联的服务角色,或者出现以下错误:失败:TES 服务角色与此账户无关。

解决方案:部署失败时您可能会看到此错误消息。检查 Greengrass 服务角色是否与您的服务角色关联Amazon Web Services 账户在最新的Amazon Web Services 区域. 有关更多信息,请参阅 管理 Greengrass 服务角色 (CLI)管理 Greengrass 服务角色(控制台)

错误消息: 尝试使用角色 arn: aws: iam::: role/ <account-id><role-name>访问 s3 url 时权限被拒绝 https: //-greengrass-updates.s3 <region>。 <region>.amazonaws.com/core/ <architecture>/greengrass-<distribution-version>core-.tar.gz。

解决方案:您可能会在以下情况下看到此错误消息 over-the-air (OTA) 更新失败。在签名者角色策略中,添加目标Amazon Web Services 区域作为Resource. 此签署人角色用于为 Amazon IoT Greengrass 软件更新的 S3 URL 进行预签名。有关更多信息,请参阅 S3 URL 签署人角色

设备影子未与云同步。

解决方案:确保已存在Amazon IoT Greengrass具有以下权限iot:UpdateThingShadowiot:GetThingShadow中的操作Greengrass 服务角色. 如果服务角色使用 AWSGreengrassResourceAccessRolePolicy 托管策略,则在默认情况下包含这些权限。

请参阅 影子同步超时问题排查

以下是在使用时可能遇到的一般 IAM 问题Amazon IoT Greengrass.

未授权我执行 iam:PassRole

如果您收到一个错误,表明您无权执行 iam:PassRole 操作,则必须更新策略以允许您将角色传递给 Amazon IoT Greengrass。

有些 Amazon Web Services允许您将现有角色传递到该服务,而不是创建新服务角色或服务相关角色。为此,您必须具有将角色传递到服务的权限。

当名为 marymajor 的 IAM 用户尝试使用控制台在 Amazon IoT Greengrass 中执行操作时,会发生以下示例错误。但是,服务必须具有服务角色所授予的权限才可执行此操作。Mary 不具有将角色传递到服务的权限。

User: arn:aws:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole

在这种情况下,必须更新 Mary 的策略以允许她执行 iam:PassRole 操作。

如果您需要帮助,请联系您的 Amazon 管理员。管理员是向您提供登录凭证的人。

我是管理员并希望允许其他人访问 Amazon IoT Greengrass

要允许其他人访问 Amazon IoT Greengrass,您必须为需要访问权限的人员或应用程序创建一个 IAM 实体(用户或角色)。它们将使用该实体的凭证访问 Amazon。然后,您必须将策略附加到实体,以便在 Amazon IoT Greengrass 中向其授予正确的权限。

要立即开始使用,请参阅 IAM 用户指南中的创建您的第一个 IAM 委派用户和组

我希望允许我的 Amazon Web Services 账户以外的人访问我的 Amazon IoT Greengrass 资源

您可以创建一个 IAM 角色,以便其他账户中的用户或您组织外的人员可以使用该角色来访问您的Amazon资源。您可以指定谁值得信赖,可以带入角色。有关更多信息,请参阅 。在另一个中向 IAM 用户提供访问权限Amazon Web Services 账户您拥有的向第三方拥有的 Amazon Web Services Servicy 账户提供访问权限IAM 用户指南.

Amazon IoT Greengrass 不支持根据基于资源的策略或访问控制列表 (ACL) 跨账户访问。