What are AWS SSM and SSM Agent, how they work?
Table of Contents
AWS SSM 和 SSM Agent 是什么?
AWS Systems Manager (SSM)
AWS Systems Manager 是一项服务,提供了一个集中式界面,用于管理 AWS 资源(如 EC2 实例、RDS 数据库)和本地服务器。它可以帮助管理员自动化常见管理任务,例如软件更新、配置管理和系统监控。
SSM Agent
SSM Agent 是安装在 EC2 实例或本地服务器上的一个轻量级客户端软件,用于接收来自 AWS Systems Manager 的命令并执行它们,例如运行脚本、安装更新、收集日志等。
AWS SSM 的用途
-
远程管理:
- 允许通过 AWS 控制台或 CLI 远程管理 EC2 实例或本地服务器,而无需手动登录。
-
自动化任务:
- 自动化任务,如补丁管理、软件分发和定期备份。
-
运行命令:
- 在多个实例上同时执行脚本或命令。
-
配置管理:
- 使用参数存储管理配置数据和密钥。
-
合规性和审计:
- 实现配置合规性检查和审计,确保系统配置符合安全标准。
SSM Agent 的用途
-
接收和执行命令:
- 从 Systems Manager 服务接收命令,如“运行脚本”或“安装软件”,并在本地执行。
-
与 Systems Manager 集成:
- 通过 Agent,SSM 服务可以与 EC2 实例或本地服务器无缝交互。
-
参数存储:
- 支持从 AWS SSM 参数存储安全获取配置值和密钥。
-
日志收集:
- 将实例日志推送到 AWS CloudWatch 或 S3 以供分析。
AWS SSM 和 SSM Agent 的工作原理
1. 安装和配置 SSM Agent
- SSM Agent 默认预安装在 Amazon Linux、Ubuntu、Windows Server 和部分 AWS Marketplace AMI 中。
- 对于其他操作系统,可以手动安装。
2. 实例与 SSM 服务的通信
-
实例配置文件(IAM Role):
- EC2 实例需要一个 IAM Role,其中包含
AmazonSSMManagedInstanceCore
权限,允许 SSM Agent 向 AWS Systems Manager 服务注册并发送请求。
- EC2 实例需要一个 IAM Role,其中包含
-
通信方式:
- SSM Agent 使用 HTTPS 通信,确保安全传输。
- Agent 会定期轮询 AWS Systems Manager 服务,检查是否有命令需要执行。
3. 命令执行流程
- 管理员通过 AWS 控制台、CLI 或 SDK 发出命令。
- SSM 服务将命令发送到目标实例的 SSM Agent。
- SSM Agent 执行命令并返回结果给 SSM 服务。
- 管理员可通过 SSM 控制台查看命令执行结果。
4. 参数存储的使用
- 系统管理员可以在 AWS SSM 参数存储中存储配置数据或敏感信息(如数据库密码)。
- SSM Agent 可以通过安全 API 获取这些参数,并在本地应用。
示例:AWS SSM 执行命令
场景:在多台 EC2 实例上安装 NGINX
-
Step 1: 设置 IAM Role
- 确保实例附加的 IAM Role 含有
AmazonSSMManagedInstanceCore
权限。
- 确保实例附加的 IAM Role 含有
-
Step 2: 发出命令
使用 AWS CLI 发出命令:aws ssm send-command \ --document-name "AWS-RunShellScript" \ --targets "Key=tag:Environment,Values=Production" \ --parameters 'commands=["sudo yum install -y nginx", "sudo systemctl start nginx"]' \ --region us-east-1
-
Step 3: 检查状态
在 Systems Manager 控制台查看命令状态,确保所有实例都成功执行了命令。
示例:SSM 参数存储
场景:安全存储数据库密码
-
Step 1: 存储密码
使用 CLI 将密码存储到 SSM 参数存储:aws ssm put-parameter \ --name "DBPassword" \ --value "MySecurePassword123" \ --type "SecureString"
-
Step 2: 从实例访问密码
在目标实例上,运行以下命令以获取密码:aws ssm get-parameter --name "DBPassword" --with-decryption
AWS SSM 和 SSM Agent 的优势
-
无需手动登录:
- 不需要暴露 SSH/RDP 端口即可管理实例,减少安全风险。
-
集中化管理:
- 管理分布在不同区域和账户中的实例。
-
自动化:
- 自动执行重复性任务,节省时间。
-
高安全性:
- 使用参数存储加密敏感信息。
- 与 IAM Role 集成,提供最小权限访问。
-
跨平台支持:
- 支持多种操作系统和本地数据中心服务器。
总结
AWS SSM 是一种强大的管理工具,用于简化 AWS 环境的操作、监控和配置,而 SSM Agent 是它的客户端组件,负责在实例或服务器上接收和执行命令。二者结合提供了灵活、自动化且安全的资源管理方式。
Comments |0|
Category: 似水流年