ステップ 3: ハイブリッドおよびマルチクラウド環境 (Linux) に SSM Agent をインストールする - AWS Systems Manager

ステップ 3: ハイブリッドおよびマルチクラウド環境 (Linux) に SSM Agent をインストールする

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

重要

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

開始する前に、ステップ 2: ハイブリッドおよびマルチクラウド環境用のハイブリッドアクティベーションを作成する でハイブリッドのアクティベーションを先ほど完了した後に送信されたアクティベーションコードとアクティベーション ID を見つけます。このコードと ID を次の手順で指定します。

以下のスクリプトの URL では、どの AWS リージョン からでも SSM Agent をダウンロードできます。特定のリージョンからエージェントをダウンロードする場合は、オペレーティングシステムの URL をコピーし、region を適切な値に置き換えます。

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

例えば、米国東部 (オハイオ) リージョン (us-east-2) から、Amazon Linux 用 SSM Agent、RHEL、CentOS、64 ビット版の SLES をダウンロードするには、次の URL を使用します。

https://s3.us-east-2.amazonaws.com/amazon-ssm-us-east-2/latest/linux_amd64/amazon-ssm-agent.rpm
Amazon Linux 2, Amazon Linux, RHEL, Oracle Linux, CentOS, and SLES
  • x86_64

    https://s3.region.amazonaws.com/amazon-ssm-region/latest/linux_amd64/amazon-ssm-agent.rpm

  • x86

    https://s3.region.amazonaws.com/amazon-ssm-region/latest/linux_386/amazon-ssm-agent.rpm

  • ARM64

    https://s3.region.amazonaws.com/amazon-ssm-region/latest/linux_arm64/amazon-ssm-agent.rpm

RHEL 6.x, CentOS 6.x
  • x86_64

    https://s3.region.amazonaws.com/amazon-ssm-region/3.0.1479.0/linux_amd64/amazon-ssm-agent.rpm

  • x86

    https://s3.region.amazonaws.com/amazon-ssm-region/3.0.1479.0/linux_386/amazon-ssm-agent.rpm

Ubuntu Server
  • x86_64

    https://s3.region.amazonaws.com/amazon-ssm-region/latest/debian_amd64/amazon-ssm-agent.deb

  • ARM64

    https://s3.region.amazonaws.com/amazon-ssm-region/latest/debian_arm64/amazon-ssm-agent.deb

  • x86

    https://s3.region.amazonaws.com/amazon-ssm-region/latest/debian_386/amazon-ssm-agent.deb

Debian サーバー
  • x86_64

    https://s3.region.amazonaws.com/amazon-ssm-region/latest/debian_amd64/amazon-ssm-agent.deb

  • ARM64

    https://s3.region.amazonaws.com/amazon-ssm-region/latest/debian_arm64/amazon-ssm-agent.deb

Raspberry Pi OS (formerly Raspbian)
  • https://s3.region.amazonaws.com/amazon-ssm-region/latest/debian_arm/amazon-ssm-agent.deb

ハイブリッドおよびマルチクラウド環境の非 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 が必要ありません。

    • 各コマンドブロックは、sudo -E amazon-ssm-agent を指定します。-E が必要になるのは、HTTP または HTTPS プロキシ環境変数を設定した場合のみです。

    • 次の URL には「ec2-downloads-windows」と示されていますが、これらは Linux オペレーティングシステム用の正しい URL です。

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

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://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/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://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm -o /tmp/ssm/amazon-ssm-agent.rpm sudo yum install -y /tmp/ssm/amazon-ssm-agent.rpm sudo systemctl stop amazon-ssm-agent sudo -E amazon-ssm-agent -register -code "activation-code" -id "activation-id" -region "region" sudo systemctl start amazon-ssm-agent
mkdir /tmp/ssm curl https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm -o /tmp/ssm/amazon-ssm-agent.rpm sudo dnf install -y /tmp/ssm/amazon-ssm-agent.rpm sudo systemctl stop amazon-ssm-agent sudo -E amazon-ssm-agent -register -code "activation-code" -id "activation-id" -region "region" sudo systemctl start amazon-ssm-agent
mkdir /tmp/ssm wget https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/debian_amd64/amazon-ssm-agent.deb -O /tmp/ssm/amazon-ssm-agent.deb sudo dpkg -i /tmp/ssm/amazon-ssm-agent.deb sudo service amazon-ssm-agent stop sudo -E amazon-ssm-agent -register -code "activation-code" -id "activation-id" -region "region" sudo service amazon-ssm-agent start
mkdir /tmp/ssm sudo curl https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/debian_arm/amazon-ssm-agent.deb -o /tmp/ssm/amazon-ssm-agent.deb sudo dpkg -i /tmp/ssm/amazon-ssm-agent.deb sudo service amazon-ssm-agent stop sudo -E amazon-ssm-agent -register -code "activation-code" -id "activation-id" -region "region" sudo service amazon-ssm-agent start
mkdir /tmp/ssm sudo wget https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm sudo rpm --install amazon-ssm-agent.rpm sudo systemctl stop amazon-ssm-agent sudo -E amazon-ssm-agent -register -code "activation-code" -id "activation-id" -region "region" sudo systemctl enable amazon-ssm-agent sudo systemctl start amazon-ssm-agent
  • .deb パッケージを使用

    mkdir /tmp/ssm curl https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/debian_amd64/amazon-ssm-agent.deb -o /tmp/ssm/amazon-ssm-agent.deb sudo dpkg -i /tmp/ssm/amazon-ssm-agent.deb sudo service amazon-ssm-agent stop sudo -E amazon-ssm-agent -register -code "activation-code" -id "activation-id" -region "region" sudo service amazon-ssm-agent start
  • スナップパッケージを使用

    ダウンロードの 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 インスタンスとは区別されます。

ステップ 4: ハイブリッドおよびマルチクラウド環境に SSM Agent をインストールする (Windows)」に進んでください。

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

セキュリティポスチャを強化するには、ハイブリッドおよびマルチクラウド環境のプライベートキーを自動的にローテーションするように 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"

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

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

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

    echo "yes" | sudo amazon-ssm-agent -register -code "activation-code" -id "activation-id" -region "region" && sudo systemctl restart amazon-ssm-agent

非 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