AWS IoT Greengrass 的安全最佳實務 - AWS IoT Greengrass

AWS IoT Greengrass Version 1 於 2023 年 6 月 30 日進入延長使用壽命階段。如需詳細資訊,請參閱AWS IoT Greengrass V1 維護政策。在此日期之後, AWS IoT Greengrass V1 將不會發行提供功能、增強功能、錯誤修正或安全性修補程式的更新。在上運行的設備 AWS IoT Greengrass V1 不會中斷,並將繼續運行並連接到雲。我們強烈建議您移轉至 AWS IoT Greengrass Version 2,這會增加重要的新功能,並支援其他平台

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

AWS IoT Greengrass 的安全最佳實務

本主題包含 AWS IoT Greengrass 的安全最佳實務。

盡可能授予最低的許可

在 IAM 角色中使用最低一組許可,遵循最低權限原則。限制 IAM 政策中ActionResource屬性的*萬用字元使用。相反地,在可能的情況下,宣告一組有限的動作和資源。如需最低權限和其他原則最佳實務的詳細資訊,請參閱 政策最佳實務

最低權限最佳做法也適用於您附加到 Greengrass 核心和用戶端裝置的AWS IoT原則。

不要在 Lambda 函數中對憑證進行硬編碼

請勿在使用者定義的 Lambda 函數中硬式編碼認證。為了更妥善地保護您的登入資料:

  • 若要與 AWS 服務互動,請在 Greengrass 群組角色中定義特定動作和資源的許可。

  • 使用本機秘密來儲存您的登入資料。或者,如果函數使用 AWS SDK,請使用預設認證提供者鏈結中的認證。

請勿記錄敏感資訊

您應該防止記錄登入資料和其他個人識別資訊 (PII)。我們建議您實施以下保護措施,即使存取核心裝置上的本機記錄需要 root 權限,而且存取 CloudWatch 記錄需要 IAM 許可。

  • 請勿在 MQTT 主題路徑中使用敏感資訊。

  • 請勿在 AWS IoT Core 登錄中的裝置 (物件) 名稱、類型和屬性中使用敏感資訊。

  • 請勿在使用者定義的 Lambda 函數中記錄敏感資訊。

  • 請勿在 Greengrass 資源的名稱和 ID 中使用敏感資訊:

    • 連接器

    • 核心

    • 裝置

    • 函數

    • 群組

    • Loggers

    • 資源 (本機、機器學習和秘密)

    • 訂閱

建立目標訂閱

訂閱透過定義服務、裝置和 Lambda 函數之間交換訊息的方式,來控制 Greengrass 群組中的資訊流程。若要確保應用程式只能執行其預期執行的動作,您的訂閱應允許發行者只將訊息傳送至特定主題,並限制訂閱者只接收來自其職能所需的主題的訊息。

讓裝置的時鐘保持同步

在裝置上保持準確的時間是很重要的。X.509 憑證具到期日期和時間。裝置上的時鐘用來驗證伺服器憑證是否仍然有效。裝置時鐘可能會隨著時間而偏移,或是電池可能會放電。

如需詳細資訊,請參閱AWS IoT Core開發人員指南中的保持裝置時鐘同步最佳做法。

使用 Greengrass 核心管理裝置身分驗證

用戶端裝置可以執行 FreeRTOS 或使用AWS IoT裝置 SDKAWS IoT Greengrass探索 API 來取得探索資訊,用於與相同 Greengrass 群組中的核心連線和驗證。探索資訊包括:

  • Greengrass 核心與用戶端裝置位於相同 Greengrass 群組中的連線資訊。此資訊包括核心裝置每個端點的主機地址和連接埠號碼。

  • 用來簽署本機 MQTT 伺服器憑證的群組憑證授權機構憑證。用戶端裝置使用群組 CA 憑證來驗證核心提供的 MQTT 伺服器憑證。

以下是用戶端裝置管理與 Greengrass 核心的相互驗證的最佳做法。如果您的核心裝置遭到入侵,這些做法有助於降低風險。

驗證每個連線的本機 MQTT 伺服器憑證。

用戶端裝置每次與核心建立連線時,都應驗證核心提供的 MQTT 伺服器憑證。此驗證是核心裝置與用戶端裝置之間相互驗證的用戶端裝置端。用戶端裝置必須能夠偵測到失敗並終止連線。

請勿硬式編碼探索資訊。

即使核心使用靜態 IP 位址,用戶端裝置也應該依賴探索作業來取得核心連線資訊和群組 CA 憑證。用戶端裝置不應對此探查資訊進行硬式編碼。

定期更新探索資訊。

用戶端裝置應定期執行探索,以更新核心連線資訊和群組 CA 憑證。建議用戶端裝置在與核心建立連線之前,先更新此資訊。由於探索作業之間的持續時間較短可能會減少潛在的暴露時間,因此我們建議用戶端裝置定期中斷連線並重新連線以觸發更新。

如果您失去對 Greengrass 核心裝置的控制權,而且想要防止用戶端裝置將資料傳輸到核心,請執行下列動作:

  1. 從 Greengrass 群組中移除 Greengrass 核心。

  2. 輪換群組憑證授權機構憑證。在AWS IoT主控台中,您可以在群組的 [設定] 頁面上輪替 CA 憑證。在 AWS IoT Greengrass API 中,您可以使用CreateGroupCertificateAuthority動作。

    如果核心裝置的硬碟容易遭竊,我們也建議您使用全磁碟加密。

如需詳細資訊,請參閱 AWS IoT Greengrass 的裝置身分驗證和授權

另請參閱