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资源的费用。有关更多信息,请参阅 Amazon托管策略:AWSGreengrassResourceAccessRolePolicy

您可以跨越重复使用相同的 Greengrass 服务角色Amazon Web Services 区域,但是你必须将其与你的账户关联起来Amazon Web Services 区域你在哪里使用Amazon IoT Greengrass. 如果当前没有配置服务角色Amazon Web Services 区域,核心设备无法验证客户端设备并且无法更新连接信息。

以下部分介绍了 Greengrass 何使用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 服务角色(控制台)

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

注意

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

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

使用以下步骤查找以下步骤查找以下服务角色Amazon IoT Greengrass在当前使用Amazon Web Services 区域.

  1. 导航到 Amazon IoT 控制台

  2. 在导航窗格中,选择 Settings (设置)

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

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

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

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

属性
名称 Greengrass_ServiceRole
可信任的实体 Amazon service: greengrass
策略 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 托管策略同等的权限。建议您还要包括aws:SourceArnaws:SourceAccount信任策略中的全局条件上下文键,以帮助防止混淆代理人安全问题。条件上下文键将访问限制为仅允许来自指定帐户和 Greengrass 工作区的那些请求。有关混淆代理人问题的更多信息,请参阅防止跨服务混淆代理.

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

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

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

  1. 导航到 Amazon IoT 控制台

  2. 在导航窗格中,选择 Settings (设置)

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

    这些区域有:更新 Greengrass 服务角色对话框打开并在您的中显示 IAM 角色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 执行以下角色管理任务:

获取 Greengrass 服务角色 (CLI)

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

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

    aws greengrassv2 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 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": { "ArnLike": { "aws:SourceArn": "arn:aws:greengrass:region:account-id:*" }, "StringEquals": { "aws:SourceAccount": "account-id" } } } ] }'
    Windows Command Prompt (CMD)
    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\"}}}]}"
    PowerShell
    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 账户

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

    aws greengrassv2 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 greengrassv2 disassociate-service-role-from-account --region region

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

    { "disassociatedAt": "timestamp" }
    注意

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

另请参阅