SSM エージェント の使用 - AWS Systems Manager

SSM エージェント の使用

AWS Systems Manager エージェント (SSM エージェント) は、EC2 インスタンス、オンプレミスサーバー、仮想マシン (VM) にインストールして設定することができる Amazon のソフトウェアです。SSM エージェント により、Systems Manager がこれらのリソースを更新、管理、設定できるようなります。エージェントは、AWS クラウド上の Systems Manager サービスからのリクエストを処理し、リクエストに指定されたとおりに実行します。SSM エージェント は、Amazon Message Delivery Service (サービスプレフィックス: ec2messages)を使用して、Systems Manager サービスにステータスと実行情報を返します。

トラフィックをモニタリングすると、Amazon Elastic Compute Cloud (Amazon EC2) と通信中の ec2messages.* インスタンス、およびハイブリッド環境のオンプレミスサーバーまたは VM が表示されます。詳細については、「リファレンス: ec2messages、ssmmessages と他の API コール」を参照してください。SSM エージェント のログを Amazon CloudWatch Logs に移植する方法については、「AWS Systems Manager のモニタリング」を参照してください。

SSM エージェント を最新の状態に維持

新しい機能が Systems Manager に追加されるか、既存の機能が更新されると必ず、更新されたバージョンの SSM エージェント がリリースされます。古いバージョンのエージェントがインスタンスで実行されていると、SSM エージェント プロセスによっては失敗することがあります。そのため、インスタンス上で SSM エージェント を最新に維持するプロセスを自動化することをお勧めします。詳細については、SSM エージェント への更新の自動化 を参照してください。SSM エージェント の更新に関する通知を受け取るには、SSM エージェント のリリースノートのページをサブスクライブします。

注記

デフォルトで SSM エージェント を含む Amazon Machine Images (AMI) では、最新バージョンの SSM エージェント を使用して更新されるまで、最大 2 週間かかります。SSM エージェント に対するさらに頻繁な自動更新を設定することをお勧めします。

更新されたバージョンの SSM エージェント は、新しい AWS リージョンにそれぞれの時間で展開されます。このため、リージョンに SSM エージェント の新しいバージョンのをデプロイしようとすると、「Unsupported on current platform (現在のプラットフォームでサポートされていません)」または「updating amazon-ssm-agent to an older version, please enable allow downgrade to proceed (amazon-ssm-agent を古いバージョンに更新しています。ダウングレードを許可してください)」というエラーが表示されることがあります。

SSM エージェント およびインスタンスメタデータサービス (IMDS)

Systems Manager は、正しく機能するために EC2 インスタンスのメタデータに依存します。Systems Manager は、インスタンスメタデータサービスバージョン 1 またはバージョン 2 (IMDSv1 と IMDSv2) を使用してインスタンスメタデータにアクセスできます。詳細については、『Linux インスタンス用 Amazon EC2 ユーザーガイド』の「インスタンスメタデータとユーザーデータ」を参照してください。

SSM エージェント 認証情報の優先順位

SSM Agent がインスタンスにインストールされている場合、Systems Manager サービスと通信するにはアクセス許可が必要です。EC2 インスタンスでは、これらのアクセス許可は、インスタンスにアタッチされたインスタンスプロファイルで提供されます。ハイブリッドインスタンスでは、SSM Agent は通常、/root/.aws/credentials (Linux) または %USERPROFILE%\.aws\credentials (Windows) にある共有認証情報ファイルから必要なアクセス許可を取得します。必要なアクセス許可は、ハイブリッドアクティベーションプロセス中にこのファイルに追加されます。

ただし、まれに、SSM エージェント がタスクを実行するためのアクセス許可をチェックする複数の場所に、インスタンスのアクセス許可が追加されてしまうことがあります。

1 つの例として、Systems Manager によって管理されるインスタンスを設定できます。EC2 インスタンスの場合、その設定にはインスタンスプロファイルのアタッチが含まれます。オンプレミスのサーバーまたは仮想マシン (VM) の場合は、認証情報はハイブリッドアクティベーションプロセスによって提供されます。しかし、そのインスタンスをデベロッパーまたはエンドユーザーのタスクにも使用し、そのインスタンス に AWS CLI をインストールすることにしました。このインストールでは、インスタンス上の認証情報ファイルに追加のアクセス許可が追加されます。

インスタンスで Systems Manager コマンドを実行すると、SSM エージェント は、インスタンスプロファイルではなく認証情報ファイルからの認証情報など、使用する想定とは異なる認証情報を使用しようとすることがあります。これは、SSM エージェント がデフォルトの資格情報プロバイダーチェーンに規定された順序で資格情報を検索するためです。

注記

Linux では、SSM エージェント はルートユーザーとして実行されます。したがって、このプロセスで SSM エージェント が探す環境変数と認証情報ファイルは、ルートユーザーのみのものです (/root/.aws/credentials)。SSM エージェント は、認証情報の検索中に、インスタンス上の他のユーザーアカウントの環境変数や認証情報ファイルを参照しません。

デフォルトのプロバイダーチェーンは、次の順序で認証情報を検索します。

  1. 環境変数 (設定されている場合) (AWS_ACCESS_KEY_ID および AWS_SECRET_ACCESS_KEY)。

  2. ハイブリッドアクティベーションや AWS CLI のインストールなどによって提供されるアクセス許可を持つ共有資格情報ファイル (Linux の場合は $HOME/.aws/credentials、Windows の場合は %USERPROFILE%\.aws\credentials)。

  3. Amazon Elastic Container Service (Amazon ECS) タスク定義または RunTask API 操作を使用するアプリケーションが存在する場合、タスクの AWS Identity and Access Management (IAM) ロール。

  4. Amazon EC2 インスタンスにアタッチされたインスタンスプロファイル。

関連情報については、次のトピックを参照してください。

ローカル ssm-user アカウントについて

SSM エージェント バージョン 2.3.50.0 以降では、エージェントは ssm-user という名前のローカルユーザーアカウントを作成し、/etc/sudoers (Linux) または、管理者グループ (Windows) に追加します。エージェントバージョン 2.3.612.0 以降では、アカウントはインストール後に SSM エージェント が最初に起動または再起動するときに作成されます。バージョン 2.3.612.0 以降では、ssm-user アカウントは、インスタンスでセッションが最初に開始されたときに作成されます。この ssm-user は、Session Manager セッションが開始されたときのデフォルトの OS ユーザーです。ssm-user を特権の少ないグループに移動するか、sudoers ファイルを変更することで、アクセス許可を変更できます。SSM エージェント がアンインストールされるときに、ssm-user アカウントはシステムから削除されません。

Windows Server では、SSM エージェント は各セッションの開始時に ssm-user アカウントの新しいパスワードの設定を処理します。Linux マネージドインスタンスで ssm-user にはパスワードは設定されていません。

SSM エージェント 2.3.612.0 バージョンから、ssm-user アカウントは、ドメインコントローラーとして使用されている Windows Server マシンに自動的には作成されません。Windows Server ドメインコントローラーで Session Manager を使用するには、ssm-user アカウントが存在しない場合は手動でアカウントを作成する必要があります。

重要

ssm-user アカウントを作成するには、インスタンスにアタッチされたインスタンスプロファイルに、必要なアクセス権限を付与する必要があります。詳細については、「Session Manager アクセス許可を持つ IAM インスタンスプロファイルを確認または作成する」を参照してください。

SSM エージェント プリインストールされた AMI

SSM エージェント は、次の Amazon マシンイメージ (AMI) にデフォルトで事前インストールされています。

  • 2016 年 11 月以降に公開された Windows Server 2008-2012 R2 AMI

  • Windows Server 2013 および 2016

  • Amazon Linux

  • Amazon Linux 2

  • Ubuntu Server 16.04、18.04、20.04

  • Amazon ECS に最適化された AMI

SSM エージェント は、Amazon Linux または Amazon Linux 2 に基づくすべての AMI にインストールされるわけではありません。たとえば、SSM エージェント は、Amazon Linux 2 に基づく EKS に最適化された AMI にはプリインストールされません。

他の Linux AMI で作成された EC2 インスタンスの場合は、SSM エージェント を手動でインストールする必要があります。ハイブリッド環境のオンプレミスサーバーまたは VM に SSM エージェント を手動でインストールする必要もあります。詳細については、「ハイブリッド環境で AWS Systems Manager を設定する」を参照してください。

GitHub の SSM エージェント

ニーズに応じて SSM エージェント を調整できるように、エージェントのソースコードが GitHub に用意されています。含める変更について、プルリクエストを送信することをお勧めします。ただし、現在アマゾン ウェブ サービスはこのソフトウェアの修正されたコピーの実行をサポートしていません。