繁体   English   中英

AWS EC2 Windows 10 无法访问元数据

[英]AWS EC2 Windows 10 can't access metadata

什么可以解释为什么运行 Windows 10 的 EC2 实例不能始终访问其自己的元数据或用户数据?

我知道用户数据设置正确,因为完全相同的脚本被用于大约三十次 t2.nano 和 c4.xlarge 实例的启动:t2.nano 从未遇到任何读取元数据的问题,但在使用 c4.xlarge 的三次尝试中只有一个人可以访问它。 该脚本仅在实例名称上有所不同(至少根据 git 历史记录)。

我按照下面的说明进行操作,即使在 Powershell 中,Uri 也无法加载(参见图 2)。

任何提示表示赞赏。

关于元数据的 AWS 文档 Powershell 故障

有一个脚本调用InitializeInstance.ps1可以重置一些配置信息。

例如,如果实例更改了子网,则由于缓存的路由规则,它可能无法正常工作。 InitializeInstance.ps1可以更正此问题。

我们在 EC2 上的 Windows 2016 服务器上遇到了同样的问题。 我们注意到 169 个 IP 上的默认网关路由(持久)指向一个不存在的(旧的?)网关 IP。

在实例元数据开始工作并且 AmazonSSMAgent 服务再次运行之后,我们将路由更改为主适配器的默认网关。

旧情况:

IPv4 Route Table
===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0     172.16.3.129     172.16.3.152     15
     ....
===========================================================================
Persistent Routes:
  Network Address          Netmask  Gateway Address  Metric
  169.254.169.254  255.255.255.255     172.16.0.129      15
  169.254.169.250  255.255.255.255     172.16.0.129      15
  169.254.169.251  255.255.255.255     172.16.0.129      15

请注意 169 的持久路由上的网关指向一个 IP,这不是 0.0.0.0 的默认值。 此 172.16.0.129 也无法 ping 通。

使用 route CHANGE 更改路线后:

route CHANGE 169.254.169.254 MASK 255.255.255.255  172.16.3.129 METRIC 15 IF 4 /P
route CHANGE 169.254.169.250 MASK 255.255.255.255  172.16.3.129 METRIC 15 IF 4 /P
route CHANGE 169.254.169.251 MASK 255.255.255.255  172.16.2.129 METRIC 15 IF 4 /P

在哪里:

  • 172.16.3.129 是主网络接口上的默认网关。 这在每个实例上都会有所不同。
  • 4 在 then end METRIC 15 IF 4是主适配器的接口 ID,在路由 PRINT 上的接口列表中列出,这在每个实例上也可能不同。

我们现在有:

IPv4 Route Table
===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0     172.16.3.129     172.16.3.152     15
....
===========================================================================
Persistent Routes:
  Network Address          Netmask  Gateway Address  Metric
  169.254.169.254  255.255.255.255     172.16.3.129      15
  169.254.169.250  255.255.255.255     172.16.3.129      15
  169.254.169.251  255.255.255.255     172.16.3.129      15
===========================================================================

这基本上就是前面提到的ProgramData/Amazon/EC2-Windows/Launch/Module/Scripts/Add-Routes.ps1脚本所做的。

无法编辑 John Rotenstein,所以我会在这里添加它,

我通过再次初始化实例解决了这个问题,当您在一个子网或 vpc 中创建图像并在另一个子网或 vpc 中启动它时会发生这种情况。

警告这会更改管理员密码,请确保您有权访问所需的密钥以在控制台获取新密码。

为了仅在运行一次时初始化实例:

C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\InitializeInstance.ps1 -Schedule

为了在每次启动运行时初始化它

C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\InitializeInstance.ps1 -SchedulePerBoot

文档: https ://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2launch.html

运行后,重启实例,从控制台获取新密码,里面是 rdp,你可以获取元数据并使用 aws s3 cli / powershell 和附加的实例 IAM 角色

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM