【发布时间】:2021-01-17 15:31:53
【问题描述】:
让我们保持简单。
我有一个 3 PublicSubnet 和 3 PrivateSubnet。有一个堡垒主机,只有一个,分配给一个公共子网。私有子网(全部 3 个)与 CloudFormation VPC 端点链接。现在有趣的是,当我启动堡垒堆栈并尝试通过 cfn-init 做一些事情时,它只是失败了。它尝试连接到链接到上述 VPC 端点的 ENI 的 IP。
如果我:
- 摆脱上述端点,堡垒瞬间堆积起来。
- 为端点的 sec-group 添加一个 SecurityGroupIngress 条目,该条目允许来自作为 VPC 的 cidr 的 CidrIp 的所有入口连接,堡垒立即堆叠。
现在!为什么会这样:|。 这没有任何意义。一条经过端点的路由究竟是如何进入与公共子网链接的路由表的?这是公共子网的路由表:
172.36.0.0/16 local active
0.0.0.0/0 igw-? active
还有 3 个不同的私有子网路由表
172.36.0.0/16 local
0.0.0.0/0 nat-1 nat-2 nat-3
pl-6ea54007 vpce-s3
(实际上所有 3 个看起来都一样,VPC 有本地,因此有 3 个 nat,因此 nat-1 到 nat-3,这里的端点用于 S3)
再次重申:
- 堡垒与公共子网相关联,具有公共 IP 和到 InternetGateway 的路由
- 所述 VPCEndpoint 链接到私有子网(非公有)
有什么想法吗?
日志、文件等
用户数据:
#!/bin/bash -xe
yum update -y
yum update -y aws-cfn-bootstrap || true
trap '/opt/aws/bin/cfn-signal -e 1 --stack ${AWS::StackName} --region ${AWS::Region} --resource Bastion' ERR
/opt/aws/bin/cfn-init --verbose \
--stack ${AWS::StackName} \
--resource Bastion \
--region ${AWS::Region}
sleep 1
/opt/aws/bin/cfn-signal \
-e 0 \
--stack ${AWS::StackName} \
--resource Bastion \
--region ${AWS::Region}
来自/var/log/cfn-init.log的日志:
2020-10-02 05:18:43,957 [DEBUG] CloudFormation client initialized with endpoint https://cloudformation.eu-central-1.amazonaws.com
2020-10-02 05:18:43,958 [DEBUG] Describing resource Bastion in stack bastion-stack
2020-10-02 05:19:43,958 [WARNING] Timeout of 60 seconds breached
2020-10-02 05:19:43,958 [ERROR] Client-side timeout
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/cfnbootstrap/util.py", line 162, in _retry
return f(*args, **kwargs)
File "/usr/lib/python2.7/site-packages/cfnbootstrap/util.py", line 231, in _timeout
raise TimeoutError("Execution did not succeed after %s seconds" % duration)
TimeoutError
2020-10-02 05:19:43,960 [DEBUG] Sleeping for 0.115700 seconds before retrying
【问题讨论】:
-
如果有不清楚的地方,请告诉我。老实说,我只是想把它带到野外来引起注意。同时也很晚了;-)
-
您的
pl-6ea54007路线会更具体,因此总会被选中。不确定这是否是您的要求? -
用户数据中有什么? cloud-init 日志文件 (
/var/log/cloud-init-output.log) 中有什么内容? -
@Marcin 这个
pl-6ea54007用于 S3 路由。事实上,我确实有 3 个 VPC 端点(一个网关和两个接口类型)链接到私有路由表或私有子网(又链接到这些表) -
根据@Marcin 的回答,整个 VPC 都可以访问 CloudFormation 的 VPC 端点。您已经列出了使其工作的方法(配置安全组)——这样做有问题吗?
标签: amazon-web-services amazon-ec2 amazon-cloudformation