ECS Exec で Fargate タスクに入る
Fargate のタスクにシェルで入りたいとき、ECS Exec を使うと踏み台も SSH も要りません。 TTP は ECS Exec が有効で、エージェントが動いているタスクだけを一覧に出すので、 クラスタ名やタスク ID をコンソールで探さずに済みます。
Tera Term とは独立した機能です。 ECS Exec は SSM の仕組みを使うため、Tera Term も sshd も不要です。使わない場合、追加のインストールも設定も発生しません。
必要なもの
-
Session Manager プラグイン(クライアント側)
EC2 の SSM 接続と同じく、クライアントに必要なのはこれだけです。AWS CLI v2 は不要です。導入後は TTP を再起動してください。
-
enableExecuteCommandを有効にしたタスクサービスまたは
run-taskの実行時にenableExecuteCommandを有効にします。起動済みのタスクには後から有効化できないため、設定変更後はタスクを入れ替える必要があります。 -
タスクロールに
ssmmessagesの権限タスク側にも権限が要ります。ここが抜けていると、一覧には出るのに接続できない、という状態になります。
-
コンテナ内にシェルがあること
/bin/shが存在しないイメージ(distroless など)では、ECS Exec 自体が使えません。
一覧に出る条件
TTP は ecs:DescribeTasks の結果から、ExecuteCommandAgent が RUNNING のタスクだけを表示します。エージェントが STOPPED のタスクや、Exec を有効にしていないタスクは一覧に出ません。
手順
-
「AWS 設定...」で認証情報とリージョンを入力
「接続テスト」で疎通を確認します。MFA を必須にしている IAM ユーザーのみ「MFA を使用する」を有効にします。
-
「AWS から接続...」(Ctrl+Shift+A)を開く
EC2 インスタンスと ECS タスクが同じ一覧に表示されます。
-
タスクを選んでダブルクリック
コンテナ内のシェルが開きます。タスクに複数コンテナがある場合は、対象のコンテナが選ばれます。
必要な IAM 権限
操作する側(IAM ユーザー)
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ecs:ListClusters",
"ecs:ListTasks",
"ecs:DescribeTasks",
"ecs:ExecuteCommand",
"ssm:StartSession",
"ssmmessages:CreateControlChannel",
"ssmmessages:CreateDataChannel",
"ssmmessages:OpenControlChannel",
"ssmmessages:OpenDataChannel"
],
"Resource": "*"
}
]
}
タスク側(タスクロール)
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ssmmessages:CreateControlChannel",
"ssmmessages:CreateDataChannel",
"ssmmessages:OpenControlChannel",
"ssmmessages:OpenDataChannel"
],
"Resource": "*"
}
]
}
セッションを KMS で暗号化する設定にしている場合は、操作する側とタスク側の両方に kms:Decrypt などの権限が必要になります。
うまくいかないとき
| 症状 | 確認すること |
|---|---|
| 一覧にタスクが出ない | リージョン、enableExecuteCommand の有効化、ExecuteCommandAgent の状態(RUNNING か)。 |
| Exec を有効にしたのに反映されない | 起動済みタスクには後から有効化できません。タスクを入れ替えてください。 |
| 接続時にエラーになる | タスクロールの ssmmessages:*。ここが最も見落とされます。 |
| シェルが起動しない | イメージに /bin/sh が含まれているか。 |
注意事項
- ECS Exec は万能の踏み台ではありません。タスクが停止するとセッションも切れます
- 実行したコマンドの監査ログを残したい場合は、ECS Exec のセッションログ(S3 / CloudWatch Logs)を別途有効にしてください。TTP はその設定を行いません
- AWS のアクセスキーは
ttp_data/aws.encに暗号化して保存されます
最終更新: 2026年11月14日