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

Authorization

授权是向经过身份验证的身份授予权限的过程。您可以使用 Amazon IoT Core 和 IAM 策略授予 Amazon IoT Core 中的权限。本主题介绍了 Amazon IoT Core 策略。有关 IAM 策略的更多信息,请参阅 适用于 Amazon IoT 的 Identity and Access ManagementIAM 策略

Amazon IoT Core 策略确定经过身份验证的身份可执行的操作。经身份验证的身份由设备、移动应用程序、Web 应用程序和桌面应用程序使用。经过身份验证的身份甚至可以是键入 Amazon IoT Core CLI 命令的用户。仅当身份具有向其授予这些操作的权限的策略时,才能执行 Amazon IoT Core 操作。

Amazon IoT Core 策略和 IAM 策略都可用于 Amazon IoT Core 来控制身份(也称作委托人)可以执行的操作。您使用的策略类型取决于向 Amazon IoT Core 进行身份验证时使用的身份类型。

Amazon IoT Core 操作分为两组:

  • 控制层面 API 允许您执行诸如创建或更新证书、事物、规则等管理任务。

  • 数据层面 API 允许您向 Amazon IoT Core 发送数据以及从中接收数据。

您使用的策略类型取决于您使用的是控制层面 API 还是数据层面 API。

下表显示了身份类型、它们使用的协议和可用于授权的策略类型。

Amazon IoT Core 数据层面 API 和策略类型
协议和身份验证机制 SDK 身份类型 策略类型
基于 TLS/TCP、TLS 双向身份验证的 MQTT(端口 8883 或 443)) Amazon IoT Device SDK X.509 证书 Amazon IoT Core 策略
基于 HTTPS/WebSocket、Amazon Sigv4 身份验证的 MQTT(端口 443) Amazon Mobile SDK 经过身份验证的 Amazon Cognito 身份 IAM 和 Amazon IoT Core 策略
未经身份验证的 Amazon Cognito 身份 IAM 策略
IAM 或联合身份 IAM 策略
HTTPS、Amazon Signature Version 4 身份验证(端口 443) Amazon CLI Amazon Cognito、IAM 或联合身份 IAM 策略
HTTPS、TLS 双向身份验证(端口 8443) 不支持 SDK X.509 证书 Amazon IoT Core 策略
基于自定义身份验证的 HTTPS(端口 443) Amazon IoT Device SDK 自定义授权方 自定义授权方策略
Amazon IoT Core 控制层面 API 和策略类型
协议和身份验证机制 SDK 身份类型 策略类型
HTTPS Amazon Signature Version 4 身份验证(端口 443) Amazon CLI Amazon Cognito 身份 IAM 策略
IAM 或联合身份 IAM 策略

Amazon IoT Core 策略附加到 X.509 证书或 Amazon Cognito 身份。IAM 策略附加到 IAM 用户、组或角色。如果您使用 Amazon IoT 控制台或 Amazon IoT Core CLI 附加策略(到证书或 Amazon Cognito Identity),则需要使用 Amazon IoT Core 策略。否则,您应使用 IAM 策略。

基于策略的授权功能强大。它使您能够完全控制设备、用户或应用程序可在 Amazon IoT Core 中执行的操作。例如,以使用证书连接到 Amazon IoT Core 的设备为例。您可以允许设备访问所有 MQTT 主题,也可以限制它的访问权限,只允许它访问一个主题。再举一例,假设用户在命令行中键入 CLI 命令。通过使用策略,您可以允许或拒绝用户访问任何命令或 Amazon IoT Core 资源。此外,您还可以控制应用程序对 Amazon IoT Core 资源的访问。

对策略所做的更改可能需要几分钟才能生效,具体取决于 Amazon IoT 缓存策略文档的方式。也就是说,访问最近被授予访问权限的资源可能需要几分钟时间,并且资源可能在撤销访问权限后几分钟内仍可访问。