View a markdown version of this page

一般/自訂授權要求 - 的受管整合 AWS IoT Device Management

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

一般/自訂授權要求

一般授權可讓您存取裝置,讓您使用登入資料控制多個裝置,而不需要個別使用者登入資料。與提供使用者層級授權的 OAuth 2.0 不同,一般授權會使用儲存在 中的預先共用金鑰、字符或其他授權機制 AWS Secrets Manager。

透過一般授權,您的 C2C 連接器可以支援 OAuth 2.0 以外的授權機制,包括 API 金鑰、承載字符和第三方平台提供的自訂授權機制。此方法特別適用於在計劃或組織層級管理裝置,而不是由個別最終使用者管理的情況。

C2C 連接器如何使用秘密進行一般授權

AWS Secrets Manager 是一種秘密儲存服務,可保護敏感登入資料,例如 API 金鑰和字符。秘密會使用 AWS Key Management Service 金鑰加密。如需詳細資訊,請參閱「AWS Secrets Manager 使用者指南」。

對於一般授權,您可以將授權憑證存放在 Secrets Manager 中,並授予 C2C 連接器存取這些秘密的許可。當受管整合調用您的連接器時,它會提供 Secrets Manager ARN 和版本 ID。連接器會擷取秘密值,並使用它來驗證第三方平台。

此方法可確保受管整合永遠不會直接處理您的長期憑證。您的連接器可完全控制登入資料管理和字符產生,使解決方案可擴展到第三方平台支援的任何授權機制。

重要

建議您不要在任何日誌中記錄敏感的登入資料或字符。不過,如果它們存放在日誌中,我們建議您使用 CloudWatch Logs 資料保護政策來遮罩日誌中的字符。如需詳細資訊,請參閱使用遮罩功能協助保護敏感日誌資料。

如何建立一般授權的秘密

若要建立一般授權的秘密,請遵循 AWS Secrets Manager 《 使用者指南》中的建立 AWS Secrets Manager 秘密中的步驟。

您必須使用客戶受管 AWS KMS 金鑰建立秘密,C2C 連接器才能讀取秘密值。如需詳細資訊,請參閱 AWS Secrets Manager 《 使用者指南》中的AWS KMS 金鑰許可。

使用 JSON 結構將您的授權憑證存放在秘密中。確切的格式取決於第三方平台的授權需求。常見的範例包括:

  • API 金鑰: {"apiKey": "your-api-key-value"}

  • 承載字符: {"token": "your-bearer-token"}

  • 使用者名稱和密碼: {"username": "your-username", "password": "your-password"}

  • Machine-to-machine的 OAuth 登入資料: {"client_id": "your-client-id", "client_secret": "your-client-secret", "audience": "your-audience"}

您還必須設定下一節所述的 IAM 政策,授予 C2C 連接器擷取秘密的存取權。

授予 C2C 連接器擷取秘密的存取權

若要允許受管整合從 Secrets Manager 擷取秘密值,請在建立秘密時,在秘密的資源政策中包含下列許可:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "c2c-connector-account-id" }, "Action": "secretsmanager:GetSecretValue", "Resource": "*", "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:iotmanagedintegrations:region:account-id:account-association/account-association-id" } } } ] }

此政策會授予受管整合許可,以代表 C2C 連接器擷取秘密值。條件金鑰可確保只有來自您特定帳戶關聯的請求才能存取秘密,以協助防止混淆代理人問題。