如何解决SSM Parameter Store 为来自 EC2 实例的任何操作提供超时
我在 cloudformation 中创建了一个具有以下权限的 EC2 角色:
Policies:
- PolicyName: ec2-test-poilcy
PolicyDocument: |
{ "Version": "2012-10-17","Statement": [
{
"Action": [
"ssm:DescribeParameters"
],"Resource": "*","Effect": "Allow"
},{
"Effect": "Allow","Action": [
"ssm:PutParameter","ssm:DeleteParameter","ssm:GetParameterHistory","ssm:GetParametersByPath","ssm:GetParameters","ssm:GetParameter","ssm:DeleteParameters"
],"Resource": "arn:aws:ssm:REGION:ACCOUNT-ID:parameter/*"
}
]
}
并将上述角色附加到我的 EC2 实例,但是,我无法执行任何 SSM Parameter Store 操作,我只是没有得到响应,几分钟后,我超时。
例如:
aws ssm get-parameter --name test --region us-east-2
Connect timeout on endpoint URL: "https://ssm.us-east-2.amazonaws.com/"
尝试各种方法后,我也附加了AdministratorAccess 策略,但它仍然没有响应任何 ssm 操作。
更新
花了几个小时后,我意识到超时错误只会发生 对于区域:us-east-2
aws ssm get-parameter --name testing --region us-east-1
上面的命令通过使用不同的区域成功运行。
解决方法
只是为了在我发现问题时结束我的问题,我自己回答这个问题,希望它可以帮助其他人调试。
我已使用以下命令获取 DNS 信息:
dig ssm.us-east-2.amazonaws.com
我得到了一个响应,在其中我能够观察到 DNS 指向私有 IP:
;; ANSWER SECTION:
ssm.us-east-2.amazonaws.com. 60 IN A xx.xx.xx.xx7 (private ip)
但正确的 DNS 解析应该是这样的:
;; ANSWER SECTION:
ssm.us-east-2.amazonaws.com. 60 IN A 52.95.21.xxx
在花了几个小时弄清楚原因后,我发现这是由于对 ssm 服务使用了不必要的 vpc 端点,所以我删除了它,现在我能够为 us-east 的 ssm 操作获得正确的响应-2 区域。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。