ステップ 4: ハイブリッド環境 (Linux) に SSM Agent をインストール - AWS Systems Manager

ステップ 4: ハイブリッド環境 (Linux) に SSM Agent をインストール

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

重要

この手順では、オンプレミス環境やハイブリッド環境のサーバーおよび仮想マシン (VM) を対象としています。Linux の EC2 インスタンスに SSM Agent をダウンロードしてインストールするには、Linux 用 EC2 インスタンスで SSM Agent を使用する を参照してください。

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

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

region は、米国東部 (オハイオ) リージョンの us-east-2 のように、AWS Systems Manager でサポートされている AWS リージョン の識別子を表します。サポートされている region 値の一覧については、アマゾン ウェブ サービスの全般リファレンスの「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-west-1/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

ハイブリッド環境のサーバーおよび VM に 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 です。

    リージョンは、米国東部 (オハイオ) リージョンの us-east-2 のように、AWS Systems Manager でサポートされている AWS リージョン の識別子を表します。サポートされている region 値の一覧については、アマゾン ウェブ サービスの全般リファレンスの「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

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

ステップ 5: ハイブリッド環境に SSM Agent をインストールする (Windows)」に進んでください。

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

セキュリティポスチャを強化するには、AWS Systems Manager Agent (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"

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

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

Linux ハイブリッド環境での SSM Agent インストールのトラブルシューティング

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

DeliveryTimedOut エラーの発生

問題: ある AWS アカウント の Amazon EC2 インスタンスを別の 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