セッションを開始する - AWS Systems Manager

セッションを開始する

AWS Systems Manager コンソール、Amazon Elastic Compute Cloud (Amazon EC2) コンソール、AWS Command Line Interface (AWS CLI)、または SSH を使用してセッションを開始できます。

セッションを開始する (Systems Manager コンソール)

AWS Systems Manager コンソールを使用してアカウント内のマネージドノードとセッションを開始できます。

注記

セッションを開始する前に、Session Manager のセットアップ手順を完了していることを確認してください。詳細については、Session Manager を設定する を参照してください。

セッションを開始する方法 (Systems Manager コンソール)
  1. AWS Systems Manager コンソール (https://console.aws.amazon.com/systems-manager/) を開きます。

  2. ナビゲーションペインで、[Session Manager] を選択します。

  3. [Start session (セッションの開始)] を選択します。

  4. (オプション) [セッションの理由] フィールドにセッションの説明を入力します。

  5. [ターゲットインスタンス] の場合、接続先のマネージドノードの左側にあるオプションボタンを選択します。

    目的のノードがリストにない場合や、ノードを選択して設定エラーが表示される場合は、トラブルシューティングの手順について「Session Manager が使用できない、または使用に設定されていないマネージドノード。」を参照してください。

  6. [セッションを開始] を選択すると、セッションがすぐに開始されます。

    -または-

    セッションオプションで [次へ] を選択します。

  7. (オプション) [セッションドキュメント] では、セッションの開始時に実行するドキュメントを選択します。ドキュメントがランタイムパラメータをサポートしている場合は、各パラメータフィールドに 1 つ以上の値をカンマで区切って入力できます。

  8. [Next] を選択します。

  9. [Start session (セッションの開始)] を選択します。

接続が確立されたら、他の接続タイプと同様に、bash コマンド (Linux および macOS) または PowerShell コマンド (Windows) を実行できます。

重要

Session Manager コンソールでセッションを開始するときにユーザーがドキュメントを指定できるようにするには、次の点に注意してください。

セッションを開始する (Amazon EC2 コンソール)

Amazon Elastic Compute Cloud (Amazon EC2) コンソールを使用して、アカウント内のインスタンスとのセッションを開始できます。

注記

Systems Manager アクション (ssm:command-name) を実行する権限がないというエラーが表示された場合、管理者に問い合わせ、サポートを依頼する必要があります。管理者とは、サインイン認証情報を提供した担当者です。ポリシーを更新して、Amazon EC2 コンソールからセッションを開始できるようにしてもらいます。管理者の場合は、「Session Manager のサンプル IAM ポリシー」を参照してください。

セッションを開始するには (Amazon EC2 コンソール)
  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. ナビゲーションペインで、[インスタンス] を選択します。

  3. インスタンスを選択し、[接続] を選択します。

  4. [Connection method (接続方法)] で、[Session Manager] を選択します。

  5. [接続]を選択します。

接続が確立されたら、他の接続タイプと同様に、bash コマンド (Linux および macOS) または PowerShell コマンド (Windows) を実行できます。

セッションの開始 (AWS CLI)

まだ AWS Command Line Interface (AWS CLI) をインストールして設定していない場合は、インストールして設定します。

詳細については、「AWS CLI の最新バージョンをインストールまたは更新します。」を参照してください。

セッションを開始する前に、Session Manager のセットアップ手順を完了していることを確認してください。詳細については、Session Manager を設定する を参照してください。

AWS CLI を使用してセッションコマンドを実行するには、ローカルマシンにも Session Manager プラグインがインストールされている必要があります。詳細については、AWS CLI 用の Session Manager プラグインをインストールする を参照してください。

AWS CLI を使用してセッションを開始するには、「instance-id」をユーザー自身の情報で置き換えて、次のコマンドを実行します。

aws ssm start-session \ --target instance-id

start-session コマンドで使用できるその他のオプションについては、AWS CLI コマンドリファレンスの AWS Systems Manager のセクションの「start-session」を参照してください。

セッションの開始 (SSH)

Session Manager SSH セッションを開始する場合、SSM Agent のバージョン 2.3.672.0 以降がマネージドノードにインストールされている必要があります。

SSH 接続の要件

SSH を使用したセッション接続に関する次の要件と制限事項に注意してください。

  • ターゲットのマネージドノードは SSH 接続をサポートするように設定する必要があります。詳細については、「(オプション) Session Manager を通して SSH 接続のアクセス許可を付与して制御する」を参照してください。

  • 他のタイプのセッション接続に使用される ssm-user アカウントではなく、Privacy Enhanced Mail (PEM) 証明書に関連付けされたマネージドノードのアカウントで接続する必要があります。例えば、Linux および macOS の EC2 インスタンスでは、デフォルトのユーザーは ec2-user です。各インスタンスタイプのデフォルトのユーザーを特定する方法については、「Amazon EC2 ユーザーガイド」の「インスタンスに関する情報を取得する」を参照してください。

  • ログ記録は、ポート転送または SSH を介して接続する Session Manager セッションでは使用できません。これは、SSH はすべてのセッションデータを暗号化し、Session Manager は SSH 接続のトンネルとしてのみ機能するためです。

注記

セッションを開始する前に、Session Manager のセットアップ手順を完了していることを確認してください。詳細については、Session Manager を設定する を参照してください。

SSH を使用してセッションを開始するには、次のコマンドを実行します。各リソースプレースホルダーの例をユーザー自身の情報に置き換えます。

ssh -i /path/my-key-pair.pem username@instance-id
ヒント

SSH でセッションを開始する際、以下のコマンド形式を使用してローカルファイルをターゲットのマネージドノードにコピーできます。

scp -i /path/my-key-pair.pem /path/ExampleFile.txt username@instance-id:~

start-session コマンドで使用できるその他のオプションについては、AWS CLI コマンドリファレンスの AWS Systems Manager のセクションの「start-session」を参照してください。

セッションの開始 (ポート転送)

Session Manager ポート転送セッションを開始する場合、SSM Agent のバージョン 2.3.672.0 以降がマネージドノードにインストールされている必要があります。

注記

セッションを開始する前に、Session Manager のセットアップ手順を完了していることを確認してください。詳細については、Session Manager を設定する を参照してください。

AWS CLI を使用してセッションコマンドを実行するには、ローカルマシンにも Session Manager プラグインをインストールする必要があります。詳細については、AWS CLI 用の Session Manager プラグインをインストールする を参照してください。

オペレーティングシステムおよびコマンドラインツールによっては、引用符の配置が異なり、エスケープ文字が必要になる場合があります。

ポート転送セッションを開始するには、CLI から次のコマンドを実行します。各リソースプレースホルダーの例をユーザー自身の情報に置き換えます。

Linux & macOS
aws ssm start-session \ --target instance-id \ --document-name AWS-StartPortForwardingSession \ --parameters '{"portNumber":["80"], "localPortNumber":["56789"]}'
Windows
aws ssm start-session ^ --target instance-id ^ --document-name AWS-StartPortForwardingSession ^ --parameters portNumber="3389",localPortNumber="56789"

portNumber は、セッショントラフィックをリダイレクトするマネージドノードのリモートポートです。例えば、リモートデスクトッププロトコル (RDP) を使用した Windows ノードへの接続にポート 3389 を指定する場合があります。portNumber パラメータを指定しない場合、Session Manager はデフォルトの値として 80 を使用します。

localPortNumber は、トラフィックが開始されるローカルコンピュータのポート (56789 など) です。この値は、クライアントを使用してマネージドノードに接続する際に入力します。例えば、localhost:56789 と指定します。

start-session コマンドで使用できるその他のオプションについては、AWS CLI コマンドリファレンスの AWS Systems Manager のセクションの「start-session」を参照してください。

ポート転送セッションの詳細については、AWS ニュースブログの「AWS Systems ManagerSession Manager を使用したポート転送」を参照してください。

セッションの開始 (リモートホストへのポート転送)

リモートホストへの Session Manager ポート転送セッションを開始するには、SSM Agent のバージョン 3.1.1374.0 以降がマネージドノードにインストールされている必要があります。リモートホストは Systems Manager によって管理される必要はありません。

注記

セッションを開始する前に、Session Manager のセットアップ手順を完了していることを確認してください。詳細については、Session Manager を設定する を参照してください。

AWS CLI を使用してセッションコマンドを実行するには、ローカルマシンにも Session Manager プラグインをインストールする必要があります。詳細については、AWS CLI 用の Session Manager プラグインをインストールする を参照してください。

オペレーティングシステムおよびコマンドラインツールによっては、引用符の配置が異なり、エスケープ文字が必要になる場合があります。

ポート転送セッションを開始するには、AWS CLI から次のコマンドを実行します。各リソースプレースホルダーの例をユーザー自身の情報に置き換えます。

Linux & macOS
aws ssm start-session \ --target instance-id \ --document-name AWS-StartPortForwardingSessionToRemoteHost \ --parameters '{"host":["mydb.example.us-east-2.rds.amazonaws.com"],"portNumber":["3306"], "localPortNumber":["3306"]}'
Windows
aws ssm start-session ^ --target instance-id ^ --document-name AWS-StartPortForwardingSessionToRemoteHost ^ --parameters host="mydb.example.us-east-2.rds.amazonaws.com",portNumber="3306",localPortNumber="3306"

host の値は、接続するリモートホストのホスト名または IP アドレスを表します。マネージドノードとリモートホスト間の一般的な接続および名前解決の要件が引き続き適用されます。

portNumber は、セッショントラフィックをリダイレクトするマネージドノードのリモートポートです。例えば、リモートデスクトッププロトコル (RDP) を使用した Windows ノードへの接続にポート 3389 を指定する場合があります。portNumber パラメータを指定しない場合、Session Manager はデフォルトの値として 80 を使用します。

localPortNumber は、トラフィックが開始されるローカルコンピュータのポート (56789 など) です。この値は、クライアントを使用してマネージドノードに接続する際に入力します。例えば、localhost:56789 と指定します。

start-session コマンドで使用できるその他のオプションについては、AWS CLI コマンドリファレンスの AWS Systems Manager のセクションの「start-session」を参照してください。

Amazon ECS タスクを使用してセッションを開始する

Session Manager は、Amazon Elastic Container Service (Amazon ECS) クラスター内のタスクによるポート転送セッションの開始をサポートします。それを実行するには、IAM 内のタスクロールを更新して以下のアクセス許可を含めます。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssmmessages:CreateControlChannel", "ssmmessages:CreateDataChannel", "ssmmessages:OpenControlChannel", "ssmmessages:OpenDataChannel" ], "Resource": "*" } ] }

Amazon ECS タスクを使用してポート転送セッションを開始するには、AWS CLI から次のコマンドを実行します。各リソースプレースホルダーの例をユーザー自身の情報に置き換えます。

注記

target パラメータから < and > 記号を削除します。これらの記号は読者への説明のみを目的としています。

Linux & macOS
aws ssm start-session \ --target ecs:<ECS_cluster_name>_<ECS_container_ID>_<container_runtime_ID> \ --document-name AWS-StartPortForwardingSessionToRemoteHost \ --parameters '{"host":["URL"],"portNumber":["port_number"], "localPortNumber":["port_number"]}'
Windows
aws ssm start-session ^ --target ecs:<ECS_cluster_name>_<ECS_container_ID>_<container_runtime_ID> ^ --document-name AWS-StartPortForwardingSessionToRemoteHost ^ --parameters host="URL",portNumber="port_number",localPortNumber="port_number"

セッションの開始 (対話形式と非対話形式のコマンド)

セッションを開始する前に、Session Manager のセットアップ手順を完了していることを確認してください。詳細については、Session Manager を設定する を参照してください。

AWS CLI を使用してセッションコマンドを実行するには、ローカルマシンにも Session Manager プラグインがインストールされている必要があります。詳細については、AWS CLI 用の Session Manager プラグインをインストールする を参照してください。

インタラクティブ・コマンドセッションを開始する場合、以下のコマンドを実行します。各リソースプレースホルダーの例をユーザー自身の情報に置き換えます。

Linux & macOS
aws ssm start-session \ --target instance-id \ --document-name CustomCommandSessionDocument \ --parameters '{"logpath":["/var/log/amazon/ssm/amazon-ssm-agent.log"]}'
Windows
aws ssm start-session ^ --target instance-id ^ --document-name CustomCommandSessionDocument ^ --parameters logpath="/var/log/amazon/ssm/amazon-ssm-agent.log"

start-session コマンドで使用できるその他のオプションについては、AWS CLI コマンドリファレンスの AWS Systems Manager のセクションの「start-session」を参照してください。