ハイブリッド Linux ノードで SSM Agent をインストールする - AWS Systems Manager

ハイブリッド Linux ノードで SSM Agent をインストールする

このトピックでは、ハイブリッドおよびマルチクラウド環境で非 EC2 (Amazon Elastic Compute Cloud) Linux マシンに AWS Systems Manager SSM Agent をインストールする方法について説明します。ハイブリッドまたはマルチクラウド環境で Windows Server マシンを使用する場合は、次のステップである「ハイブリッド Windows Server ノードに SSM Agent をインストールする」を参照してください。

重要

この手順は、ハイブリッドおよびマルチクラウド環境の EC2 インスタンス以外のマシンタイプ向けです。Linux の EC2 インスタンスに SSM Agent をダウンロードしてインストールするには、Linux 用 EC2 インスタンスに SSM Agent を手動でインストールおよびアンインストールする を参照してください。

開始する前に、ハイブリッドアクティベーションを作成して、Systems Manager にノードを登録する でハイブリッドのアクティベーションを先ほど完了した後に送信されたアクティベーションコードとアクティベーション ID を見つけます。このコードと ID を次の手順で指定します。

ハイブリッドおよびマルチクラウド環境の非 EC2 マシンに SSM Agent をインストールするには
  1. ハイブリッドおよびマルチクラウド環境のサーバーまたは VM にログオンします。

  2. HTTP または HTTPS プロキシを使用する場合は、現在のシェルセッションで http_proxy または https_proxy の環境変数を設定する必要があります。プロキシを使用していない場合は、この手順を省略できます。

    HTTP プロキシサーバーの場合は、コマンドラインで次のコマンドを入力します。

    export http_proxy=http://hostname:port export https_proxy=http://hostname:port

    HTTPS プロキシサーバの場合は、コマンドラインで次のコマンドを入力します。

    export http_proxy=http://hostname:port export https_proxy=https://hostname:port
  3. SSH に以下のコマンドブロックをコピーアンドペーストします。プレースホルダー値の代わりに、マネージドノードのアクティベーションの作成時に生成されたアクティベーションコードとアクティベーション ID、および SSM Agent のダウンロード元の AWS リージョン の識別子を入力し、Enter を押します。

    注記

    次の重要な詳細に留意してください。

    • root ユーザーの場合は sudo が必要ありません。

    • ハイブリッドアクティベーションを作成したのと同じ AWS リージョン から ssm-setup-cli をダウンロードします。

    • ssm-setup-cli で、エージェントのダウンロード元を判断する manifest-url オプションがサポートされました。ご自身の組織で必要とされている場合を除き、このオプションには値を指定しないでください。

    • インスタンスを登録するときは、ssm-setup-cli 用として指定されたダウンロードリンクのみを使用します。ssm-setup-cli を今後の使用のために個別に保管しないでください。

    • ここに記載されているスクリプトを使用して、ssm-setup-cli の署名を検証できます。

    region は、米国東部 (オハイオ) リージョンの us-east-2 のように、AWS Systems Manager でサポートされている AWS リージョン の識別子を表します。サポートされている region 値の一覧については、「Amazon Web Services 全般のリファレンス」の「Systems Manager サービスエンドポイント」にある Region 列を参照してください。

    さらに、ssm-setup-cli には次のオプションが含まれます。

    • version – 有効な値は latest および stable です。

    • downgrade - SSM Agent を以前のバージョンにダウングレードすることを許可します。エージェントの以前のバージョンをインストールするため true を指定します。

    • skip-signature-validation - エージェントをダウンロードおよびインストールする間の署名検証をスキップします。

mkdir /tmp/ssm curl https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/3.0.1479.0/linux_amd64/amazon-ssm-agent.rpm -o /tmp/ssm/amazon-ssm-agent.rpm sudo yum install -y /tmp/ssm/amazon-ssm-agent.rpm sudo stop amazon-ssm-agent sudo -E amazon-ssm-agent -register -code "activation-code" -id "activation-id" -region "region" sudo start amazon-ssm-agent
mkdir /tmp/ssm curl https://amazon-ssm-region.s3.region.amazonaws.com/latest/linux_amd64/ssm-setup-cli -o /tmp/ssm/ssm-setup-cli sudo chmod +x /tmp/ssm/ssm-setup-cli sudo /tmp/ssm/ssm-setup-cli -register -activation-code "activation-code" -id "activation-id" -region "region"
mkdir /tmp/ssm curl https://amazon-ssm-region.s3.region.amazonaws.com/latest/linux_amd64/ssm-setup-cli -o /tmp/ssm/ssm-setup-cli sudo chmod +x /tmp/ssm/ssm-setup-cli sudo /tmp/ssm/ssm-setup-cli -register -activation-code "activation-code" -activation-id "activation-id" -region "region"
mkdir /tmp/ssm curl https://amazon-ssm-region.s3.region.amazonaws.com/latest/linux_amd64/ssm-setup-cli -o /tmp/ssm/ssm-setup-cli sudo chmod +x /tmp/ssm/ssm-setup-cli sudo /tmp/ssm/ssm-setup-cli -register -activation-code "activation-code" -activation-id "activation-id" -region "region"
mkdir /tmp/ssm curl https://amazon-ssm-region.s3.region.amazonaws.com/latest/debian_amd64/ssm-setup-cli -o /tmp/ssm/ssm-setup-cli sudo chmod +x /tmp/ssm/ssm-setup-cli sudo /tmp/ssm/ssm-setup-cli -register -activation-code "activation-code" -activation-id "activation-id" -region "region"
mkdir /tmp/ssm curl https://amazon-ssm-region.s3.region.amazonaws.com/latest/debian_arm/ssm-setup-cli -o /tmp/ssm/ssm-setup-cli sudo chmod +x /tmp/ssm/ssm-setup-cli sudo /tmp/ssm/ssm-setup-cli -register -activation-code "activation-code" -activation-id "activation-id" -region "region"
  • .deb パッケージを使用

    mkdir /tmp/ssm curl https://amazon-ssm-region.s3.region.amazonaws.com/latest/debian_amd64/ssm-setup-cli -o /tmp/ssm/ssm-setup-cli sudo chmod +x /tmp/ssm/ssm-setup-cli sudo /tmp/ssm/ssm-setup-cli -register -activation-code "activation-code" -activation-id "activation-id" -region "region"
  • スナップパッケージを使用

    ダウンロードの URL を指定する必要はありません。snap コマンドでは、エージェントが Snap アプリストア https://snapcraft.io から自動的にダウンロードされます。

    Ubuntu Server 20.10 STR および 20.04、18.04、16.04 LTS の場合、SSM Agent インストーラファイル (エージェントバイナリや設定ファイルなど) は /snap/amazon-ssm-agent/current/ ディレクトリに保存されます。このディレクトリで設定ファイルに変更を加えた場合、これらのファイルを /snap ディレクトリから /etc/amazon/ssm/ ディレクトリにコピーする必要があります。ログファイルおよびライブラリファイルは変更されていません (/var/lib/amazon/ssm/var/log/amazon/ssm)。

    sudo snap install amazon-ssm-agent --classic sudo systemctl stop snap.amazon-ssm-agent.amazon-ssm-agent.service sudo /snap/amazon-ssm-agent/current/amazon-ssm-agent -register -code "activation-code" -id "activation-id" -region "region" sudo systemctl start snap.amazon-ssm-agent.amazon-ssm-agent.service
    重要

    Snap ストアの候補チャンネルには、安定したチャンネルではなく、SSM Agent の最新バージョンが含まれています。候補チャンネルの SSM Agent バージョン情報を追跡する場合は、Ubuntu Server 18.04 および 16.04 LTS 64 ビットマネージドノードで次のコマンドを実行します。

    sudo snap switch --channel=candidate amazon-ssm-agent

このコマンドでは、ハイブリッドおよびマルチクラウド環境のハイブリッドアクティベーションマシンに SSM Agent をダウンロードしてインストールします。コマンドは、SSM Agent を停止してから、マシンを Systems Manager サービスに登録します。これで、マシンはマネージドノードになりました。Systems Manager 用に設定されている Amazon EC2 インスタンスも、マネージドノードです。ただし、Systems Manager コンソールでは、ハイブリッドアクティベーションノードは、プレフィックス「mi-」が付いている Amazon EC2 インスタンスとは区別されます。

ハイブリッド Windows Server ノードに SSM Agent をインストールする」に進んでください。

プライベートキーの自動ローテーションを設定する

セキュリティポスチャを強化するには、ハイブリッドおよびマルチクラウド環境のプライベートキーを自動的にローテーションするように AWS Systems Manager エージェント (SSM Agent) を設定できます。SSM Agent バージョン 3.0.1031.0 以降を使用すると、この機能にアクセスできます。次の手順に従ってこの機能を有効にします。

ハイブリッドおよびマルチクラウド環境のプライベートキーをローテーションするように SSM Agent を設定するには
  1. Linux マシンでは /etc/amazon/ssm/、Windows マシンでは C:\Program Files\Amazon\SSM に移動します。

  2. amazon-ssm-agent.json.template の内容を amazon-ssm-agent.json という名前の新ファイルにコピーします。amazon-ssm-agent.json.template と同じディレクトリに amazon-ssm-agent.json を保存します。

  3. ProfileKeyAutoRotateDays を探す プライベートキーの自動ローテーション間隔の日数を入力します。

  4. SSM Agent を再起動します。

設定を変更するたびに、SSM Agent を再起動します。

同じ手順を使用して、SSM Agent の他の機能をカスタマイズできます。使用可能な設定プロパティとそのデフォルト値の最新リストについては、「Config Property Definitions (設定プロパティの定義)」を参照してください。

マネージドノードの登録解除と再登録

ハイブリッドアクティベーションマネージドノードの登録を解除するには、AWS CLI または Tools for Windows PowerShell のいずれかから DeregisterManagedInstance API オペレーションを呼び出します。以下に CLI コマンドの例を示します。

aws ssm deregister-managed-instance --instance-id "mi-1234567890"

エージェントの残りの登録情報を削除するには、amazon-ssm-agent.json ファイル内の IdentityConsumptionOrder キーを削除します。次に、以下のコマンドを実行します。

amazon-ssm-agent -register -clear

マシンは、登録解除した後に再登録できます。マシンを再登録するには、次の手順を使用します。手順を完了すると、マネージドノードがマネージドノードのリストに再び表示されます。

非 EC2 Linux マシンでマネージノードを再登録するには
  1. マシンへ接続します。

  2. 以下のコマンドを実行します。必ずプレースホルダー値の代わりに、マネージドノードのアクティベーションの作成時に生成されたアクティベーションコードとアクティベーション ID、および SSM Agent のダウンロード元のリージョンの識別子を入力します。

    echo "yes" | sudo /tmp/ssm/ssm-setup-cli -register -activation-code "activation-code" -activation-id "activation-id" -region "region

非 EC2 Linux マシンでの SSM Agent のインストールに関するトラブルシューティング

次の情報は、ハイブリッドおよびマルチクラウド環境でハイブリッドアクティベーション Linux マシンに SSM Agent をインストールする際の問題のトラブルシューティングに役立ちます。

DeliveryTimedOut エラーの発生

問題: ある AWS アカウント のマシンを別の AWS アカウント のマネージドノードとして設定している際に、ターゲットマシンに SSM Agent をインストールするコマンドを実行した後に DeliveryTimedOut が表示されます。

解決方法: DeliveryTimedOut がこのシナリオで予想される応答コードです。ターゲットノードに SSM Agent をインストールするコマンドによって、ソースノードのノード ID が変更されます。ノード ID が変更されたため、ソースノードは、実行中にコマンドが失敗したこと、完了したこと、またはタイムアウトしたことをターゲットノードに返信できません。

ノードの関連付けをロードできない

問題: インストールコマンドを実行した後、SSM Agent エラーログに次のエラーが表示されます。

Unable to load instance associations, unable to retrieve associations unable to retrieve associations error occurred in RequestManagedInstanceRoleToken: MachineFingerprintDoesNotMatch: Fingerprint doesn't match

このエラーは、再起動後にマシン ID が持続しない場合に表示されます。

解決方法: この問題を解決するには、次のコマンドを実行します。このコマンドは、再起動後もマシン ID を強制的に保持します。

umount /etc/machine-id systemd-machine-id-setup