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

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

Greengrass 服务角色

Greengrass 服务角色是Amazon Identity and Access Management(IAM) 服务角色,授权Amazon IoT Greengrass访问资源Amazon服务代表您。这个角色使得Amazon IoT Greengrass验证客户端设备的身份。

注意

Amazon IoT Greengrass V1也使用此角色执行基本任务。有关更多信息,请参阅 。Greengrass 服务角色中的Amazon IoT Greengrass V1开发人员指南

允许Amazon IoT Greengrass要访问您的资源,Greengrass 服务角色必须与您的 Amazon Web Services 账户 并指定Amazon IoT Greengrass将定义为可信任的实体。该角色必须包括AWSGreengrassResourceAccessRolePolicy托管策略或自定义策略,该策略定义Amazon IoT Greengrass您使用的功能。Amazon维护此策略,该策略定义Amazon IoT Greengrass用于访问Amazon资源的费用。

您 Greengrass 在 Amazon Web Services 区域 ,但您必须将其与您的帐户关联在每个 Amazon Web Services 区域 您使用的位置Amazon IoT Greengrass。核心设备无法验证使用本地发现的客户端设备,如果服务角色未在当前 Amazon Web Services 区域 。

以下部分介绍了如何使用Amazon Web Services Management Console或者Amazon CLI。

注意

除了授权服务级别访问权限的服务角色之外,您还可以为令牌交换角色到 Greengrass 的核心设备。令牌交换角色是一个独立的 IAM 角色,用于控制核心设备上的 Greengrass 组件和 Lambda 功能如何访问Amazon服务。有关更多信息,请参阅 授权核心设备与Amazon服务

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

Amazon IoT 控制台可让您轻松管理 Greengrass 服务角色。例如,当您为核心设备配置客户端设备发现时,控制台会检查 Amazon Web Services 账户 附 Greengrass 当前 Amazon Web Services 区域 。如果没有,则控制台可以为您创建和配置服务角色。有关更多信息,请参阅 创建 Greengrass 服务角色(控制台)

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

注意

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

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

使用以下步骤可查找Amazon IoT Greengrass在当前 Amazon Web Services 区域 。

  1. 导航到 Amazon IoT 控制台

  2. 在导航窗格中,选择 Settings

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

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

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

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

属性
名称 Greengrass_ServiceRole
可信任的实体 Amazon service: greengrass
Policy AWSGreengrassResourceAccessRolePolicy
注意

如果您使用Amazon IoT Greengrass V1设备设置脚本,则角色名称为GreengrassServiceRole_random-string

在为核心设备配置客户端设备发现时,控制台会检查 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 托管策略同等的权限。

如果创建了服务角色,请返回到Amazon IoT控制台,然后将该角色附加到 Amazon Web Services 账户 。您可以在下面执行此操作:Greengrass 服务角色上的设置页.

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

使用以下过程选择不同的 Greengrass 服务角色以附加到 Amazon Web Services 账户 中的 Amazon Web Services 区域 当前在控制台中选定的。

  1. 导航到 Amazon IoT 控制台

  2. 在导航窗格中,选择 Settings

  3. UDERGreengrass 服务角色中,选择更改角色

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

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

  5. 选择附加角色

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

使用以下过程可将 Greengrass 服务角色与Amazon帐户在当前 Amazon Web Services 区域 。此操作将撤消Amazon IoT Greengrass访问Amazon服务 Amazon Web Services 区域 。

重要

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

  1. 导航到 Amazon IoT 控制台

  2. 在导航窗格中,选择 Settings

  3. UDERGreengrass 服务角色中,选择分离角色

  4. 在确认对话框中,选择Detach

注意

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

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

管理 Greengrass 服务角色 (CLI)

在以下过程中,我们假定Amazon Command Line Interface已安装并配置为使用 Amazon Web Services 账户 。有关更多信息,请参阅 。安装、更新和卸载Amazon CLI配置Amazon CLI中的Amazon Command Line Interface用户指南

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

注意

Amazon IoT Greengrass V2使用Amazon IoT Greengrass V1API 操作来管理 Greengrass 服务角色。

获取 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 的角色,但您也可以使用其他名称。

    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" } ] }'
    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\"}]}"
  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 账户

  • 将角色与您的账户关联。Replace角色 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 用户指南

另请参阅