すべてのプロダクト
Search
ドキュメントセンター

Elastic Compute Service:Session Manager CLI (ali-instance-cli) を使用してインスタンスに接続する

最終更新日:Jan 23, 2025

コンピューターでSession Manager CLIを使用して、パスワードを必要とせずにパブリックIPアドレスを持たないElastic Compute Service (ECS) インスタンスに接続できます。 SSHおよびリモートデスクトッププロトコル (RDP) と比較して、Session Managerを使用すると、より便利で安全な方法でインスタンスに接続できます。 このトピックでは、Session Manager CLIと、Session Manager CLIを使用してECSインスタンスに接続する方法について説明します。

セッションマネージャCLI

ali-instance-CLIとも呼ばれるSession Manager cliは、Alibaba Cloudが提供するコマンドラインツールです。 コンピューターにSession Manager CLIをインストールおよび設定できます。 次に、ali-instance-cliコマンドを実行して、Session Managerを使用してECSインスタンスに接続できます。

ali-instance-cliをAlibaba Cloud CLIと一緒に使用して、コマンドラインのみの操作を実行できます。 Alibaba Cloud CLIの詳細については、Alibaba Cloud CLIとは

準備

セッションマネージャの有効化

ali-instance-cliを使用する前に、Alibaba Cloudアカウントを使用してSession Managerを有効にしてください。 ECSコンソールでのみSession Managerを有効にできます。 セッションマネージャーを有効にするには、次の手順を実行します。

  1. にログインします。ECSコンソール.

  2. 左側のナビゲーションウィンドウで、インスタンス&画像 > インスタンス.

  3. 上部のナビゲーションバーの左上隅で、接続するインスタンスが存在するリソースグループとリージョンを選択します。

  4. [インスタンス] ページで、接続するインスタンスを見つけ、[操作] 列の [接続] をクリックします。

image

  1. クリック他のログオン方法を表示する.

  2. [セッションマネージャー] セクションで、[セッション管理の終了] の右側にあるスイッチをオンにし、画面の指示に従ってセッションマネージャーを有効にします。

image

image

接続するインスタンスが [実行中] 状態であるかどうかを確認します

Session Managerを使用して、[実行中] 状態のインスタンスのみに接続できます。

ECSコンソールの使用

ECSコンソールの [インスタンス] ページでインスタンスのステータスを確認できます。

インスタンスのステータスを確認する方法については、「インスタンス情報の表示」をご参照ください。

image

image

Alibaba Cloud CLIの使用

Alibaba Cloud CLIを設定した場合は、コマンドを実行してAPI操作を呼び出し、インスタンスのステータスを照会します。 API操作のパラメーターについては、「DescribeInstanceStatus」をご参照ください。

たとえば、IDがi-bp1 ****** で、中国 (杭州) リージョンにあるインスタンスのステータスを照会するには、次のコマンドを実行します。
aliyun ecs DescribeInstanceStatus --region cn-hangzhou --RegionId 'cn-hangzhou' --InstanceId.1 'i-bp1******'

インスタンスが [実行中] 状態の場合、コマンド出力の [ステータス] パラメーターの値は [実行中] です。

{
  "TotalCount": 1,
  "RequestId": "A413****-****-****-****-****611B",
  "PageSize": 1,
  "PageNumber": 1,
  "InstanceStatuses": {
    "InstanceStatus": [
      {
        "Status": "Running",
        "InstanceId": "i-bp1******"
      }
    ]
  }
}

また、DescribeInstancesなど、他の操作を呼び出してインスタンスのステータスを照会するコマンドを実行することもできます。 詳細については、「DescribeInstances」をご参照ください。

API操作の呼び出し

DescribeInstanceStatusまたはDescribeInstances操作を呼び出して、インスタンスのステータスを照会します。 詳細については、「DescribeInstanceStatus」または「DescribeInstances」をご参照ください。

Cloud Assistant Agentが接続先のインスタンスにインストールされているかどうかを確認します

Session ManagerはCloud Assistantに依存します。 次のいずれかの方法で、Cloud Assistant Agentがインスタンスにインストールされているかどうかを確認できます。

Cloud Assistant Agentは、2017年12月1日以降にAlibaba Cloudパブリックイメージから作成されたECSインスタンスにプリインストールされます。 2017 12月1日より前に作成されたECSインスタンスの場合、Cloud Assistant Agentを手動でインストールする必要があります。 詳細については、「Cloud Assistant Agentのインストール」をご参照ください。

ECSコンソールの使用

Session ManagerはCloud Assistantに基づいて実装されています。 インスタンスにCloud Assistant Agentをインストールする必要があります。 ECSコンソールの [ECS Cloud Assistant] ページで、[Cloud Assistant Agent] のステータスを確認できます。

Cloud Assistant Agentは、2017年12月1日以降にAlibaba Cloudパブリックイメージから作成されたECSインスタンスにプリインストールされます。 2017 12月1日より前に作成されたECSインスタンスの場合、Cloud Assistant Agentを手動でインストールする必要があります。 詳細については、「Cloud Assistant Agentのインストール」をご参照ください。

image

image

Cloud Assistantエージェントのステータスを表示し、異常を処理する方法については、「Cloud Assistantのステータスを表示し、異常を処理する」をご参照ください。

Alibaba Cloud CLIの使用

Alibaba Cloud CLIを設定した場合は、コマンドを実行してDescribeCloudAssistantStatus操作を呼び出し、Cloud Assistant Agentがインスタンスにインストールされており、Session Managerをサポートしているかどうかを確認します。 DescribeCloudAssistantStatus操作のパラメーターについては、「DescribeCloudAssistantStatus」をご参照ください。

たとえば、インスタンスにi-bp1 ****** のIDが割り当てられ、中国 (杭州) リージョンにある場合、次のコマンドを実行して、Cloud Assistant Agentがインスタンスにインストールされ、Session Managerをサポートしているかどうかを確認します。
aliyun ecs DescribeCloudAssistantStatus --region cn-hangzhou --RegionId 'cn-hangzhou' --InstanceId.1 'i-bp1******'

Cloud Assistant Agentがインスタンスにインストールされ、Session Managerをサポートしている場合、コマンド出力のCloudAssistantStatusおよびSupportSessionManagerパラメーターの値はtrueです。

{
  "TotalCount": 1,
  "PageSize": 1,
  "RequestId": "DB34****-****-****-****-****A749",
  "NextToken": "",
  "PageNumber": 1,
  "InstanceCloudAssistantStatusSet": {
    "InstanceCloudAssistantStatus": [
      {
        "CloudAssistantVersion": "2.2.3.857",
        "SupportSessionManager": true,
        "InstanceId": "i-bp1******",
        "InvocationCount": 4,
        "OSType": "Linux",
        "CloudAssistantStatus": "true",
        "LastHeartbeatTime": "2024-12-10T02:38:04Z",
        "LastInvokedTime": "2024-12-08T16:02:45Z",
        "ActiveTaskCount": 0
      }
    ]
  }
}

API操作の呼び出し

DescribeCloudAssistantStatus操作を呼び出して、Cloud Assistant Agentがインスタンスにインストールされているかどうかを確認します。 詳細については、「DescribeCloudAssistantStatus」をご参照ください。

セッションマネージャを使用するRAM (Resource Access Management) ユーザーの資格情報を準備する

ali-instance-cliを使用する場合、RAMユーザーのAccessKeyペアSecurity Token Service (STS) トークンを指定する必要があります。 Session Managerを使用してインスタンスに接続すると、資格情報を持つRAMユーザーがecs:StartTerminalSession権限も持っているかどうかがシステムによって検証されます。

カスタムポリシーを設定する場合、Resourceパラメーターを設定して、RAMユーザーがSession Managerを使用して接続できるECSインスタンスを指定できます。 サンプルポリシー:

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "ecs:StartTerminalSession",
      "Resource": "*"
    }
  ]
}

CredentialsURIおよびSTS Tokenパラメーターの詳細については、「AccessKeyペアの作成」および「STSとは」をご参照ください。

RAMユーザーに権限を付与する方法については、「RAMユーザーに権限を付与する」をご参照ください。

1. ali-instance-cliのインストールと設定

説明

すでにali-instance-cliをインストールして設定している場合は、この手順をスキップしてください。

1.1 ali-instance-cliのインストール

コンピューターにali-instance-cliをインストールします。 インストール操作は、オペレーティングシステムによって異なります。

Windows

ここをクリックして、Windows用のali-instance-cliをダウンロードし、コンピューター上のフォルダーに保存します。

この例では、ali-instance-cliはコンピューターのC:\Users\testフォルダーに保存されます。

macOS

macOSターミナルで次のコマンドを実行し、macOS用のali-instance-cliダウンロードします。

curl -O https://aliyun-client-assist.oss-accelerate.aliyuncs.com/session-manager/mac/ali-instance-cli

次のコマンドを実行して、ali-instance-cliに実行権限を付与します。

chmod a+x ali-instance-cli

Linux

次のコマンドを実行して、Linux用のali-instance-cliをインストールします。

curl -O https://aliyun-client-assist.oss-accelerate.aliyuncs.com/session-manager/linux/ali-instance-cli

次のコマンドを実行して、ali-instance-cliに実行権限を付与します。

chmod a+x ali-instance-cli

1.2 ali-instance-cliの設定

コンピューターでali-instance-cliを使用してインスタンスに接続する場合、AccessKeyペアなどのID認証情報を設定する必要があります。 AccessKey ペアは、AccessKey ID と AccessKey Secret で構成されます。 詳細については、このトピックの「Session Managerを使用するRAM (Resource Access Management) ユーザーの資格情報の準備」をご参照ください。

Windows

  1. [スタート] アイコンを右クリックし、[実行] を選択します。 [実行] ダイアログボックスで [cmd] と入力し、[enter] キーを押してコマンドプロンプトウィンドウを開きます。

  2. 次のコマンドを実行して、ali-instance-cli.exeが存在するディレクトリに切り替えます。 この例では、C:\Users\testディレクトリが使用されています。

    cd C:\Users\test
  3. 資格情報を設定します。 次のタイプの資格情報がサポートされています。

    AccessKey ペア

    次のコマンドを実行し、プロンプトに従ってAccess Key IdAccess Key Secret、およびRegion Idパラメーターを設定します。

    ali-instance-cli.exe configure --mode AK

    STSトークン

    次のコマンドを実行して資格情報を設定します。

    ali-instance-cli.exe configure set --mode StsToken --region "<region>" --access-key-id "<ak>"  --access-key-secret "<sk>"   --sts-token "<sts_token>"

    < region>< ak>< sk><sts_token > を実際のリージョンIDAccessKey IDAccessKey secretセキュリティトークンサービス (sts) トークンに置き換えます。

    資格情報URI

    次のコマンドを実行し、プロンプトに従ってCredentials URIおよびRegion Idパラメーターを設定します。

    ali-instance-cli.exe configure --mode=CredentialsURI

    次のコマンド出力は、資格情報が設定されていることを示します。

    image

macOSまたはLinux

  1. ali-instance-cliが存在するディレクトリに移動します。 この例では、現在のユーザーのルートディレクトリ () が使用されます。

    cd ~
  2. 資格情報を設定します。

    AccessKey ペア

    次のコマンドを実行し、プロンプトに従ってAccess Key IdAccess Key Secret、およびRegion Idパラメーターを設定します。

    ./ali-instance-cli configure --mode AK

    STSトークン

    次のコマンドを実行して資格情報を設定します。

    ./ali-instance-cli configure set --mode StsToken --region "<region>" --access-key-id "<ak>"  --access-key-secret "<sk>"   --sts-token "<sts_token>"

    < region>< ak>< sk><sts_token > を実際のリージョンIDAccessKey IDAccessKey secretsts tokenに置き換えます。

    資格情報URI

    次のコマンドを実行し、プロンプトに従ってCredentials URIおよびRegion Idパラメーターを設定します。

    ./ali-instance-cli configure --mode=CredentialsURI

    次のコマンド出力は、資格情報が設定されていることを示します。

    image

2. セッションマネージャーを使用したインスタンスへの接続

2.1 接続先のインスタンスのIDを取得します。

Session Managerを使用してインスタンスに接続する前に、インスタンスのIDを取得する必要があります。

ECSコンソールの使用

  1. にログインします。ECSコンソール.

  2. 左側のナビゲーションウィンドウで、インスタンス&画像 > インスタンス.

  3. 上部のナビゲーションバーの左上隅で、接続するインスタンスが存在するリソースグループとリージョンを選択します。

  4. [インスタンス] ページで、接続するインスタンスを見つけ、図に示すようにインスタンスIDを表示します。

image

Alibaba Cloud CLIの使用

Alibaba Cloud CLIを設定した場合は、コマンドを実行してDescribeInstances操作を呼び出し、接続先のインスタンスのIDを照会します。 DescribeInstances操作のパラメーターについては、「DescribeInstances」をご参照ください。

たとえば、中国 (杭州) リージョンにあるSessionManager-exampleという名前のインスタンスのIDを照会するには、次のコマンドを実行します。
aliyun ecs DescribeInstances --region cn-hangzhou --RegionId 'cn-hangzhou' --InstanceName 'SessionManager-example'

コマンド出力のInstanceIdパラメーターの値は、インスタンスのIDです。

image

API操作の呼び出し

DescribeInstances操作を呼び出して、接続先のインスタンスのIDを照会します。 詳細については、「DescribeInstances」をご参照ください。

2.2 ali-instance-cliでセッションマネージャーを使用してインスタンスに接続する

Windowsコンピュータ

コマンドプロンプトウィンドウを開き、ali-instance-cli.exeが存在するディレクトリに切り替えてから、コマンドを実行してインスタンスに接続します。 <instance_id> を手順2.1で取得したインスタンスIDに置き換えます。

ali-instance-cli.exe session --instance <instance_id>

たとえば、IDがi-bp1 ****** であるインスタンスに接続するには、次のコマンドを実行します。

ali-instance-cli.exe session --instance i-bp1******

次のコマンド出力は、インスタンスに接続されており、インスタンスのCLIにアクセスできることを示しています。

image

macOSまたはLinuxコンピュータ

ターミナルで、ali-instance-cli.exeが存在するディレクトリに移動し、コマンドを実行してインスタンスに接続します。 <instance_id> を手順2.1で取得したインスタンスIDに置き換えます。

./ali-instance-cli session --instance <instance_id> 

たとえば、IDがi-bp1 ****** であるインスタンスに接続するには、次のコマンドを実行します。

./ali-instance-cli.exe session --instance i-bp1******

次のコマンド出力は、インスタンスに接続されており、インスタンスのCLIにアクセスできることを示しています。

image

ali-instance-cliのその他の機能

セッションマネージャーに加えて、ali-instance-cliは次の機能を提供します。

  • ポート転送

    ali-instance-cliのポート転送機能を使用して、インスタンスのポートをコンピューターのポートにマッピングすることで、インスタンスのポート転送を設定できます。 この機能は、パブリックIPアドレスを持たないインスタンスに使用できます。 パブリックIPアドレスを持たないインスタンスのポート転送を設定すると、プロキシまたはジャンプサーバーを使用せずにインスタンスのサービスにアクセスできます。

  • 一時的なSSH公開キーの登録

    SSH経由でインスタンスに接続する場合、一時的なSSH公開鍵を登録する機能を使用して、インスタンスに一時的なSSH公開鍵を登録し、対応するSSH秘密鍵を使用してインスタンスに接続できます。

よくある質問

、ali-instance-cliコマンドを実行した後にコマンドラインが応答しない場合はどうすればよいですか? (インスタンスが実行中状態でない可能性があります)

ali-instance-cliコマンドを実行した後にコマンドラインが応答しない場合、対応するインスタンスが実行中の状態にない可能性があります。 インスタンスのステータスを確認します。 詳細については、このトピックの「接続先のインスタンスが実行中の状態であるかどうかの確認」をご参照ください。

、ali-instance-cliコマンドを実行した後にコマンドラインが応答しない場合はどうすればよいですか? (必要なポートがセキュリティグループで開いていない可能性があります)

ali-instance-cliコマンドの実行後にコマンドラインが応答しない場合、対応するインスタンスのセキュリティグループのアウトバウンドトラフィックに対して必要なポートが開いていない可能性があります。 デフォルトでは、基本セキュリティグループはアウトバウンドトラフィックのすべてのポートを開きます。 上記の問題は、基本的なセキュリティグループのアウトバウンドルールを変更するか、インスタンスにアドバンストセキュリティグループを使用する場合に発生する可能性があります。

Session Managerを使用してECSインスタンスに接続する場合、次のルールをアウトバウンドセキュリティグループに追加して、ECSインスタンスで実行されているCloud Assistant AgentがCloud Assistantサーバーに接続されていることを確認します。

SSHやリモートデスクトッププロトコル (RDP) などの接続方法と比較して、Cloud Assistant Agentは、Session ManagerサーバーへのWebSocket接続をアクティブに確立します。 セキュリティルールでは、Cloud Assistantサーバーの送信WebSocketポートのみを開く必要があります。 セッションマネージャーの仕組みについては、このトピックのセッションマネージャーの仕組みを参照してください。
重要
  • デフォルトセキュリティグループを含む基本セキュリティグループを使用する場合、すべての送信トラフィックが許可されます。 追加の設定は必要ありません

  • 高度なセキュリティグループを使用すると、すべてのアウトバウンドトラフィックが拒否されます。 関連するルールを設定する必要があります。 次の表にルールを示します。 セキュリティグループの詳細については、「基本的なセキュリティグループと高度なセキュリティグループ」をご参照ください。

セキュリティグループにルールを追加する方法については、「セキュリティグループルールの追加」をご参照ください。

Action

優先度

プロトコルタイプ

ポート範囲

権限付与オブジェクト

説明

許可

1

カスタムTCP

443

100.100.0.0/16

このポートは、Cloud Assistantサーバーへのアクセスに使用されます。

許可

1

カスタムTCP

443

100.0.0.0/8

このポートは、Cloud Assistant Agentをインストールまたは更新するときに、Cloud Assistant Agentインストールパッケージが保存されているサーバーにアクセスするために使用されます。

許可

1

カスタムUDP

53

0.0.0.0/0

このポートはドメイン名を解決するために使用されます。

Session Managerのみを使用してインスタンスに接続する場合は、セキュリティグループからSSHポート (デフォルト22) とRDPポート (デフォルト3389) を許可するインバウンドルールを削除して、ECSインスタンスのセキュリティを向上させます。

ali-instance-cliコマンドを実行した後にDeliveryTimeoutエラーが報告された場合はどうすればよいですか

次の図に示すように、ali-instance-cliコマンドを実行した後にDeliveryTimeoutエラーが報告された場合、対応するインスタンスでCloud Assistantエージェントが使用できない可能性があります。 Cloud Assistant Agentのステータスを確認します。 詳細については、このトピックの「接続先インスタンスにCloud Assistant Agentがインストールされているかどうかの確認」をご参照ください。

image

image

ali-instance-cliコマンドを実行した後にセッションマネージャーが無効になっている場合、最初にエラーメッセージが表示されますか?

ali-instance-cliコマンドを実行した後、セッションマネージャーが無効になっている場合、最初に有効にしてくださいエラーメッセージが表示されます。 ECSコンソールでSession Managerを有効にします。 詳細については、このトピックの「セッションマネージャーの有効化」をご参照ください。

Session Managerを使用してインスタンスに確立された接続が、長期間非アクティブのために自動的に閉じられた場合はどうすればよいですか?

Session Managerを使用してインスタンスに接続した後、長期間操作を実行しないと、接続は自動的に閉じられます。 デフォルトでは、接続のアイドルタイムアウト期間は3分です。 -- idle-timeoutパラメーターを使用して、カスタムのアイドルタイムアウト期間を指定できます。

たとえば、次のコマンドを実行してインスタンスに接続し、10分の非アクティブ化後に接続が自動的に終了するように設定します。

./ali-instance-cli session --instance instance-id --idle-timeout 600
説明

ali-instance-cliのバージョンが次のバージョンより前でないことを確認してください。

  • Linux: 1.2.0.48

  • Windows: 1.1.0.48

  • macOS: 1.3.0.48

ali-instance-cliに関するログを表示するにはどうすればよいですか?

ali-instance-cliを使用しているときにエラーが発生した場合は、ログを表示して問題を特定し、トラブルシューティングすることができます。

  • ali-instance-cliのログを表示します。 ali-instance-cliを使用すると、ali-instance-cliが存在するディレクトリにログディレクトリが生成されます。 例: ~/log/aliyun_ecs_session_log.2022XXXX ログディレクトリでali-instance-cliのログを表示できます。

  • オペレーティングシステムに基づいて、次のいずれかのディレクトリにあるCloud Assistant Agentのログを表示します。

    • Linux

      /usr/local/share/aliyun-assist/<Version number of Cloud Assistant Agent>/log/
    • Windows

      C:\ProgramData\aliyun\assist\<Version number of Cloud Assistant Agent>\log