IDMSV2 后 SSM 代理无法在 EC2 上工作

Teh*_*cco 5 amazon-ec2 amazon-web-services aws-ssm

我在 Windows 服务器上。我必须从可能位于不同可用区的另一个实例的快照重新启动一个实例。另一项更改是,我通过在创建新实例时提前更新启动配置,在 EC2 上启用了 imdsv2。

此实例上的SSM 代理失败并出现以下错误 -

原因:获取“http://169.254.169.254/latest/meta-data/instance-id”:超出上下文截止日期(等待标头时超出 Client.Timeout)
2023-03-08 05:29:34 错误 [newAgentIdentityInner @ Identity_selector.go.99]代理无法采用任何身份
2023-03-08 05:29:34错误[NewAgentIdentity@identity_selector.go.112]未能找到身份,重试:未能找到代理身份
2023-03-08 05 :29:41 错误 [NewEC2Identity @ ec2_identity.go.281] [EC2Identity] 无法获取身份实例 ID。错误:RequestError:发送请求失败

我无权在 CLI 上访问 EC2,因此无法使用使用 SSM 代理日志对托管实例中的问题进行故障排除中ec2 describe-instance提到的 CLI 命令来检查实例元数据是否已启用。我知道是这样。并且不需要任何代理。

GitHub 上的这个问题与我的有点相似,但我不明白我需要做什么来解决这个问题。

Teh*_*cco 7

我实际上找到了我的答案。正如Amazon 的这段视频中提到的,169.254.169.254 的路由指向不同子网的错误网关。

通过以管理员身份运行 PowerShell 解决了此问题Import-Module C:\ProgramData\Amazon\EC2-Windows\Launch\Module\Ec2Launch.psm1; Add-Routes

  • 将实例移动到不同的子网(通过创建映像)后,我遇到了此错误。这个命令为我解决了这个问题。谢谢你把它挖出来。 (2认同)