設定適用於邊緣裝置的 AWS Systems Manager - AWS Systems Manager

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

設定適用於邊緣裝置的 AWS Systems Manager

本節說明設定任務,帳戶和系統管理員會執行該任務來啟用 AWS IoT Greengrass 核心裝置的組態和管理。在您完成這些任務後,由 AWS 帳戶 管理員授予許可的使用者可以使用 AWS Systems Manager 設定及管理其組織的 AWS IoT Greengrass 核心裝置。

注意
  • macOS 和 Windows 10 不支援適用於 AWS IoT Greengrass 的 SSM Agent。您無法使用 Systems Manager 功能來管理和設定使用這些作業系統的邊緣裝置。

  • Systems Manager 也支援未設定為 AWS IoT Greengrass 核心裝置的邊緣裝置。若要使用 Systems Manager 來管理 AWS IoT 核心裝置和非 AWS 邊緣裝置,您必須使用混合啟用進行設定。如需更多詳細資訊,請參閱 針對混合多雲端環境設定 Systems Manager

  • 使用 Session Manager 和 Microsoft 應用程式修補您的邊緣裝置,您必須啟用進階執行個體層。如需更多詳細資訊,請參閱 開啟 advanced-instances 方案

開始之前

確認邊緣裝置符合下列需求。

  • 您的邊緣裝置必須符合需求,才能設定為 AWS IoT Greengrass 核心裝置。如需詳細資訊,請參閱《AWS IoT Greengrass Version 2 開發人員指南》中的設定 AWS IoT Greengrass 核心裝置

  • 邊緣裝置必須與 AWS Systems Manager Agent (SSM Agent) 相容。如需更多詳細資訊,請參閱 Systems Manager 支援的作業系統

  • 邊緣裝置必須能與雲端的 Systems Manager 服務進行通訊。Systems Manager 不支援中斷連線的邊緣裝置。

關於設定邊緣裝置

設定適用於 Systems Manager 的 AWS IoT Greengrass 裝置涉及下列程序。

注意

如需有關從邊緣裝置解除 SSM Agent 的資訊,請參閱 AWS IoT Greengrass Version 2 開發人員指南中的解除安裝 AWS Systems Manager 代理程式

步驟 1:為邊緣裝置建立 IAM 服務角色

AWS IoT Greengrass 核心裝置需要 AWS Identity and Access Management (IAM) 服務角色,以與 AWS Systems Manager 通訊。該角色將 AWS Security Token Service(AWS STS) AssumeRole 信任授予給 Systems Manager 服務。您只需要為每個 AWS 帳戶 建立一次服務角色。設定並將 SSM Agent 元件部署至您的 AWS IoT Greengrass 裝置時,您會為 RegistrationRole 參數指定該角色。如果您在針對混合多雲端環境設定非 EC2 節點時已建立此角色,則可以略過此步驟。

注意

必須在 IAM 中為將在邊緣裝置上使用 Systems Manager 的公司或組織使用者授予呼叫 Systems Manager API 的許可。

S3 儲存貯體政策要求

在下列任一案例中,您必須先為 Amazon Simple Storage Service (Amazon S3) 儲存貯體建立自訂 IAM 許可政策,才能完成此程序:

  • 案例 1:您使用 VPC 端點將 VPC 私下連線到支援的 AWS 服務 服務和採用 AWS PrivateLink 技術的 VPC 端點。

  • 案例 2:您計劃在 Systems Manager 操作過程中使用您建立的 S3 儲存貯體,例如將 Run Command 命令或 Session Manager 工作階段的輸出儲存到 S3 儲存貯體。在繼續進行之前,請先遵循為執行個體設定檔建立一個自訂 S3 儲存貯體政策中的步驟。該主題中的 S3 儲存貯體政策相關資訊也適用於您的服務角色。

    注意

    如果您的裝置受到防火牆保護,且您計劃使用 Patch Manager,則防火牆必須允許存取修補基準端點 arn:aws:s3:::patch-baseline-snapshot-region/*

    region 代表 AWS Systems Manager 支援之 AWS 區域 的識別符,例如 us-east-2 代表美國東部 (俄亥俄) 區域。如需支援的 region 值的清單,請參閱《Amazon Web Services 一般參考》Systems Manager 服務端點一節的區域資料欄。

AWS CLI
若要建立適用於 AWS IoT Greengrass 環境的 IAM 服務角色 (AWS CLI)
  1. 如果您尚未安裝並設定 AWS Command Line Interface (AWS CLI),請進行相應的操作。

    如需相關資訊,請參閱安裝或更新最新版本的 AWS CLI

  2. 在您的本機電腦上,使用下列信任政策,建立名稱為 SSMService-Trust.json 的文字檔案。請務必將檔案儲存為 .json 副檔名。

    注意

    記下名稱。您會在將 SSM Agent 部署至您的 AWS IoT Greengrass 核心裝置時進行指定。

    { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": { "Service": "ssm.amazonaws.com" }, "Action": "sts:AssumeRole" } }
  3. 開啟 AWS CLI,並在建立 JSON 檔案的目錄中執行 create-role 命令來建立服務角色。將每個範例資源預留位置取代為您自己的資訊。

    Linux 與 macOS

    aws iam create-role \ --role-name SSMServiceRole \ --assume-role-policy-document file://SSMService-Trust.json

    Windows

    aws iam create-role ^ --role-name SSMServiceRole ^ --assume-role-policy-document file://SSMService-Trust.json
  4. 如下執行 attach-role-policy 命令,以允許您剛建立的服務角色建立工作階段字符。工作階段字符可讓邊緣裝置具有使用 Systems Manager 執行命令的許可。

    注意

    您為邊緣裝置的服務設定檔新增的政策,與用於為 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體建立執行個體設定檔的政策相同。如需有關下列命令中使用的 IAM 政策的詳細資訊,請參閱設定 Systems Manager 的執行個體許可

    (必要) 執行下列命令,以允許邊緣裝置使用 AWS Systems Manager 服務核心功能。

    Linux 與 macOS

    aws iam attach-role-policy \ --role-name SSMServiceRole \ --policy-arn arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore

    Windows

    aws iam attach-role-policy ^ --role-name SSMServiceRole ^ --policy-arn arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore

    若您為服務角色建立自訂 S3 儲存貯體政策,請執行下列命令以允許 AWS Systems Manager Agent (SSM Agent) 存取您在政策中指定的儲存貯體。將 account-IDmy-bucket-policy-name 取代為您的 AWS 帳戶 ID 和儲存貯體名稱。

    Linux 與 macOS

    aws iam attach-role-policy \ --role-name SSMServiceRole \ --policy-arn arn:aws:iam::account_ID:policy/my_bucket_policy_name

    Windows

    aws iam attach-role-policy ^ --role-name SSMServiceRole ^ --policy-arn arn:aws:iam::account_id:policy/my_bucket_policy_name

    (選用) 執行下列命令以允許 SSM Agent 代表您存取 AWS Directory Service,以請求從邊緣設置加入網域。只有在您將邊緣裝置加入 Microsoft AD 目錄時,服務角色才需要此政策。

    Linux 與 macOS

    aws iam attach-role-policy \ --role-name SSMServiceRole \ --policy-arn arn:aws:iam::aws:policy/AmazonSSMDirectoryServiceAccess

    Windows

    aws iam attach-role-policy ^ --role-name SSMServiceRole ^ --policy-arn arn:aws:iam::aws:policy/AmazonSSMDirectoryServiceAccess

    (選用) 執行以下命令,以允許 CloudWatch 代理程式在您的邊緣裝置上執行。此命令可讓您讀取裝置的資訊,並將資訊寫入 CloudWatch。只有在使用諸如 Amazon EventBridge 或 Amazon CloudWatch Logs 等服務時,您的服務角色才需要此政策。

    aws iam attach-role-policy \ --role-name SSMServiceRole \ --policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy
Tools for PowerShell
若要建立適用於 AWS IoT Greengrass 環境的 IAM 服務角色 (AWS Tools for Windows PowerShell)
  1. 如果您尚未安裝並設定 AWS Tools for PowerShell (適用於 Windows PowerShell 的工具),請進行相應的作業。

    如需相關資訊,請參閱安裝 AWS Tools for PowerShell

  2. 在您的本機電腦上,使用下列信任政策,建立名稱為 SSMService-Trust.json 的文字檔案。請務必將檔案儲存為 .json 副檔名。

    注意

    記下名稱。您會在將 SSM Agent 部署至您的 AWS IoT Greengrass 核心裝置時進行指定。

    { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": { "Service": "ssm.amazonaws.com" }, "Action": "sts:AssumeRole" } }
  3. 在管理模式下開啟 PowerShell,並在您建立 JSON 檔案的目錄中如下所示執行 New-IAMRole,以建立服務角色。

    New-IAMRole ` -RoleName SSMServiceRole ` -AssumeRolePolicyDocument (Get-Content -raw SSMService-Trust.json)
  4. 如下使用 Register-IAMRolePolicy,以允許您建立的服務角色建立工作階段字符。工作階段字符可讓邊緣裝置具有使用 Systems Manager 執行命令的許可。

    注意

    您在 AWS IoT Greengrass 環境中為邊緣裝置之服務角色新增的政策,與用於為 EC2 執行個體建立執行個體設定檔的政策相同。如需有關下列命令中使用的 AWS 政策的詳細資訊,請參閱設定 Systems Manager 的執行個體許可

    (必要) 執行下列命令,以允許邊緣裝置使用 AWS Systems Manager 服務核心功能。

    Register-IAMRolePolicy ` -RoleName SSMServiceRole ` -PolicyArn arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore

    若您為服務角色建立自訂 S3 儲存貯體政策,請執行下列命令以允許 SSM Agent 存取您在政策中指定的儲存貯體。將 account-IDmy-bucket-policy-name 取代為您的 AWS 帳戶 ID 和儲存貯體名稱。

    Register-IAMRolePolicy ` -RoleName SSMServiceRole ` -PolicyArn arn:aws:iam::account_ID:policy/my_bucket_policy_name

    (選用) 執行下列命令以允許 SSM Agent 代表您存取 AWS Directory Service,以請求從邊緣設置加入網域。只有在您將邊緣裝置加入 Microsoft AD 目錄時,服務角色才需要此政策。

    Register-IAMRolePolicy ` -RoleName SSMServiceRole ` -PolicyArn arn:aws:iam::aws:policy/AmazonSSMDirectoryServiceAccess

    (選用) 執行以下命令,以允許 CloudWatch 代理程式在您的邊緣裝置上執行。此命令可讓您讀取裝置的資訊,並將資訊寫入 CloudWatch。只有在使用諸如 Amazon EventBridge 或 Amazon CloudWatch Logs 等服務時,您的服務角色才需要此政策。

    Register-IAMRolePolicy ` -RoleName SSMServiceRole ` -PolicyArn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy

步驟 2:設定 AWS IoT Greengrass

將邊緣裝置設定為 AWS IoT Greengrass 核心裝置。安裝程序涉及驗證支援的作業系統和系統需求,以及安裝和設定裝置上的 AWS IoT Greengrass 核心軟體。如需詳細資訊,請參閱《AWS IoT Greengrass Version 2 開發人員指南》中的設定 AWS IoT Greengrass 核心裝置

步驟 3:更新 AWS IoT Greengrass 字符交換角色並在邊緣裝置上安裝 SSM Agent

針對 Systems Manager 設定和配置您 AWS IoT Greengrass 核心裝置的最後步驟需要您更新 AWS IoT Greengrass AWS Identity and Access Management (IAM) 裝置服務角色 (也稱為字符交換角色),並部署 AWS Systems Manager Agent (SSM Agent) 至您的 AWS IoT Greengrass 裝置。如需有關這些程序的詳細資訊,請參閱《AWS IoT Greengrass Version 2 開發人員指南》中的安裝 AWS Systems Manager Agent 一節。

將 SSM Agent 部署至您的裝置後,AWS IoT Greengrass 會自動向 Systems Manager 註冊您的裝置。不需要額外註冊。您可以開始使用 Systems Manager 功能來存取、管理及設定 AWS IoT Greengrass 裝置。

注意

邊緣裝置必須能與雲端的 Systems Manager 服務進行通訊。Systems Manager 不支援中斷連線的邊緣裝置。