gpt4 book ai didi

amazon-web-services - 实例位于公有子网中,但 cfn-init 从私有(private)子网故障转移 VPC 终端节点

转载 作者:行者123 更新时间:2023-12-03 07:13:30 27 4
gpt4 key购买 nike

让我们保持简单。

我有一个 3 PublicSubnet3 PrivateSubnet。有一台堡垒主机,只有一台,分配给一个公共(public)子网。私有(private)子网(全部 3 个)与 CloudFormation VPC 终端节点链接。现在有趣的是,当我启动堡垒堆栈并尝试通过 cfn-init 执行某些操作时,它只是失败了。它尝试连接到链接到上述 VPC 端点的 ENIIP

如果我:

  • 摆脱所述端点,堡垒会立即堆积起来。
  • 为端点的安全组添加一个SecurityGroupIngress条目,允许来自作为VPC的cidr的CidrIp的所有入口连接,堡垒会立即堆积。
现在!这是为什么:|。这没有任何意义。到达端点的路由究竟如何找到进入与公共(public)子网链接的路由表的路径?以下是公共(public)子网的路由表:

172.36.0.0/16   local   active
0.0.0.0/0 igw-? active

以及 3 个不同的私有(private)子网路由表

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. 堡垒与公共(public)子网关联,具有公共(public) IP 和到 InternetGateway 的路由
  2. 所述 VPCEndpoint 已链接到私有(private)子网(非公共(public)子网)

有什么想法吗?

日志、文件等

用户数据:

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

最佳答案

said VPCEndpoint is linked to private subnets (not public)

CloudFormation VPC 端点的情况并非如此。我认为你很困惑VPC gateway edpointsVPC interface endpoints .

就您的情况而言,当您创建 CloudFormation VPC 端点 时,您正在创建 VPC 接口(interface)端点,但是,您在问题中引用的是 pl-6ea54007 路由,用于 VPC 网关端点(可能是 S3)。

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

关于amazon-web-services - 实例位于公有子网中,但 cfn-init 从私有(private)子网故障转移 VPC 终端节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64163354/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com