安裝 AWS Systems Manager 代理程式 - AWS IoT Greengrass

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

安裝 AWS Systems Manager 代理程式

AWS Systems Manager代理程式 (Systems Manager 代理程式) 是您安裝的 Amazon 軟體,可讓 Systems Manager 更新、管理和設定 Greengrass 核心裝置、Amazon EC2 執行個體和其他資源。代理程式會處理和執行中 Systems Manager 服務的要求AWS 雲端。然後,代理程式會將狀態和執行階段資訊傳送回系 Systems Manager 服務。如需詳細資訊,請參閱AWS Systems Manager使用指南中的關於系統管理員代理程式

AWS提供 Systems Manager 代理程式做為 Greengrass 元件,您可以將其部署到 Greengrass 核心裝置,以便使用系統管理員來管理這些元件。系統管理員代理程式元件會安裝系統管理員代理程式軟體,並將核心裝置註冊為系統管理員中的受管理節點。請依照此頁面中的步驟完成必要條件,並將 Systems Manager Agent 元件部署至核心裝置或核心裝置群組。

步驟 1:完成一般 Systems Manager 設定步驟

如果您尚未這麼做,請完成的一般設定步驟AWS Systems Manager。如需詳細資訊,請參閱AWS Systems Manager使用者指南中的完整一般 Systems Manager 設定步驟

步驟 2:為 Systems Manager 建立 IAM 服務角色

系統管理員代理程式會使用 AWS Identity and Access Management (IAM) 服務角色與之通訊AWS Systems Manager。Systems Manager 擔任此角色,以便在每個核心裝置上啟用 Systems Manager 功能。當您部署元件時,Systems Manager 代理程式元件也會使用此角色,將核心裝置註冊為系統管理員管理的節點。如果您尚未這麼做,請建立要使用的 Systems Manager 代理程式元件的 Systems Manager 服務角色。如需詳細資訊,請參閱使AWS Systems Manager用指南中的為邊緣裝置建立 IAM 服務角色

步驟 3:將權限新增至權杖交換角色

Greengrass 核心裝置使用 IAM 服務角色 (稱為權杖交換角色) 與服務互動。AWS每個核心裝置都有您在安裝 AWS IoT Greengrass Core 軟體時所建立的權杖交換角色。許多 Greengrass 元件 (例如系統管理員代理程式) 都需要此角色的額外權限。系統管理員代理程式元件需要下列權限,其中包括使用您在中建立之角色的權限步驟 2:為 Systems Manager 建立 IAM 服務角色

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "iam:PassRole" ], "Effect": "Allow", "Resource": [ "arn:aws:iam::account-id:role/SSMServiceRole" ] }, { "Action": [ "ssm:AddTagsToResource", "ssm:RegisterManagedInstance" ], "Effect": "Allow", "Resource": "*" } ] }

如果您尚未這麼做,請將這些權限新增至核心裝置的權杖交換角色,以允許 Systems Manager 代理程式運作。您可以將新政策添加到令牌交換角色以授予此權限。

  1. IAM 主控台導覽功能表中,選擇 [角色]。

  2. 選擇安裝 AWS IoT Greengrass Core 軟體時設定為權杖交換角色的 IAM 角色。如果您在安裝 AWS IoT Greengrass Core 軟體時未指定權杖交換角色的名稱,則會建立名為的角色GreengrassV2TokenExchangeRole

  3. 在 [權限] 下,選擇 [新增權限],然後選擇 [附加原則]。

  4. 選擇建立政策。[建立原則] 頁面會在新的瀏覽器索引標籤中開啟。

  5. Create policy (建立政策) 頁面上,執行下列動作:

    1. 選擇 JSON 以開啟 JSON 編輯器。

    2. 將以下 政策貼到 JSON 編輯器。以您在步驟 2:為 Systems Manager 建立 IAM 服務角色中建立的服務角色名稱取代 SSM ServiceRole

      { "Version": "2012-10-17", "Statement": [ { "Action": [ "iam:PassRole" ], "Effect": "Allow", "Resource": [ "arn:aws:iam::account-id:role/SSMServiceRole" ] }, { "Action": [ "ssm:AddTagsToResource", "ssm:RegisterManagedInstance" ], "Effect": "Allow", "Resource": "*" } ] }
    3. 選擇下一步:標籤

    4. 選擇下一步:檢閱

    5. 為政策輸入 Name (名稱),例如 GreengrassSSMAgentComponentPolicy

    6. 選擇建立政策

    7. 切換到上一個瀏覽器標籤,您可以在其中打開令牌交換角色。

  6. 在 [新增權限] 頁面上,選擇 [重新整理] 按鈕,然後選取您在上一個步驟中建立的 Greengrass 系統管理員代理程式原則。

  7. 選擇連接政策

    使用此權杖交換角色的核心裝置現在具有與 Systems Manager 服務互動的權限。

若要新增授與使用 Systems Manager 之權限的原則
  1. 創建一個名為的文件,ssm-agent-component-policy.json並將以下 JSON 複製到該文件中。以您在步驟 2:為 Systems Manager 建立 IAM 服務角色中建立的服務角色名稱取代 SSM ServiceRole

    { "Version": "2012-10-17", "Statement": [ { "Action": [ "iam:PassRole" ], "Effect": "Allow", "Resource": [ "arn:aws:iam::account-id:role/SSMServiceRole" ] }, { "Action": [ "ssm:AddTagsToResource", "ssm:RegisterManagedInstance" ], "Effect": "Allow", "Resource": "*" } ] }
  2. 執行下列命令,從中的策略文件建立策略ssm-agent-component-policy.json

    Linux or Unix
    aws iam create-policy \ --policy-name GreengrassSSMAgentComponentPolicy \ --policy-document file://ssm-agent-component-policy.json
    Windows Command Prompt (CMD)
    aws iam create-policy ^ --policy-name GreengrassSSMAgentComponentPolicy ^ --policy-document file://ssm-agent-component-policy.json
    PowerShell
    aws iam create-policy ` --policy-name GreengrassSSMAgentComponentPolicy ` --policy-document file://ssm-agent-component-policy.json

    從輸出中的政策中繼資料複製政策 Amazon 資源名稱 (ARN)。您可以使用此 ARN 將此原則附加至下一個步驟中的核心裝置角色。

  3. 執行下列命令,將原則附加至權杖交換角色。

    • GreenRassv2 TokenExchangeRole 取代為您在安裝核心軟體時指定的權杖交換角色名稱。AWS IoT Greengrass如果您在安裝 AWS IoT Greengrass Core 軟體時未指定權杖交換角色的名稱,則會建立名為的角色GreengrassV2TokenExchangeRole

    • 將原則 ARN 取代為上一個步驟的 ARN。

    Linux or Unix
    aws iam attach-role-policy \ --role-name GreengrassV2TokenExchangeRole \ --policy-arn arn:aws:iam::123456789012:policy/GreengrassSSMAgentComponentPolicy
    Windows Command Prompt (CMD)
    aws iam attach-role-policy ^ --role-name GreengrassV2TokenExchangeRole ^ --policy-arn arn:aws:iam::123456789012:policy/GreengrassSSMAgentComponentPolicy
    PowerShell
    aws iam attach-role-policy ` --role-name GreengrassV2TokenExchangeRole ` --policy-arn arn:aws:iam::123456789012:policy/GreengrassSSMAgentComponentPolicy

    如果命令沒有輸出,則成功。使用此權杖交換角色的核心裝置現在具有與 Systems Manager 服務互動的權限。

步驟 4:部署系統管理員代理程式元件

完成下列步驟,以部署和設定系統管理員代理程式元件。您可以將元件部署到單一核心裝置或核心裝置群組。

  1. AWS IoT Greengrass主控台瀏覽功能表中,選擇 [元件]。

  2. 在 [件] 頁面上,選擇 [公用元件] 索引標籤,然後選擇aws.greengrass.SystemsManagerAgent

  3. aws.greengrass.SystemsManagerAgent頁面中,選擇部署

  4. 從 [新增至部署] 中,選擇要修訂的現有部署,或選擇建立新部署,然後選擇 [一步]。

  5. 如果您選擇建立新部署,請為部署選擇目標核心裝置或物件群組。在 [指定目標] 頁面的 [部署目標] 下,選擇核心裝置或物件群組,然後選擇 [下步]。

  6. 在 [選取元件] 頁面上,確認已選取aws.greengrass.SystemsManagerAgent元件,然後選擇 [下一步]。

  7. 在 [設定元件] 頁面上,選取 aws.greengrass.SystemsManagerAgent,然後執行下列動作:

    1. 選擇 設定元件

    2. 設定aws.greengrass.SystemsManagerAgent強制回應的組態更新下,在要合併的組態中,輸入下列組態更新。以您在步驟 2:為 Systems Manager 建立 IAM 服務角色中建立的服務角色名稱取代 SSM ServiceRole

      { "SSMRegistrationRole": "SSMServiceRole", "SSMOverrideExistingRegistration": false }
      注意

      如果核心裝置已執行以混合式啟動方式註冊的系統管理員代理程式,請變更SSMOverrideExistingRegistrationtrue。此參數指定當系統管理員代理程式已在具有混合式啟動的裝置上執行時,系統管理員代理程式元件是否註冊核心裝置。

      您也可以指定標籤 (SSMResourceTags),以新增至系統管理員管理的節點,此節點是系統管理員代理程式元件為核心裝置建立的。如需詳細資訊,請參閱系統管理員代理程式元件組態

    3. 選擇「確認」以關閉強制回應,然後選擇「下一步」。

  8. 設定進階設定頁面上,保留預設組態設定,然後選擇 下一步

  9. Review (檢閱) 頁面,選擇 Deploy (部署)

    部署最多可能需要一分鐘的時間才能完成。

若要部署 Systems Manager 代理程式元件,請建立包含在components物件aws.greengrass.SystemsManagerAgent中的部署文件,並指定元件的組態更新。遵循中建立部署的指示建立新部署或修訂既有部署。

下列範例部分部署文件會指定使用名為的服務角色SSMServiceRole。以您在步驟 2:為 Systems Manager 建立 IAM 服務角色中建立的服務角色名稱取代 SSM ServiceRole

{ ..., "components": { ..., "aws.greengrass.SystemsManagerAgent": { "componentVersion": "1.0.0", "configurationUpdate": { "merge": "{\"SSMRegistrationRole\":\"SSMServiceRole\",\"SSMOverrideExistingRegistration\":false}" } } } }
注意

如果核心裝置已執行以混合式啟動方式註冊的系統管理員代理程式,請變更SSMOverrideExistingRegistrationtrue。此參數指定當系統管理員代理程式已在具有混合式啟動的裝置上執行時,系統管理員代理程式元件是否註冊核心裝置。

您也可以指定標籤 (SSMResourceTags),以新增至系統管理員管理的節點,此節點是系統管理員代理程式元件為核心裝置建立的。如需詳細資訊,請參閱系統管理員代理程式元件組態

可能需要幾分鐘才能完成部署。您可以使用此AWS IoT Greengrass服務來檢查部署的狀態,也可以檢查AWS IoT Greengrass核心軟體記錄檔和系統管理員代理程式元件記錄檔,以確認系統管理員代理程式是否成功執行。如需詳細資訊,請參閱下列內容:

如果部署失敗或系統管理員代理程式未執行,您可以疑難排解每個核心裝置上的部署問題。如需詳細資訊,請參閱下列內容:

步驟 5:透過 Systems Manager 驗證核心裝置註冊

系統管理員代理程式元件執行時,會將核心裝置註冊為系統管理員中的受管理節點。您可以使用AWS IoT Greengrass主控台、Systems Manager 主控台和 Systems Manager API 來驗證核心裝置是否已註冊為受管理節點。受管節點在AWS主控台和 API 的一部分中也稱為執行個體。

  1. AWS IoT Greengrass主控台瀏覽功能表中,選擇 [核心裝置]。

  2. 選擇要驗證的核心裝置。

  3. 在核心裝置的詳細資料頁面上,找到AWS Systems Manager執行個體屬性。如果存在此內容並顯示 Systems Manager 主控台的連結,則核心裝置會註冊為受管理節點。

    您也可以找到 AWS Systems Managerping 狀態屬性,以檢查核心裝置上系統管理員代理程式的狀態。當狀態為 [線上] 時,您可以使用系統管理員來管理核心裝置。

  1. 在 [Systems Manager] 主控台瀏覽功能表中,選擇 [叢集管理

  2. 在受管節點下,執行下列動作:

    1. 新增「來源」類型為的篩選器AWS::IoT::Thing

    2. 添加一個過濾器,其中源 ID 是要驗證的核心設備的名稱。

  3. 在「受管理的節點」表格中找到核心裝置。如果核心裝置位於表格中,則會註冊為受管理節點。

    您也可以找到系統管理員代理程式偵測狀態屬性,以檢查核心裝置上系統管理員代理程式的狀態。當狀態為 [線上] 時,您可以使用系統管理員來管理核心裝置。

  • 使用此DescribeInstanceInformation作業可取得符合您指定之篩選器的受管理節點清單。執行下列命令以驗證核心裝置是否已註冊為受管理節點。以核心裝置的名稱取MyGreengrassCore代以進行驗證。

    aws ssm describe-instance-information --filter Key=SourceIds,Values=MyGreengrassCore Key=SourceTypes,Values=AWS::IoT::Thing

    回應包含符合篩選器的受管節點清單。如果清單包含受管理節點,則核心裝置會註冊為受管理節點。您也可以在回應中找到有關核心裝置受管理節點的其他資訊。如果PingStatus屬性是Online,您可以使用系統管理員來管理核心裝置。

在您確認核心裝置已在 Systems Manager 中註冊為受管理節點之後,您就可以使用 Systems Manager 主控台和 API 來管理該核心裝置。如需有關可用來管理 Greengrass 核心裝置之系統管理員功能的詳細資訊,請參閱使用者指南中的 Systems Manager 功能。AWS Systems Manager