コンピューターで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を有効にできます。 セッションマネージャーを有効にするには、次の手順を実行します。
にログインします。ECSコンソール. 左側のナビゲーションウィンドウで、. 上部のナビゲーションバーの左上隅で、接続するインスタンスが存在するリソースグループとリージョンを選択します。 [インスタンス] ページで、接続するインスタンスを見つけ、[操作] 列の [接続] をクリックします。
| 
|
クリック他のログオン方法を表示する. [セッションマネージャー] セクションで、[セッション管理の終了] の右側にあるスイッチをオンにし、画面の指示に従ってセッションマネージャーを有効にします。
| 

|
接続するインスタンスが [実行中] 状態であるかどうかを確認します
Session Managerを使用して、[実行中] 状態のインスタンスのみに接続できます。
ECSコンソールの使用
ECSコンソールの [インスタンス] ページでインスタンスのステータスを確認できます。
インスタンスのステータスを確認する方法については、「インスタンス情報の表示」をご参照ください。
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」をご参照ください。
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のインストール」をご参照ください。
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
[スタート] アイコンを右クリックし、[実行] を選択します。 [実行] ダイアログボックスで [cmd] と入力し、[enter]
キーを押してコマンドプロンプトウィンドウを開きます。
次のコマンドを実行して、ali-instance-cli.exeが存在するディレクトリに切り替えます。 この例では、C:\Users\test
ディレクトリが使用されています。
cd C:\Users\test
資格情報を設定します。 次のタイプの資格情報がサポートされています。
AccessKey ペア
次のコマンドを実行し、プロンプトに従ってAccess Key Id、Access 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 >
を実際のリージョンID、AccessKey ID、AccessKey secret、セキュリティトークンサービス (sts) トークン
に置き換えます。
資格情報URI
次のコマンドを実行し、プロンプトに従ってCredentials URIおよびRegion Idパラメーターを設定します。
ali-instance-cli.exe configure --mode=CredentialsURI
次のコマンド出力は、資格情報が設定されていることを示します。

macOSまたはLinux
ali-instance-cliが存在するディレクトリに移動します。 この例では、現在のユーザーのルートディレクトリ (〜
) が使用されます。
cd ~
資格情報を設定します。
AccessKey ペア
次のコマンドを実行し、プロンプトに従ってAccess Key Id、Access 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 >
を実際のリージョンID、AccessKey ID、AccessKey secret、sts token
に置き換えます。
資格情報URI
次のコマンドを実行し、プロンプトに従ってCredentials URIおよびRegion Idパラメーターを設定します。
./ali-instance-cli configure --mode=CredentialsURI
次のコマンド出力は、資格情報が設定されていることを示します。

2. セッションマネージャーを使用したインスタンスへの接続
2.1 接続先のインスタンスのIDを取得します。
Session Managerを使用してインスタンスに接続する前に、インスタンスのIDを取得する必要があります。
ECSコンソールの使用
にログインします。ECSコンソール. 左側のナビゲーションウィンドウで、. 上部のナビゲーションバーの左上隅で、接続するインスタンスが存在するリソースグループとリージョンを選択します。 [インスタンス] ページで、接続するインスタンスを見つけ、図に示すようにインスタンスIDを表示します。
| 
|
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です。

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にアクセスできることを示しています。

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にアクセスできることを示しています。

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がインストールされているかどうかの確認」をご参照ください。


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のログを表示します。