使用 AWS Systems Manager 远程管理容器实例
您可以使用 AWS Systems Manager (Systems Manager) 中的 Run Command 功能安全地远程管理 Amazon ECS 容器实例的配置。Run Command 提供了一种无需在本地登录实例即可执行常见管理任务的简单方法。您可以通过同时对多个容器实例执行命令来管理集群中的配置更改。Run Command 将报告每个命令的状态和结果。
下面是您可使用 Run Command 执行的任务类型的一些示例:
-
安装或卸载程序包。
-
执行安全更新。
-
清除 Docker 映像。
-
停止或启动服务。
-
查看系统资源。
-
查看日志文件。
-
执行文件操作。
有关 Run Command 的更多信息,请参阅 AWS Systems Manager 用户指南中的 AWS Systems ManagerRun Command。
Run Command IAM policy
您必须先附加 ecsInstanceRole
访问 Systems Manager API 的 IAM policy,然后才能利用 Run Command 将命令发送到您的容器实例。以下过程介绍如何将 Systems Manager 托管的策略附加到您的容器实例角色,以便通过此角色启动的实例可使用 Run Command。
将 Systems Manager 策略附加到 ecsInstanceRole
通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/
。 -
在导航窗格中,选择 Roles(角色)。
-
选择
ecsInstanceRole
。如果角色不存在,请按照 Amazon ECS 容器实例 IAM 角色中的过程操作来创建角色。 -
选择 Permissions 选项卡。
-
选择 Attach policies(附上策略)。
-
要缩小要附加的可用策略的范围,请为筛选条件键入
SSM
。 -
在策略列表中,选中 AmazonSSMManagedInstanceCore 旁边的复选框。使用此策略可提供使用 Systems Manager 所需的最低权限。
有关可以为 Systems Manager 操作提供的其他策略信息,请参阅 AWS Systems Manager 用户指南中的为 Systems Manager 创建 IAM 实例配置文件。
-
选择 Attach Policy(附加策略)。
使用 Run Command
将 Systems Manager 托管策略附加到您的 ecsInstanceRole
并验证容器实例上是否安装了 AWS Systems Manager 代理 (SSM Agent) 后,可以开始使用 Run Command 向容器实例发送命令。有关在实例上运行命令和 shell 脚本以及查看结果输出的信息,请参见 AWS Systems Manager用户手册中的使用 Systems Manager Run Command 运行命令和 Run Command 演练 。
示例:使用 Run Command 更新容器实例软件
Run Command 的常用案例是,一次性更新整个容器实例队列中的实例软件。
-
验证您的容器实例上是否安装了 SSM Agent。有关更多信息,请参阅在 Linux EC2 实例上手动安装 SSM Agent。
-
在 https://console.aws.amazon.com/systems-manager
处打开 Systems Manager 控制台。 -
在左侧导航窗格中,选择 Run Command,然后选择运行命令。
-
对于 Command document (命令文档),选择
AWS-RunShellScript
。 -
在 Commands 部分中,输入要发送到容器实例的命令。在本示例中,使用以下命令更新实例软件:
$
yum update -y
-
在目标实例部分中,选中要运行更新命令的容器实例旁的复选框。
-
选择 Run 以将命令发送到指定实例。
-
(可选)选择刷新图标以监控命令状态。
-
(可选)在目标和输出中,选择实例 ID 旁边的按钮,然后选择查看输出。