Session Manager のトラブルシューティング
以下の情報を参考にして、AWS Systems Manager Session Manager に関する問題のトラブルシューティングを行います。
トピック
セッションを開始するアクセス許可がありません
問題: セッションを開始しようとしましたが、システムから必要なアクセス権限がないと通知されました。
-
解決策: システム管理者から、Session Manager セッションを開始するための AWS Identity and Access Management (IAM) ポリシーのアクセス許可が与えられていません。詳細については、「インスタンスへのユーザーセッションアクセスの制御」を参照してください。
セッション設定を変更するためのアクセス許可がありません
問題: 組織のグローバルなセッション設定を更新しようとしましたが、システムから必要なアクセス権限がないと通知されました。
-
解決策: システム管理者から、Session Manager を設定するための IAM ポリシーのアクセス許可が与えられていません。詳細については、Session Manager の設定を更新するためのユーザーアクセス許可を付与または拒否する を参照してください。
Session Manager が使用できない、または使用に設定されていないマネージドノード。
問題 1: セッションの開始のコンソールページでセッションを開始したくても、あるマネージドノードがリストにありません。
-
解決策 A: 接続したいマネージドノードが AWS Systems Manager 用に設定されていない可能性があります。詳細については、「AWS Systems Manager のセットアップ」を参照してください。
注記 IAM インスタンスプロファイルを添付する際に AWS Systems Manager SSM Agent がマネージドノード上ですでに実行されている場合、セッションの開始コンソールページにインスタンスが表示される前に、エージェントを再起動しなければならない場合があります。
-
解決策 B: マネージドノードの SSM Agent に適用したプロキシ設定が正しくない可能性があります。プロキシ設定が正しくない場合、マネージドノードは必要なサービスエンドポイントに到達できないか、またはノードがに異なるオペレーティングシステムとして Systems Manager にレポートする可能性があります。詳細については、「SSM Agent を設定してプロキシを使用する (Linux)」および「SSM Agent が Windows Server インスタンス用にプロキシを使用するように設定する」を参照してください。
問題 2: 接続したいマネージドノードがセッションの開始コンソールページのリストにありますが、「選択したインスタンスは Session Manager を使用するように構成されていません」というページが表示されます。
-
解決策 A: マネージドノードは Systems Manager サービスで使用されるように設定されていますが、ノードに添付された IAM インスタンスプロファイルに Session Manager 機能の許可が含まれていない可能性があります。詳細については、「Session Manager アクセス権限を使用し、IAM インスタンスプロファイルロールを確認するか作成する」を参照してください。
-
解決策 B: マネージドノードは、Session Manager をサポートする SSM Agent のバージョンを実行していません。ノードの SSM Agent をバージョン 2.3.68.0 以降に更新します。
オペレーティングシステムに応じて Windows Server 用 EC2 インスタンスに手動で SSM Agent をインストールする、Linux 用 EC2 インスタンスに手動で SSM Agent をインストールする、macOS 用 EC2 インスタンスで SSM Agent を使用する の手順にしたがって、マネージドノードの SSM Agent を手動で更新します。
または、Run Command ドキュメントの
AWS-UpdateSSMAgent
を使用して、1 つ以上のマネージドノードのエージェントバージョンを一度に更新します。詳細については、Run Command を使用して SSM Agent を更新する を参照してください。ヒント エージェントを常に最新の状態に保つには、次のいずれかの方法で定義した自動スケジュールを使用して、SSM Agent を最新バージョンにアップデートすることをお勧めします。
-
State Manager 関連付けの一部として
AWS-UpdateSSMAgent
を実行します。詳細については、チュートリアル: SSM Agent を自動的に更新する (CLI) を参照してください。 -
メンテナンスウィンドウの一部として
AWS-UpdateSSMAgent
を実行します。メンテナンスウィンドウの使用については、「メンテナンスウィンドウの使用 (コンソール)」と「チュートリアル: メンテナンスウィンドウを作成および設定するには (AWS CLI)」を参照してください。
-
-
解決方法 C: マネージドノードは必要なサービスエンドポイントに到達できません。AWS PrivateLink によるインターフェイス・エンドポイントを使用して Systems Manager エンドポイントに接続することにより、マネージドノードのセキュリティ体制を改善できます。インターフェイス・エンドポイントを使用する代わりに、マネージドノードでアウトバウンド・インターネットアクセスを有効にする方法があります。詳細については、「PrivateLink を使用して Session Manager の VPC エンドポイントをセットアップする」を参照してください。
-
解決策 D: マネージドノードの使用可能な CPU またはメモリリソースが制限されています。マネージドノードが機能していても、ノードに十分な使用可能なリソースがなければセッションを確立できません。詳細については、「接続できないインスタンスのトラブルシューティング」を参照してください。
Session Manager プラグインが見つからない
AWS CLI を使用してセッションコマンドを実行するには、ローカルマシンにも Session Manager プラグインがインストールされている必要があります。詳細については、(オプション) AWS CLI 用の Session Manager プラグインをインストールする を参照してください。
Session Manager プラグインがコマンドラインパスに自動的に追加されませんでした (Windows)
Session Manager プラグインを Windows にインストールする場合、オペレーティングシステムの PATH
環境変数に session-manager-plugin
実行可能ファイルが自動的に追加されます。Session Manager プラグインが正しくインストールされているか (aws ssm start-session --target
) 確認して、コマンド実行後に失敗した場合は、次の手順を使用して手動で設定する必要があります。instance-id
PATH 変数を変更するには (Windows)
-
Windows キーを押し、「
environment variables
」と入力します。 -
[Edit environment variables for your account] を選択します。
-
[PATH] を選択して、[Edit] を選択します。
-
次の例に示すように、セミコロンで区切って [Variable value (変数値)] フィールドにパスを追加します:
;C:\existing\path
C:\new\path
次の例に示すように、
は既にフィールドにある値を表します。C:\existing\path
は追加するパスを表します。C:\new\path
-
64 ビットコンピュータ:
C:\Program Files\Amazon\SessionManagerPlugin\bin\
-
32 ビットコンピュータ:
C:\Program Files (x86)\Amazon\SessionManagerPlugin\bin\
-
-
[OK] を 2 回選択して、新しい設定を適用します。
-
実行中のコマンドプロンプトを閉じ、もう一度開きます。
Session Manager プラグインが応答しなくなる
ローカルマシンにウイルス対策ソフトウェアがインストールされている場合、ポート転送セッション中にトラフィックの転送が停止することがあります。場合によっては、ウイルス対策ソフトウェアが Session Manager プラグインがプロセスのデッドロックを引き起こします。この問題を解決するには、ウィルス対策ソフトウェアから Session Manager プラグインを許可するか除外します。Session Manager プラグインのデフォルトのインストールパスの詳細については、「(オプション) AWS CLI 用の Session Manager プラグインをインストールする」を参照してください。
TargetNotConnected
問題: セッションを開始しようとしましたが、システムは「StartSession オペレーションの呼び出し時にエラー (TargetNotConnected) が発生しました。InstanceID
が接続されていません」というエラーメッセージを返します。
-
解決策 A: このエラーは、セッションに指定されたターゲットのマネージドノードが Session Manager で使用するように完全に設定されていない場合に返されます。詳細については、Session Manager のセットアップ を参照してください。
-
解決策 B: このエラーは、別の AWS アカウント または AWS リージョン にあるマネージドノードでセッションを開始しようとした場合も返されます。
セッション開始後に空白の画面が表示される
問題: セッションを開始すると、Session Manager に空白の画面が表示される。
-
解決策 A: この問題は、マネージドノードのルートボリュームがいっぱいになったときに発生する可能性があります。ディスク容量不足のため、ノードの SSM Agent が動作を停止します。この問題を解決するには、Amazon CloudWatch を使用して、オペレーティングシステムからメトリクスとログを収集します。詳細については、「Amazon EC2 Linux インスタンスのメモリとディスクのメトリクスのモニタリング」または「Amazon EC2 Windows インスタンスのメモリとディスクのメトリクスのモニタリング」を参照してください。
-
解決策 B: エンドポイントとリージョンのペアが一致しないリンクを使用してコンソールにアクセスした場合、空白の画面が表示されることがあります。例えば、次のコンソール URL では、
us-west-2
は指定されたエンドポイントですが、us-west-1
は指定された AWS リージョン です。https://us-west-2.console.aws.amazon.com/systems-manager/session-manager/sessions?region=us-west-1
-
解決策 C: VPC エンドポイントを使用してマネージドノードが Systems Manager に接続し、Session Manager の設定に基づいてセッション出力が Amazon S3 バケットまたは Amazon CloudWatch Logs のロググループに書き込みますが、
s3
ゲートウェイ・エンドポイントまたはlogs
インターフェイス・エンドポイントは VPC に存在しません。マネージドノードが VPC エンドポイントを使用して Systems Manager に接続し、Session Manager の設定に基づいてセッション出力が Amazon S3 バケット に書き込まれる場合、com.amazonaws.
形式のregion
.s3s3
エンドポイントが必要です。マネージドノードが VPC エンドポイントを使用して Systems Manager に接続し、Session Manager の設定に基づいてセッション出力が CloudWatch Logs のロググループに書き込まれる場合、com.amazonaws.
形式のregion
.logslogs
エンドポイントが必要です。詳細については、「Systems Manager 用の VPC エンドポイントを作成する」を参照してください。 -
解決策 D: セッション設定で指定したロググループまたは Amazon S3 バケットが削除されました。この問題を解決するには、有効なロググループまたは S3 バケットを使用してセッション設定を更新します。
-
解決策 E: セッション設定で指定したロググループまたは Amazon S3 バケットは暗号化されませんが、
cloudWatchEncryptionEnabled
またはs3EncryptionEnabled
の入力をtrue
に設定しています。この問題を解決するには、暗号化されたロググループまたは Amazon S3 バケットを使用してセッション設定を更新するか、cloudWatchEncryptionEnabled
またはs3EncryptionEnabled
入力をfalse
に設定します。このシナリオは、コマンドラインツールを使用してセッション設定を作成する顧客にのみ適用されます。
長時間実行しているセッション中にマネージドノードが応答しなくなる
問題: 長時間実行しているセッション中にマネージドノードが応答しなくなるか、またはクラッシュします。
解決策: Session Manager の SSM Agent ログ保持期間を減らします。
セッションの SSM Agent ログの保持期間を短縮するには
-
Linux 向けの
amazon-ssm-agent.json.template
ディレクトリ、または Windows 向けの/etc/amazon/ssm/
内でC:\Program Files\Amazon\SSM
を検索します。 -
amazon-ssm-agent.json.template
の内容を、amazon-ssm-agent.json
という名前の同じディレクトリ内の新しいファイルにコピーします。 -
SessionLogsRetentionDurationHours
プロパティのSSM
値のデフォルト値を小さくして、ファイルを保存します。 -
[SSM Agent] を再起動する