AWS Systems Manager エージェントのインストール - AWS IoT Greengrass

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS Systems Manager エージェントのインストール

AWS Systems Manager エージェント (Systems Manager Agent) は Amazon のソフトウェアで、インストールすることにより Greengrass コアデバイス、Amazon EC2 インスタンス、その他のリソースを Systems Manager が更新、管理、設定できるようになります。エージェントは、AWS クラウド の Systems Manager サービスからのリクエストを処理および実行します。次に、エージェントは Systems Manager サービスにステータスとランタイム情報を返します。詳細については、「AWS Systems Manager ユーザーガイド」の「Systems Manager Agent について」を参照してください。

AWS は、Systems Manager Agent を Greengrass コンポーネントとして提供します。これは、Greengrass コアデバイスにデプロイして Systems Manager で管理できるようにするものです。Systems Manager Agent コンポーネントは、Systems Manager Agent ソフトウェアをインストールし、コアデバイスをマネージドノードとして Systems Manager に登録します。このページの手順に従って前提条件を完了し、Systems Manager Agent コンポーネントをコアデバイスまたはコアデバイスのグループにデプロイします。

ステップ 1: Systems Manager の一般的なセットアップ手順を完了する

まだ実行していない場合、AWS Systems Manager の一般的なセットアップ手順を完了してください。詳細については、「AWS Systems Manager ユーザーガイド」の「Systems Manager の一般的なセットアップ手順を完了する」を参照してください。

ステップ 2: Systems Manager の IAM サービスロールを作成する

Systems Manager Agent は AWS Identity and Access Management (IAM) サービスロール を使用して AWS Systems Manager と通信します。Systems Manager は、各コアデバイスで Systems Manager の機能を有効にするために、このロールを引き受けます。また、コンポーネントのデプロイ時にコアデバイスを Systems Manager マネージドノードとして登録する際にも、Systems Manager Agent コンポーネントはこのロールを使用します。まだ作成していない場合は、Systems Manager Agent コンポーネントが使用する Systems Manager サービスロールを作成します。詳細については、「AWS Systems Manager ユーザーガイド」の「エッジデバイス用の IAM サービスロールを作成」を参照してください。

ステップ 3: アクセス権限をトークン交換ロールに追加する

Greengrass コアデバイスは、トークン交換ロールという IAM サービスロールを使用して、AWS サービスとやり取りを行います。各コアデバイスには、AWS IoT Greengrass Core ソフトウェアをインストールする際に作成するトークン交換ロールがあります。Systems Manager Agent などの多くの Greengrass コンポーネントには、このロールに対する追加のアクセス権限が必要です。Systems Manager Agent コンポーネントには、ステップ 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 Agent が動作できるようにします。トークン交換ロールに新しいポリシーを追加することで、このアクセス許可を付与できます。

  1. [IAM console] (IAM コンソール) ナビゲーションメニューで、[Roles] (ロール) を選択します。

  2. AWS IoT Greengrass Core ソフトウェアをインストールする際にトークン交換ロールとして設定した IAM ロールを選択します。AWS IoT Greengrass Core ソフトウェアのインストール時にトークン交換ロールの名前を指定しなかった場合は、GreengrassV2TokenExchangeRole という名前のロールが作成されます。

  3. [Permissions] (アクセス許可) タブを選択し、[Add permissions] (アクセス許可の追加) を選択してから、[Attach policies] (ポリシーの添付) を選択します。

  4. [Create policy] (ポリシーの作成) を選択します。[ポリシーの作成] ページが新しいブラウザタブで開きます。

  5. [ポリシーの作成] ページで、次の操作を行います。

    1. [JSON] を選択して JSON エディタを開きます。

    2. 以下の ポリシーを JSON エディタに貼り付けます。SSMServiceRole を で作成したサービスロールの名前に置き換えますステップ 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": "*" } ] }
    3. [次へ: タグ] を選択します。

    4. [次へ: レビュー] を選択します。

    5. ポリシーの [名前] を入力します (例: GreengrassSSMAgentComponentPolicy)。

    6. [ポリシーの作成] を選択します。

    7. 先にトークン交換ロールを開いていたブラウザタブに切り替えます。

  6. [Add permissions] (アクセス許可を追加) ページで更新ボタンを選択して、前のステップで作成した Greengrass Systems Manager エージェントポリシーを選択します。

  7. [ポリシーのアタッチ] を選択します。

    これで、このトークン交換ロールを使用するコアデバイスには、Systems Manager サービスとやり取りする権限が付与されます。

Systems Manager を使用するアクセス許可を付与するポリシーを追加するには
  1. ssm-agent-component-policy.json という名前のファイルを作成して、次の JSON をファイルにコピーします。SSMServiceRole を で作成したサービスロールの名前に置き換えますステップ 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": "*" } ] }
  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. 次のコマンドを実行して、ポリシーをトークン交換ロールにアタッチします。

    • GreengrassV2TokenExchangeRole を、 AWS IoT Greengrass Core ソフトウェアをインストールしたときに指定したトークン交換ロールの名前に置き換えます。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: Systems Manager Agent コンポーネントをデプロイする

Systems Manager Agent コンポーネントをデプロイして設定するには、以下のステップを完了します。コンポーネントは 1 つのコアデバイスにも、コアデバイスのグループにもデプロイできます。

  1. AWS IoT Greengrass コンソールのナビゲーションメニューで、[Components] (コンポーネント) を選択します。

  2. [Components] (コンポーネント) ページで、[Public components] (公開コンポーネント) タブを選択し、次に aws.greengrass.SystemsManagerAgent を選択します。

  3. aws.greengrass.SystemsManagerAgent ページで、[Deploy] (デプロイ) を選択します。

  4. [Add to deployment] (デプロイに追加) で、改訂する既存のデプロイを選択するか、新しいデプロイを作成することを選択して、[Next] (次へ) を選択します。

  5. 新しいデプロイの作成を選択した場合、デプロイのターゲットコアデバイスまたはモノグループを選択します。リポジトリの [Specify target] (ターゲットを指定) ページの、[Deployment target] (ターゲットのデプロイ) で、コアデバイスまたはモノグループを選択し、[Next] (次へ) を選択します。

  6. [Select components] (コンポーネントを選択) ページで、aws.greengrass.SystemsManagerAgent コンポーネントが選択されていることを確認し、[Next] (次) を選択します。

  7. [Configure components] (コンポーネントを設定) ページで、aws.greengrass.SystemsManagerAgent を選択したら、次の操作を行います。

    1. [Configure component] (コンポーネントを設定) を選択します。

    2. [aws.greengrass.SystemsManagerAgent の設定] モーダルの [設定の更新] の下にある [マージする設定] に、次の設定更新を入力します。SSMServiceRole を で作成したサービスロールの名前に置き換えますステップ 2: Systems Manager の IAM サービスロールを作成する

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

      コアデバイスで、ハイブリッドアクティベーションに登録されている Systems Manager Agent がすでに実行されている場合は、SSMOverrideExistingRegistrationtrue に変更します。このパラメータは、デバイスでハイブリッドアクティベーションが行なわれた Systems Manager Agent がすでに実行されている場合に、Systems Manager Agent コンポーネントがコアデバイスの登録を行うかどうか指定するものです。

      Systems Manager Agent コンポーネントがコアデバイス用に作成する Systems Manager マネージドノードに追加するタグ (SSMResourceTags) を指定することもできます。詳細については、「Systems Manager Agent コンポーネントの設定」を参照してください。

    3. [Confirm] (確認) を選択してモーダルを閉じ、次に [Next] (次) を選択します。

  8. [Configure advanced settings] (詳細設定) ページはデフォルト設定のままにし、[Next] (次へ) を選択します。

  9. [Review] ページで、[デプロイ] を選択します。

    デプロイに最大 1 分かかる場合があります。

Systems Manager Agent コンポーネントをデプロイするには、components オブジェクトに aws.greengrass.SystemsManagerAgent を含むデプロイドキュメントを作成し、コンポーネントのコンフィギュレーション更新を指定します。デプロイの作成 の指示に従って、新しいデプロイを作成または既存のデプロイを改訂します。

次の部分的なデプロイドキュメントの例では、SSMServiceRole という名前のサービスロールを使用するように指定しています。SSMServiceRole を で作成したサービスロールの名前に置き換えますステップ 2: Systems Manager の IAM サービスロールを作成する

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

コアデバイスで、ハイブリッドアクティベーションに登録されている Systems Manager Agent がすでに実行されている場合は、SSMOverrideExistingRegistrationtrue に変更します。このパラメータは、デバイスでハイブリッドアクティベーションが行なわれた Systems Manager Agent がすでに実行されている場合に、Systems Manager Agent コンポーネントがコアデバイスの登録を行うかどうか指定するものです。

Systems Manager Agent コンポーネントがコアデバイス用に作成する Systems Manager マネージドノードに追加するタグ (SSMResourceTags) を指定することもできます。詳細については、「Systems Manager Agent コンポーネントの設定」を参照してください。

デプロイには数分かかる場合があります。AWS IoT Greengrass サービスを使用すると、デプロイのステータスを確認するとともに、AWS IoT Greengrass Core ソフトウェアのログと Systems Manager Agent コンポーネントのログを確認して、Systems Manager Agent が正常に動作していることを確認できます。詳細については、次を参照してください。

デプロイに失敗した場合、または Systems Manager Agent が動作しない場合は、各コアデバイスでデプロイのトラブルシューティングを行います。詳細については、次を参照してください。

ステップ 5: Systems Manager でコアデバイスの登録を検証する

Systems Manager Agent コンポーネントを実行すると、Systems Manager にはコアデバイスがマネージドノードとして登録されます。AWS IoT Greengrass コンソール、Systems Manager コンソール、および Systems Manager API を使用して、コアデバイスがマネージドノードとして登録されていることを確認できます。マネージドノードは、AWS コンソールや API の一部ではインスタンスとも呼ばれます。

  1. AWS IoT Greengrass コンソールのナビゲーションメニューで、[Core devices] (コアデバイス) を選択します。

  2. 検証するコアデバイスを選択します。

  3. コアデバイスの詳細ページで、AWS Systems Manager インスタンスプロパティを探します。このプロパティが存在し、Systems Manager コンソールへのリンクが表示されている場合、このコアデバイスはマネージドノードとして登録されています。

    また、AWS Systems Manager ping ステータスプロパティを探して、コアデバイスの Systems Manager Agent のステータスを確認することもできます。ステータスが [Online] (オンライン) のときは、Systems Manager でコアデバイスを管理できます。

  1. [Systems Manager console] (Systems Manager コンソール) ナビゲーションメニューで、Fleet Manager を選択します。

  2. [Managed nodes] (マネージドノード) で以下を実行します。

    1. [Source type] (ソースタイプ) を AWS::IoT::Thing に設定して、フィルターを追加します。

    2. [Source ID] (ソース ID) を検証するコアデバイスの名前に設定して、フィルターを追加します。

  3. [Managed nodes] (マネージドノード) の表でコアデバイスを探します。コアデバイスが表内に見つかった場合、これはマネージドノードとして登録されています。

    また、[Systems Manager Agent ping status] (Systems Manager Agent ping ステータス) プロパティを探して、コアデバイスの Systems Manager Agent のステータスを確認することもできます。ステータスが [Online] (オンライン) のときは、Systems Manager でコアデバイスを管理できます。

  • DescribeInstanceInformation オペレーションを使用して、指定したフィルターに一致するマネージドノードのリストを取得します。次のコマンドを実行して、コアデバイスがマネージドノードとして登録されているかどうかを確認します。を検証するコアデバイスの名前MyGreengrassCoreに置き換えます。

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

    レスポンスには、フィルターに一致するマネージドノードのリストが含まれます。リストにマネージドノードが含まれているなら、コアデバイスはマネージドノードとして登録されています。また、コアデバイスのマネージドノードに関するその他の情報もレスポンスで確認できます。PingStatus のプロパティが Online であれば、Systems Manager でコアデバイスを管理できます。

コアデバイスがマネージドノードとして登録されていることを Systems Manager で確認した後は、Systems Manager コンソールや API を使用して、そのコアデバイスを管理できます。Greengrass コアデバイスの管理に使用できる Systems Manager の機能の詳細については、「AWS Systems Manager ユーザーガイド」の「Systems Manager の機能」を参照してください。