如何通过ECS Exec连接Fargate容器?已尝试方案仍报错
解决Fargate容器Execute Command连接失败的问题
针对你遇到的InvalidParameterException错误,以下是逐一排查的解决步骤:
确保任务是在开启Execute Command后启动的
Fargate任务是不可变的,修改任务定义中的enable_execute_command = true后,必须重新部署任务(更新服务或启动新任务实例),旧任务不会自动应用新配置。你当前使用的任务ID07168b-mytaskid-a86f54b362e3可能是修改配置前启动的,尝试使用新启动的任务ID重试。检查任务执行角色的权限
任务执行角色需要具备SSM Session Manager相关权限,才能支持Execute Command功能:- 进入IAM控制台,找到你的Fargate任务执行角色
- 附加托管策略
AmazonSSMManagedInstanceCore,该策略包含了所需的ssmmessages:和ec2messages:相关权限 - 若使用自定义策略,需确保包含以下权限语句:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssmmessages:CreateControlChannel", "ssmmessages:CreateDataChannel", "ssmmessages:OpenControlChannel", "ssmmessages:OpenDataChannel" ], "Resource": "*" } ] }
验证VPC终端节点配置
你已添加VPC终端节点,需确认以下配置是否正确:- 必须创建的终端节点:
com.amazonaws.<region>.ssmmessages(核心需求),若使用私有子网还需com.amazonaws.<region>.ec2messages - 终端节点的安全组需允许入站TCP 443流量(来自任务所在安全组),同时允许出站TCP 443流量
- 终端节点需关联到任务所在子网的路由表,确保任务能通过私网访问终端节点
- 必须创建的终端节点:
检查容器镜像的SSM Agent状态
- 若使用AWS官方ECS优化镜像,已默认预装并启动SSM Agent,无需额外操作
- 若使用自定义镜像,需手动安装SSM Agent并确保其运行:
- Amazon Linux 2:执行
yum install -y amazon-ssm-agent && systemctl start amazon-ssm-agent && systemctl enable amazon-ssm-agent - Ubuntu:执行
apt-get update && apt-get install -y amazon-ssm-agent && systemctl start amazon-ssm-agent && systemctl enable amazon-ssm-agent
- Amazon Linux 2:执行
确认任务网络配置
- 任务所在安全组需允许出站TCP 443流量(访问VPC终端节点或公网)
- 若未使用VPC终端节点,任务需配置公网IP(或通过NAT网关访问公网),确保能连接SSM服务
更新AWS CLI和Session Manager插件
旧版本可能存在兼容性问题:- 更新AWS CLI:执行
aws configure update(或根据系统重新安装最新版) - 检查Session Manager插件版本:执行
session-manager-plugin --version,若版本过低,下载安装最新版
- 更新AWS CLI:执行
内容的提问来源于stack exchange,提问作者FredyK
相关产品推荐
相关产品推荐

