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

Amazon IoT Greengrass Version 1在 2023 年 6 月 30 日之前,不再接收功能更新,只会收到安全补丁和错误修复。有关更多信息,请参阅 。Amazon IoT Greengrass V1维护政策. 强烈建议您迁移到Amazon IoT Greengrass Version 2,它补充说重要新功能对其他平台的支持.

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

Greengrass 服务角色

Greengrass 服务角色是Amazon Identity and Access Management(IAM) 服务角色Amazon IoT Greengrass访问来自的资源Amazon代表您服务。这使得 Amazon IoT Greengrass 可以执行关键任务,如检索您的 Amazon Lambda 函数和管理 Amazon IoT 影子。

允许Amazon IoT Greengrass要访问您的资源,Greengrass 服务角色必须与您的Amazon Web Services 账户并指定Amazon IoT Greengrass作为可信任的实体。该角色必须包括 AWSGreengrassResourceAccessRolePolicy托管策略或自定义策略,该策略定义等效权限Amazon IoT Greengrass你使用的功能。本政策由以下人员维护Amazon并定义了一组权限Amazon IoT Greengrass用于访问你的Amazon资源的费用。

您可以在中重复使用同一 Greengrass 服务角色Amazon Web Services 区域s,但你必须将它与你的账户关联到每个Amazon Web Services 区域你在哪里使用Amazon IoT Greengrass. 如果当前Amazon Web Services 账户和区域。

以下部分介绍了如何在 Amazon Web Services Management Console 或 Amazon CLI 中创建和管理 Greengrass 服务角色。

注意

除了授权服务级别访问权限的服务角色外,您还可以分配组角色到一个Amazon IoT Greengrass组中)。组角色是一个单独的 IAM 角色,可控制 Greengrass Lambda 函数和组中的连接器访问Amazon服务。

管理 Greengrass 服务角色(控制台)

Amazon IoT 控制台可让您轻松管理 Greengrass 服务角色。例如,当您创建或部署 Greengrass 组时,控制台会检查Amazon Web Services 账户附加到 Greengrass 服务角色Amazon Web Services 区域控制台当前选定的操作。如果没有,则控制台可以为您创建和配置服务角色。有关更多信息,请参阅 创建 Greengrass 服务角色(控制台)

您可以使用Amazon IoT控制台中执行以下角色管理任务:

注意

登录到控制台的用户必须有权查看、创建或更改服务角色。

 

查找您的 Greengrass 服务角色(控制台)

使用以下步骤查找可执行以下操作的服务角色Amazon IoT Greengrass正在使用当前Amazon Web Services 区域.

  1. Amazon IoT控制台导航窗格中,选择设置.

  2. 滚动到 Greengrass 服务角色部分以查看您的服务角色及其策略。

    如果没有看到服务角色,可以让控制台为您创建或配置一个。有关更多信息,请参阅 创建 Greengrass 服务角色

 

创建 Greengrass 服务角色(控制台)

控制台可以为您创建和配置默认 Greengrass 服务角色。此角色具有以下属性:

属性
名称 Greengrass_ServiceRole
可信任的实体 AWS service: greengrass
策略 AWSGreengrassResourceAccessRolePolicy
注意

如果 Greengrass 设备安装程序创建服务角色,则角色名称为 GreengrassServiceRole_random-string

当你从中创建或部署 Greengrass 群组时Amazon IoT控制台会检查 Greengrass 服务角色是否与您的Amazon Web Services 账户中的Amazon Web Services 区域控制台当前选定的操作。如果未关联,控制台会提示您允许Amazon IoT Greengrass读写到Amazon代表您服务。

如果您授予权限,控制台会检查是否存在名为的角色Greengrass_ServiceRole存在于你的Amazon Web Services 账户.

  • 如果该角色存在,则控制台会将该服务角色附加到您的Amazon Web Services 账户在最新的Amazon Web Services 区域.

  • 如果该角色不存在,则控制台会创建默认 Greengrass 服务角色并将其附加到您的Amazon Web Services 账户在最新的Amazon Web Services 区域.

注意

如果要使用自定义角色策略创建服务角色,请使用 IAM 控制台创建或修改该角色。有关更多信息,请参阅 。创建向其委派权限的角色Amazon服务要么修改角色中的IAM 用户指南. 确保该角色针对您使用的功能和资源授予和 AWSGreengrassResourceAccessRolePolicy 托管策略同等的权限。我们还建议您将aws:SourceArnaws:SourceAccount信任策略中的全局条件上下文密钥,以帮助防止混淆代理人的安全问题。条件上下文键将访问权限限制为仅允许来自指定账户和 Greengrass 工作区的那些请求。有关混淆代理人问题的更多信息,请参阅防止跨服务混淆代理.

如果创建了服务角色,请返回到Amazon IoT控制台并将该角色附加到组。您可以在下执行此操作Greengrass 服务角色在群组的设置页.

 

更改 Greengrass 服务角色(控制台)

使用以下过程选择其他 Greengrass 服务角色以附加到您的Amazon Web Services 账户中的Amazon Web Services 区域控制台中选定的操作。

  1. Amazon IoT控制台导航窗格中,选择设置.

  2. UNDERGreengrass 服务角色,选择变更角色.

    这些区域有:更新 Greengrass 服务角色对话框将打开,并显示您的Amazon Web Services 账户那定义Amazon IoT Greengrass作为可信任的实体。

  3. 选择要附加的 Greengrass 服务角色。

  4. 选择附加角色.

注意

要允许控制台为您创建默认 Greengrass 服务角色,请选择 Create role for me (为我创建角色),而不是从列表中选择一个角色。这些区域有:为我创建角色如果角色名为则不显示链接Greengrass_ServiceRole在您的中Amazon Web Services 账户.

 

移除 Greengrass 服务角色(控制台)

使用以下过程将 Greengrass 服务角色与您的Amazon Web Services 账户中的Amazon Web Services 区域控制台中选定的操作。这会撤消对的权限Amazon IoT Greengrass访问Amazon当前的服务Amazon Web Services 区域.

重要

移除服务角色可能会中断有效操作。

  1. Amazon IoT控制台导航窗格中,选择设置.

  2. UNDERGreengrass 服务角色,选择分离角色.

  3. 在确认对话框中,选择 Detach (分离)

注意

如果您不再需要该角色,您可以在 IAM 控制台中将其删除。有关更多信息,请参阅 IAM 用户指南中的删除角色或实例配置文件

其他角色可能允许 Amazon IoT Greengrass 访问您的资源。要查找所有允许的角色Amazon IoT Greengrass在 IAM 控制台中代表您获取权限角色页面上,查找包含以下内容的角色Amazon服务:Greengrass中的可信任的实体column.

管理 Greengrass 服务角色 (CLI)

在以下过程中,我们假定Amazon CLI已安装并配置为使用您的Amazon Web Services 账户ID。有关更多信息,请参阅 。安装Amazon命令行界面配置Amazon CLI中的Amazon Command Line Interface用户指南.

您可以使用 Amazon CLI 执行以下角色管理任务:

 

获取 Greengrass 服务角色 (CLI)

使用以下过程了解 Greengrass 服务角色是否与您的Amazon Web Services 账户在一个Amazon Web Services 区域.

  • 获取服务角色。Replace领域与您的Amazon Web Services 区域(例如,us-west-2)。

    aws Greengrass get-service-role-for-account --region region

    如果 Greengrass 服务角色已与您的账户关联,则将返回以下角色元数据。

    { "AssociatedAt": "timestamp", "RoleArn": "arn:aws:iam::account-id:role/path/role-name" }

    如果未返回任何角色元数据,则您必须创建服务角色(如果该角色不存在)并将其与您在Amazon Web Services 区域.

 

创建 Greengrass 服务角色 (CLI)

使用以下步骤可创建角色并将其与您的Amazon Web Services 账户.

使用 IAM 创建服务角色

  1. 使用允许 Amazon IoT Greengrass 代入该角色的信任策略创建该角色。此示例将创建一个名为 Greengrass_ServiceRole 的角色,但您也可以使用其他名称。我们还建议您将aws:SourceArnaws:SourceAccount信任策略中的全局条件上下文密钥,以帮助防止混淆代理人的安全问题。条件上下文键将访问权限限制为仅允许来自指定账户和 Greengrass 工作区的那些请求。有关混淆代理人问题的更多信息,请参阅防止跨服务混淆代理.

    Linux, macOS, or Unix
    aws iam create-role --role-name Greengrass_ServiceRole --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "greengrass.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "account-id" }, "ArnLike": { "aws:SourceArn": "arn:aws:greengrass:region:account-id:*" } } } ] }'
    Windows command prompt
    aws iam create-role --role-name Greengrass_ServiceRole --assume-role-policy-document "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"Service\":\"greengrass.amazonaws.com\"},\"Action\":\"sts:AssumeRole\",\"Condition\":{\"ArnLike\":{\"aws:SourceArn\":\"arn:aws:greengrass:region:account-id:*\"},\"StringEquals\":{\"aws:SourceAccount\":\"account-id\"}}}]}"
  2. 从输出中的角色元数据复制角色 ARN。使用该 ARN 将角色与您的账户关联。

  3. AWSGreengrassResourceAccessRolePolicy 策略附加到该角色。

    aws iam attach-role-policy --role-name Greengrass_ServiceRole --policy-arn arn:aws:iam::aws:policy/service-role/AWSGreengrassResourceAccessRolePolicy

将服务角色与您关联Amazon Web Services 账户

  • 将角色与您的账户关联。Replacerole-arn服务角色 ARN 和领域与您的Amazon Web Services 区域(例如,us-west-2)。

    aws greengrass associate-service-role-to-account --role-arn role-arn --region region

    如果成功,将返回以下响应。

    { "AssociatedAt": "timestamp" }

 

删除 Greengrass 服务角色 (CLI)

使用以下步骤解除 Greengrass 服务角色与您的Amazon Web Services 账户.

  • 取消服务角色与您的账户的关联。Replace领域与您的Amazon Web Services 区域(例如,us-west-2)。

    aws greengrass disassociate-service-role-from-account --region region

    如果成功,将返回以下响应。

    { "DisassociatedAt": "timestamp" }
    注意

    如果您未在其中使用该服务角色,则应将其删除Amazon Web Services 区域. 先使用 delete-role-policy 从角色中移除 AWSGreengrassResourceAccessRolePolicy 托管策略,然后使用 delete-role 删除角色。有关更多信息,请参阅 IAM 用户指南中的删除角色或实例配置文件

另请参阅