AWS 系统管理器有缺陷?

AWS 系统管理器有缺陷?

我们目前正在协助客户解决他们遇到的问题,解决方案是使用 AWS SSM 将文件从 s3 存储桶复制到 Windows 目录位置。

当我们进入“设置清单”并选择手动定位所有实例时,只有可用区 EU-WEST-2A 中的实例出现,而 2b 和 2c 中的实例不可用,当我们尝试使用实例 ID 进行 API 调用以查看是否安装了 SSM 时,没有返回任何信息。这表明 2b 和 2c AZ 中的 Windows 实例上未安装 SSM 代理。

以前有人遇到过类似的事情吗?我们做错了什么吗?

本来想在 AWS 论坛上发布此信息,但我们没有高级支持。

答案1

所有实例是否都具有相同IAM 角色

为了使 SSM 正常工作,需要满足以下几个先决条件:

  1. 实例必须具有进入ssm.eu-west-2.amazonaws.com- 如果他们有公共 IP,则通过 IGW,如果他们在私有子网中,则通过 NAT。

    ping ssm.eu-west-2.amazonaws.com能从所有实例中找出答案吗?

  2. 实例IAM 角色必须具有连接到 SSM 的权限。确保 IAM 角色具有AmazonEC2RoleforSSM附有政策。

  3. SSM 代理必须安装并正在运行。

检查连接性、检查 IAM 角色策略并检查代理。这将是其中之一。

希望有帮助:)

答案2

我找到了问题和解决方案。

似乎基础 AMI 导致了一些问题。发生的事情是,Windows 实例是在可用区 A 中创建的,当创建它时,AWS 中间件会将一些路由配置到该可用区的 Windows 网络配置中,这些路由指向该子网 (AZ) 的网关:

当前配置:

Persistent Routes:
  Network Address          Netmask  Gateway Address  Metric
  169.254.169.254  255.255.255.255       172.31.0.1      25
  169.254.169.250  255.255.255.255       172.31.0.1      25
  169.254.169.251  255.255.255.255       172.31.0.1      25

但是当您克隆该 AMI 并将其部署到不同的子网 (AZ) 时,路由不会改变。它应该是这样的;

Persistent Routes:
  Network Address          Netmask  Gateway Address  Metric
  169.254.169.254  255.255.255.255      172.31.32.1      25
 169.254.169.250  255.255.255.255      172.31.32.1      25
  169.254.169.251  255.255.255.255      172.31.32.1      25

为了使其达到所需状态,AMI 中包含一个脚本,位于:C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\initializeinstance.ps1

运行此脚本解决了该问题,并且实例现在出现在 SSM 中。

相关内容