

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# IAM 使用者、群組和角色
<a name="iam-users-groups-roles"></a>

IAM 使用者、群組和角色為管理 AWS中身分及身分驗證的標準機制，您可以使用它們來使用 AWS SDK 和 連線到 AWS IoT HTTP 介面 AWS CLI。

IAM 角色也允許 代表您 AWS IoT 存取您帳戶中的其他 AWS 資源。例如，如果您想要讓裝置將其狀態發佈至 DynamoDB 資料表，IAM 角色 AWS IoT 允許 與 Amazon DynamoDB 互動。如需詳細資訊，請參閱 [IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html)。

對於透過 HTTP 的訊息代理程式連線， 會使用 Signature 第 4 版簽署程序來 AWS IoT 驗證使用者、群組和角色。如需詳細資訊，請參閱[簽署 AWS API 請求](https://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html)。

使用查詢參數搭配 [AWS Security Token Service (AWS STS) 提供的臨時安全登入](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html)資料來驗證請求時，計算簽章時請勿在正式查詢字串`X-Amz-Security-Token`中包含 。相反地，在計算簽章之後，附加 `X-Amz-Security-Token` 做為查詢參數。這與要求安全字符成為正式請求一部分的其他一些 AWS 服務不同。如需詳細資訊，請參閱[使用臨時安全登入資料簽署請求](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv-create-signed-request.html#temporary-security-credentials)。

**注意**  
 AWS IoT 裝置 SDKs 會自動處理此簽署行為。如果您要實作自訂簽署程式碼，請參閱 SDK 來源以取得參考：  
[AWS 適用於 Python v2 的 IoT 裝置 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`
[AWS 適用於 Java 的 IoT 裝置 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)`

搭配 AWS Signature 第 4 版使用 時 AWS IoT，用戶端必須在其 TLS 實作中支援下列項目：
+ TLS 1.2
+ SHA-256 RSA 憑證簽章驗證
+ TLS 密碼套件支援部分的一種密碼套件

如需相關資訊，請參閱 [的身分和存取管理 AWS IoT](security-iam.md)。