

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

# IAM 用户、组和角色
<a name="iam-users-groups-roles"></a>

IAM 用户、组和角色是用于在 Amazon中管理身份和身份验证的标准机制。您可以使用 Amazon SDK 和，使用它们连接到 Amazon IoT HTTP 接口 Amazon CLI。

IAM 角色还 Amazon IoT 允许代表您访问您账户中的其他 Amazon 资源。例如，如果您想让设备将其状态发布到 DynamoDB 表，则 IAM 角色 Amazon IoT 允许与亚马逊 DynamoDB 进行交互。有关更多信息，请参阅 [IAM 角色](https://docs.amazonaws.cn/IAM/latest/UserGuide/id_roles_use.html)。

对于通过 HTTP 的消息代理连接，使用签名版本 4 签名过程对用户、群组和角色 Amazon IoT 进行身份验证。有关信息，请参阅[签署 Amazon API 请求](https://docs.amazonaws.cn/general/latest/gr/signing_aws_api_requests.html)。

使用带有安全[令牌服务 (Amazon STS) 提供的 Amazon 临时安全证书](https://docs.amazonaws.cn/IAM/latest/UserGuide/id_credentials_temp.html)的查询参数对请求进行身份验证时，在计算签名时，请勿`X-Amz-Security-Token`在规范查询字符串中包含这些内容。取而代之的是，在计算签名之后`X-Amz-Security-Token`作为查询参数追加。这与其他一些要求将安全令牌作为规范请求一部分的 Amazon 服务不同。有关更多信息，请参阅[使用临时安全证书签署请求](https://docs.amazonaws.cn/IAM/latest/UserGuide/reference_sigv-create-signed-request.html#temporary-security-credentials)。

**注意**  
 Amazon 物联网设备会自动 SDKs 处理此签名行为。如果您正在实现自定义签名代码，请参阅 SDK 源代码以供参考：  
Amazon 适用于 [Python v2 的物联网设备 SDK](https://github.com/aws/aws-iot-device-sdk-python-v2/blob/main/awsiot/mqtt_connection_builder.py) — 参见`websockets_with_default_aws_signing()`，哪个设置了 `omit_session_token=True`
Amazon 适用于 [Java 的物联网设备 SDK v2](https://github.com/aws/aws-iot-device-sdk-java-v2/blob/main/sdk/src/main/java/software/amazon/awssdk/iot/AwsIotMqttConnectionBuilder.java) — 参见 `setOmitSessionToken(true)`

在使用 Amazon 签名版本 4 时 Amazon IoT，客户端必须在 TLS 实现中支持以下内容：
+ TLS 1.2
+ SHA-256 RSA 证书签名验证
+ 来自 TLS 密码套件支持部分的密码套件之一

有关信息，请参阅 [的身份和访问管理 Amazon IoT](security-iam.md)。