スキップしてコンテンツを表示

Session Manager を使用して Amazon EC2 インスタンスに接続できない理由を知りたいです。

所要時間3分
0

AWS Systems Manager の機能である Session Manager を使用して Amazon Elastic Compute Cloud (Amazon EC2) インスタンスにアクセスできません。

解決策

注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI で発生したエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。

次の要因で、Session Manager が EC2 インスタンスに接続できなくなる可能性があります。

  • Session Manager の前提条件が満たされていない
  • AWS Identity and Access Management (IAM) アクセス許可に関する問題がある
  • Session Managerのプリファレンスに設定ミスがある
  • Session Manager プラグインに問題がある
  • 接続に関する問題がある

接続に関する問題の根本原因を特定し、エラーメッセージがないか確認するには、AWS Systems Manager Agent (SSM Agent) のログを参照してください。

Session Manager の前提条件を満たしていることを確認する

インスタンスがマネージドノードを使用しており、設定が Session Manager の前提条件に準拠していることを確認してください。詳細については、「使用している Amazon EC2 インスタンスが、Systems Manager でマネージドインスタンスとして表示されない理由を知りたいです」を参照してください。

SSM Agent バージョン 3.1.501.0 を実行している場合、ssm-cli を使用すると、インスタンスが Session Manager の前提条件を満たしているかどうかを確認できます。ssm-cli ツールでは、Systems Manager でマネージドインスタンスのリストに実行中のインスタンスが含まれていない理由を特定できます。

IAM ユーザーまたはロールに必要な IAM ポリシーがあることを確認する

EC2 インスタンスへの接続に使用する IAM ユーザーまたはロールに、Session Manager に必要な IAM ポリシーとアクセス許可があることを確認します。

Session Manager 環境設定に関する問題のトラブルシューティング

AWS KMS の設定を確認する

Session Manager で AWS Key Management Service (AWS KMS) 暗号化を有効にできます。AWS KMS を有効にしてもインスタンスが AWS KMS エンドポイントにアクセスできない場合、次のエラーメッセージが表示されます。

「Your session has been terminated for the following reasons: ----------ERROR------- Encountered error while initiating handshake.Handshake timed out.Please ensure that you have the latest version of the session manager plugin」

AWS KMS エンドポイントへの接続を確認するには、次のコマンドを実行します。

telnet kms.RegionID.amazonaws.com 443

注: RegionID を実際の AWS リージョンに置き換えます。

出力が AWS KMS エンドポイントに接続できないことを示している場合は、AWS KMS 仮想プライベートクラウド (VPC) エンドポイントへの接続を設定します。

インスタンスプロファイルまたは IAM ユーザーに、キーに対する kms:Decrypt アクセス許可がない場合、次のエラーメッセージが表示されます。

「Your session has been terminated for the following reasons: ----------ERROR------- Encountered error while initiating handshake.Fetching data key failed: Unable to retrieve data key, Error when decrypting data key AccessDeniedException: User: arn:aws:sts::account id:assumed-role/instance-profile/instance-id is not authorized to perform: kms:Decrypt on resource: arn:aws:kms:region:account id:key/key-id because no identity-based policy allows the kms:Decrypt action status code: 400」

この問題を解決するには、セッションの暗号化に使用する AWS KMS キーに kms:Decrypt アクセス許可を追加します。

Session Manager で指定した AWS KMS キーの Amazon リソースネーム (ARN) が正しくないか、存在しない場合は、次のエラーメッセージが表示されます。

「Your session has been terminated for the following reasons: Error calling KMS GenerateDataKey API: NotFoundException: Key 'arn:aws:kms:region:account:key/abcdxyz' does not exist」

この問題を解決するには、正しい AWS KMS キーの ARN を使用していることを確認してください。

Amazon S3 の設定を確認する

セッションデータは、Amazon Simple Storage Service (Amazon S3) バケットに保存できます。ログ暗号化を使用しており、インスタンスプロファイルに s3:GetEncryptionConfiguration アクセス許可がない場合、次のエラーメッセージが表示されます。

「Your session has been terminated for the following reasons: Couldn't start the session because we are unable to validate encryption on Amazon S3 bucket.Error: AccessDenied: User:abcd is not authorized to perform: s3:GetEncryptionConfiguration on resource」

この問題を解決するには、インスタンスプロファイルに s3:GetEncryptionConfiguration アクセス許可を追加します。

Session Manager で設定した S3 バケットが存在しない場合、次のエラーメッセージが表示されます。

「Your session has been terminated for the following reasons: Couldn't start the session because we are unable to validate encryption on Amazon S3 bucket.Error: NoSuchBucket: The specified bucket does not exist status code: 404」

この問題を解決するには、Session Manager で指定したバケットが正確であり、使用可能であることを確認してください。

OS の設定を確認する

Linux インスタンスで [サポートとして実行] を有効にすると、オペレーティングシステム (OS) のユーザー認証情報を使用してセッションを開始できます。ただし、OS のユーザー名が存在しない場合は、次のエラーメッセージが表示されます。

「Your session has been terminated for the following reasons: ----------ERROR------- Unable to start command: failed to start pty since RunAs user username does not exist」

この問題を解決するには、OS での正しいデフォルトユーザー名を使用しているか、カスタムユーザー名が正確であることを確認してください。

重要: OS の root ユーザーアカウントを使用して Session Manager との接続を認証することはできません。

Session Manager プラグインに関する問題のトラブルシューティング

インスタンスのルート Amazon Elastic Block Store (Amazon EBS) ボリュームに空き領域がない場合、SSM エージェントは必要なファイルを作成できません。次のエラーメッセージが表示されます。

「Your session has been terminated for the following reasons: Plugin with name Standard_Stream not found.Step name: Standard_Stream」

この問題を解決するには、Amazon EBS のボリュームサイズを増やしてからファイルシステムを拡張します。または、使用しないファイルを削除して、インスタンスのディスク容量を増やしてください。

AWS CLI を使用してインスタンスに接続する場合、Session Manager プラグインをローカルマシンにインストールする必要があります。プラグインをインストールしなかった場合、次のエラーメッセージが表示されます。

「SessionManagerPlugin is not found.Please refer to SessionManager Documentation here: http://docs.aws.amazon.com/console/systems-manager/session-manager-plugin-not-found」

接続に関する問題のトラブルシューティング

Session Manager セッションを開始すると、カーソルが点滅した空白の画面が表示される場合があります。この問題が発生した場合、ローカルマシンが Session Manager エンドポイントに接続されていない可能性があります。

AWS Session Manager エンドポイントへの接続を確認するには、使用する OS に応じて次のコマンドを実行します。

Linux:

telnet ssmmessages.RegionID.amazonaws.com 443

注: RegionID は、実際のリージョンに置き換えます。

Windows:

Test-NetConnection ssmmessages.RegionID.amazonaws.com -port 443

注: RegionID は、実際のリージョンに置き換えます。

インスタンスがプライベートサブネットにある場合は、「Amazon Virtual Private Cloud (Amazon VPC) エンドポイントを作成し、インターネットにアクセスせずに Systems Manager を使用してプライベート Amazon EC2 インスタンスを管理する方法を教えてください」を参照してください。

その他のトラブルシューティングのシナリオについては、「AWS Systems Manager Session Manager の問題をトラブルシューティングする方法を教えてください」を参照してください。

関連情報

Session Manager のトラブルシューティング

Systems Manager 経由で SSH トンネルを使用してプライベート VPC リソースにアクセスする方法を教えてください

Session Manager を使用して SSH 接続の許可とアクセス許可を制御する

セッション記録を有効または無効にする

AWS公式更新しました 5ヶ月前
コメントはありません

関連するコンテンツ