目录

SSM 代理 凭证优先级

关于本地 ssm-user 账户

SSM 代理 和 Instance Metadata Service (IMDS)

保持 SSM 代理 的最新状态

SSM 代理 按AWS区域滚动更新

使用硬件指纹验证本地服务器和虚拟机

AMIs 预SSM 代理安装了 的

SSM 代理 上的 GitHub


AWS Systems Manager 代理(SSM 代理)是一个 Amazon 软件,可以在 EC2 实例、本地服务器或虚拟机 (VM) 上安装和配置。SSM 代理 让 Systems Manager 可以更新、管理和配置这些资源。代理处理来自 AWS 云中的 Systems Manager 服务的请求,然后按照请求中指定的方式运行它们。SSM 代理之后使用 Amazon Message Delivery Service(服务前缀:ec2messages)将状态和执行信息发送回 Systems Manager 服务。

如果您监控流量,您将看到您的 Amazon Elastic Compute Cloud (Amazon EC2) 实例以及任何本地服务器或 VMs 在混合环境中与 ec2messages.* 终端节点通信。

SSM 代理 凭证优先级

SSM 代理 在 实例上安装 时,它需要权限才能与 Systems Manager 服务进行通信。在 Amazon Elastic Compute Cloud (Amazon EC2) 实例上,这些权限在附加到实例的实例配置文件中提供。在混合实例上, SSM 代理 通常从位于 (/root/.aws/credentialsLinux) 或 () 的共享凭证文件中获取所需的权限 %USERPROFILE%\.aws\credentials Windows)。 在混合激活过程中,所需的权限将添加到此文件中。

但是,在极少数情况下,实例可能会向多个 位置添加权限, 在其中SSM 代理检查其任务的运行权限。

例如,您可以将 实例配置为由 管理Systems Manager。对于 EC2 实例,该配置包括附加实例配置文件。对于本地服务器或虚拟机 (VM),这意味着凭证是通过混合激活过程提供的。但是,您随后决定也使用该实例执行开发人员或最终用户任务并在AWS CLI其中安装 。此安装会导致将其他权限添加到实例上的凭证文件中。

在实例上运行Systems Manager命令时, SSM 代理 可能会尝试使用不同于您预期使用的凭证,例如,从凭证文件而不是实例配置文件中使用。这是因为 按照SSM 代理为默认凭证提供程序链规定的顺序查找凭证。

注意

在 Linux 上, 以根用户身份SSM 代理运行。因此, 在此过程中SSM 代理查找的环境变量和凭证文件是仅根用户 () /root/.aws/credentials的环境变量和凭证文件。在搜索凭证期间, SSM 代理 不会查看实例上任何其他用户账户的环境变量或凭证文件。

默认提供程序链按以下顺序查找凭证:

  1. 环境变量(如果已配置)(AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY)。

  2. 共享凭证文件($HOME/.aws/credentials for Linux 或 %USERPROFILE%\.aws\credentials for Windows),具有混合激活或AWS CLI安装提供的权限。

  3. 任务的 AWS Identity and Access Management (IAM) 角色(如果存在使用 Amazon Elastic Container Service (Amazon ECS) 任务定义或 RunTask API 操作的应用程序)。

  4. 附加到实例Amazon EC2的实例配置文件。

关于本地 ssm-user 账户

从 的版本 2.3.50.0 开始SSM 代理, 代理创建一个名为 的本地用户账户ssm-user,并将该账户添加到 /etc/sudoers.d 目录(Linux 和 macOS)或管理员组 (Windows)。在 2.3.612.0 之前的代理版本上,账户会在 SSM 代理 安装后首次启动或重启时创建。在版本 2.3.612.0 及更高版本上,ssm-user 账户将在会话在实例上首次启动时创建。此 ssm-user 是 Session Manager 会话启动时的默认操作系统用户。您可以通过将 ssm-user 移动到权限较低的组或更改 sudoers 文件来更改权限。卸载 ssm-user 时,不会从系统中删除 SSM 代理 账户。

在 Windows Server 上,SSM 代理 处理每个会话启动时对 ssm-user 账户的新密码的设置。Linux 托管实例上没有为 ssm-user 设置密码。

从 SSM 代理 版本 2.3.612.0 开始,ssm-user 账户不会在用作域控制器的 Windows Server 计算机上自动创建。要在 Session Manager 域控制器上使用 Windows Server,您必须手动创建 ssm-user 账户(如果没有)。

重要

为了能够创建 ssm-user 账户,附加到实例的实例配置文件必须提供必要的权限。

SSM 代理 和 Instance Metadata Service (IMDS)

Systems Manager 依赖 EC2 实例元数据才能正常运行。 可以使用版本 1 或版本 2 Systems Manager 访问实例元数据。Instance Metadata Service (IMDSv1 和 IMDSv2)。

保持 SSM 代理 的最新状态

SSM 代理 的更新版本在有新功能添加到 Systems Manager 或者对现有功能进行了更新时发布。如果较早版本的代理运行在实例上,一些 SSM 代理 过程会失败。因此,我们建议您自动完成确保实例上的 SSM 代理 为最新的过程。

注意

SSM 代理 的更新版本在有新功能添加到 Systems Manager 或者对现有功能进行了更新时发布。如果较早版本的代理运行在实例上,一些 SSM 代理 过程会失败。因此,我们建议您自动完成确保实例上的 SSM 代理 为最新的过程。

Amazon Machine Images AMIs 默认情况下,包含 的 (SSM 代理) 可能需要长达两周的时间更新为最新版本的 SSM 代理。我们建议您将 的自动更新配置为更高的频率。SSM 代理.

SSM 代理 按AWS区域滚动更新

SSM 代理 更新在其GitHub存储库中可用后,最多可能需要两周的时间,直到更新后的版本在不同的时间推广到所有AWS区域。为此,当您尝试在区域中部署新版本的 SSM 代理 时,可能会收到以下错误:“Unsupported on current platform (在当前平台上不受支持)”或“updating amazon-ssm-agent to an older version, please enable allow downgrade to proceed (正在将 amazon-ssm-agent 更新到较旧版本,请启用‘允许降级’以继续)”。

要确定SSM 代理当前可用的 版本,您可以运行 curl 命令。

要查看全局下载存储桶中当前可用的 代理的版本,请运行以下命令。

curl https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/VERSION

要查看特定区域中当前可用的 代理的版本,请运行以下命令,并替换 region 替换为您正在工作的区域,例如 us-east-2 的 美国东部(俄亥俄)区域。

curl https://s3.region.amazonaws.com/amazon-ssm-region/latest/VERSION

您也可以直接在浏览器中打开VERSION该文件,而无需 curl 命令。

使用硬件指纹验证本地服务器和虚拟机

在混合环境中运行本地服务器和虚拟机 (VMs) 时, SSM 代理 会收集许多系统属性(称为硬件哈希)并使用这些属性计算指纹。指纹是代理传递给特定 Systems Manager 的不透明字符串APIs。 此唯一指纹将调用方与特定托管实例相关联。代理将指纹和硬件哈希存储在本地磁盘上名为文件库的位置。

当本地服务器或 VM 注册用于 时, 代理会计算硬件哈希和指纹Systems Manager。然后,当代理发送Systems Manager命令时,指纹将传递回 RegisterManagedInstance 服务。

稍后,在发送RequestManagedInstanceRoleToken命令时,代理会检查文件库中的指纹和硬件哈希,以确保当前计算机属性与存储的硬件哈希匹配。如果当前机器属性与存储在文件库中的硬件哈希匹配,则代理会将指纹从文件库传递到 RegisterManagedInstance,从而导致成功调用。

如果当前机器属性与存储的硬件哈希不匹配,则 SSM 代理 会计算新的指纹,将新的硬件哈希和指纹存储在文件库中,并将新的指纹传递到 RequestManagedInstanceRoleToken 这会导致 RequestManagedInstanceRoleToken 失败,并且 代理将无法获取角色令牌以连接到 Systems Manager 服务。

此故障是设计使然,并且用作验证步骤,以防止多个本地服务器以及与同一托管实例进行通信并作为同一托管实例与 VMs 服务Systems Manager进行通信。

在将当前机器属性与存储在文件库中的硬件哈希进行比较时, 代理使用以下逻辑来确定旧哈希值和新哈希值是否匹配:

  • 如果 SID(系统/计算机 ID)不同,则没有匹配项。

  • 否则,如果 IP 地址相同,则 匹配。

  • 否则,将计算与 匹配的计算机属性的百分比,并将其与用户配置的相似性阈值进行比较以确定是否存在匹配项。

相似性阈值作为硬件哈希的一部分存储在文件库中。

注册实例后,可以使用类似如下的命令设置相似性阈值:

在 Linux 实例上:

sudo amazon-ssm-agent -fingerprint -similarityThreshold 1

在使用 Powershell Windows Server 的实例上:

cd "C:\Program Files\Amazon\SSM\" ` .\amazon-ssm-agent.exe -fingerprint -similarityThreshold 1

重要

如果用于计算指纹变化的组件之一,这可能会导致代理休眠。为了帮助避免此休眠,请将相似性阈值设置为较低的值,例如 1

AMIs 预SSM 代理安装了 的

SSM 代理 默认情况下, 会预安装在以下 Amazon Machine Images () AMIs上:

  • Amazon Linux

  • Amazon Linux 2

  • Amazon Linux 2 经 ECS 优化的 AMIs

  • macOS 10.14.x (Mojave) 和 10.15.x (Catalina)

  • Ubuntu Server 16.04、18.04 和 20.04

  • 2016 年 11 月或以后发布的 Windows Server 2008-2012 R2 AMI

  • Windows Server 2016 和 2019

注意

SSM 代理 未安装在基于 Amazon Linux 或 Amazon Linux 2 的所有 AMIs 上。例如,SSM 代理 未预安装在基于 Amazon Linux 2 的经 EKS 优化的 AMI 上。

您必须在从其他 Linux 创建的 EC2 实例SSM 代理上手动安装 AMIs。您还必须SSM 代理在本地服务器或VMs混合环境中手动安装 。

注意

SSM 代理 可能预安装在支持其他操作系统AMIs的社区上。 AWS 不支持这些社区AMIs。

SSM 代理 上的 GitHub

的源代码SSM 代理在 上可用GitHub,以便您可以调整 代理以满足您的需求。我们建议您为要包含的更改提交拉取请求。但是,Amazon Web Services 目前不支持运行此软件的修改后副本。

亚马逊云 AWS Systems Manager 代理(SSM 代理)简介相关推荐

  1. aws linux使用ssh登陆_使用 亚马逊云 AWS 配置服务器并使用 xshell 远程连接

    使用 亚马逊云 AWS 配置服务器 如果之前使用亚马逊云配置服务器没有配置成功,那么请按照下面的方式删除掉实例 终止你想要删除的实例(我看文档说的是,终止实例其实就表示删除了实例,终止实例会删除掉服务 ...

  2. 亚马逊云(AWS)、微软云(Azure)、阿里云性能对比之哪家好?

    这三家在云计算界统称AAA,Azure就是微软云.AWS就是亚马逊云.Aliyun当然就是阿里云了,当然还有其他的云产品包括谷歌云.腾讯云.网易云.华为云.京东云等.本次咱们主要讨论的就是微软云.亚马 ...

  3. 亚马逊云AWS的cloudfront配置,跟国内阿里云的CDN相比,有一个大坑

    在亚马逊云AWS上,CDN的服务名称叫CloudFront,跟国内CDN的叫法略有不一样,但整体用法都差不多. 首先创建完一个CDN实例,填写一些简单的信息 然后选择S3存储的数据源,作为CDN缓存的 ...

  4. 怎么连接亚马逊的linux云服务器配置,使用 亚马逊云 AWS 配置服务器并使用 xshell 远程连接...

    使用 亚马逊云 AWS 配置服务器 如果之前使用亚马逊云配置服务器没有配置成功,那么请按照下面的方式删除掉实例 打开当前实例列表 终止你想要删除的实例(我看文档说的是,终止实例其实就表示删除了实例,终 ...

  5. 亚马逊云AWS认证助理工程师题库第四题

    题目 Using the EC2 API, you requested 40 m5.large On-Demand EC2 instances in a single Availability Zon ...

  6. 亚马逊云AWS认证助理工程师题库第五题

    题目 What will happen if you disabled the automated backups for AWS RDS? A. There is absolutely no imp ...

  7. 亚马逊云AWS入门篇(二)——修改windows server 2019R2英文版环境为中文版环境

    通过远程桌面登录windows server 2019 R2服务器 [都是英文版,此时需要修改为中文版,并修改默认密码,此处我就不修改了] 点击最左下角图标[start]  → Contorl Pan ...

  8. 亚马逊云免费服务器安装教程AWS微软系统教程含Tomcat,mysql,Tomcat去项目名,端口名!

    一直想弄个云服务器耍耍,奈何费用较高,又是个人,所以一直没弄! 昨天偶然得知有免费云服务器,搜索到了亚马逊云 aws.amazon.com 闲话少说! 亚马逊云服务器安装教程windows系统 步骤如 ...

  9. 亚马逊云机器人平台RoboMaker新功能WorldForge使用测试

    恭喜你,读者朋友!你读到了全网首发(大概吧,我也没搜过反正)的AWS RoboMaker新功能WorldForge的使用测试,超多配图,细节丰富,价值高达6.5美元,读到就是赚到!文末有惊喜! 亚马逊 ...

最新文章

  1. c++把数组所有元素剔除_C语言基础之数组,第一节,C语言必学知识点剖析
  2. Hyperledger fabric1.4.0搭建环境
  3. Engagement Center Communication timer实现逻辑
  4. 全国计算机考试网页制作,全国计算机信息高新技术考试网页制作(FrontPage平台)网页制作员级考试考试大纲...
  5. UnityShader23:顶点动画
  6. 基于react做了一个仿qq空间
  7. 【优化算法】粒子群算法和混沌搜索协同优化算法【含Matlab源码 1299期】
  8. 如何用50块钱在学校吃一个月
  9. 柯尔莫哥洛夫微分方程
  10. python做语音信号处理
  11. 7-8 jmu-Java-03面向对象-06-继承覆盖综合练习-Person、Student、Employee、Company
  12. Ubuntu无网络连接/无网络标识解决方法
  13. Nginx的配置与开发学习(五):配置属于自己的HTTPS证书
  14. 什么是证券市场?证券市场有哪些组成
  15. 文件包含的漏洞、原理、利用
  16. 深入理解Android相机体系结构之九
  17. 毕设——接口测试——Postman
  18. 遇到人生低谷期该怎么度过?
  19. Git 工作流的一些经验分享
  20. upload-labs安装及攻略

热门文章

  1. 网易云信亮相 GIAC 全球互联网架构大会,解密新一代音视频架构在元宇宙场景的实践...
  2. 被表情包支配的恐惧-轮播
  3. 最全行车记录仪方案+主控芯片介绍!
  4. UVA - 11121 Base -2
  5. android综合资讯App、自定义悬浮框、屏幕助手、空灵音乐源码等
  6. 找不到从属程序集 Microsoft.VC90.DebugCRT,processorArchitecture=“x86“
  7. python创建随机数矩阵_python生成随机数和随机矩阵
  8. 计算机键盘开锁,如何解锁电脑键盘上的某些按键
  9. vue+element-ui中的el-table-column使用v-if导致位置错乱的现象
  10. 开源入侵检测系统—Snort安装