微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

公共子网中的实例,但cfn-init从私有子网通过VPC端点进行故障转移

如何解决公共子网中的实例,但cfn-init从私有子网通过VPC端点进行故障转移

简单点吧。

我有一个 3个公共子网 3个私有子网。有一个堡垒主机,只有一个,分配给一个公共子网之一。专用子网(全部3个)与CloudFormation VPC端点链接。现在有趣的是,当我启动堡垒堆栈并尝试通过 cfn-init 做一些事情时,它只是失败了。它尝试连接到链接到上述VPC端点的 ENI IP

如果我是

  • 摆脱该端点,堡垒暂时堆积起来。
  • 为端点的第二个组添加一个 SecurityGroupIngress 条目,该条目允许来自 CidrIp 作为VPC的cidr的所有入口连接,堡垒会暂时​​堆叠。 / li>

现在!为什么这样:|。 这没有任何意义。在世界范围内,经过端点的路由如何进入与公共子网链接的路由表中?这是公用子网的路由表:

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)

再次重申:

  1. 堡垒与公共子网关联,具有公共IP和到 InternetGateway
  2. 的路由
  3. 上述VPCEndpoint已链接到专用子网(非公共子网)

有什么想法吗?

日志,文件

UserData:

          #!/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

现有内毒素:

enter image description here

解决方法

所述VPCEndpoint链接到专用子网(非公共)

CloudFormation VPC端点不是这种情况。我认为您将VPC gateway edpointsVPC interface endpoints混淆了。

在您的情况下,创建CloudFormation VPC endpoint时将创建 VPC接口终结点,但是,您在问题中所指的是{strong>的pl-6ea54007路由VPC网关端点(可能是S3)。

因此pl-6ea54007适用于VPC网关端点(我想是S3),而不适用于CloudFormation VPC端点。 两种端点类型的工作方式不同,并且接口端点不会在任何路由表中创建任何路由。接口端点具有VPC范围。这意味着任何子网(私有,公共)都可以使用CloudFormation VPC端点,包括堡垒主机。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。