EC2 实例无法通过 s3 网关端点访问 amazon-linux repos(例如 amazon-linux-extras install docker)
EC2 instance can't access amazon-linux repos (eg amazon-linux-extras install docker) through s3 gateway endpoint
我遇到了 s3 端点问题。当我的实例初始化时,它们无法安装 docker。详情:
我的 ASG 实例位于具有发布子网和私有子网的 VPC 中。适当的路由和 EIP/NAT 全部缝合在私有子网中的 up.Instances 有 outbooundd 0.0.0.0/0 路由到各自 public 子网中的 NAT。 public 子网的 NACL 允许互联网流量进出,私有子网周围的 NACL 允许来自 public 子网的流量进出,出入互联网的流量(以及来自 s3 cidrs 的流量进出)。我希望它完全锁定。
- 我在我的 VPC 中启用了 DNS 和主机名
- 我了解 NACL 是无状态的,并且已在临时端口范围内为 s3 amazon IP cidr 块启用 IN 和 OUTBOUND 规则(是的,我还启用了 pub 和私有子网之间的流量)
- 是的,我已经检查过在我的私有路由表中为我的 s3 端点配置了一条路由
- 是的,我确定是 s3 端点让我感到悲伤,而不是另一个错误 -> 当我删除它并打开我的 NACL 时,我可以 yum 更新并安装 docker(如预期的那样)我是不是在寻找需要打开我的 NACL 的建议,我正在使用 VPC 网关端点,因为我想将事情锁定在私有子网中。我提到这个是因为类似的讨论似乎在说 'I opened 0.0.0.0/0 on all ports and now x works'
- 我应该只烘焙一个安装了 docker 的 AMI 吗?如果我不能解决这个问题,那就是我要做的。我真的很想设置我的网络,以便一切都很好地锁定,并且感觉它应该非常直接地使用端点。这在很大程度上是一个网络练习,所以我宁愿不这样做,因为它避免了解决和理解问题。
- 我知道我的其他 VPC 端点运行良好 -> 自动缩放服务接口端点正在执行(我可以看到它根据策略缩减实例)、SSM 接口端点允许我使用会话管理器和 ECR 端点(s) 与 s3 网关端点一起工作(需要 s3 网关端点,因为图像层在 s3 中)-> 我知道这是可行的,因为如果我打开 NACLS 并删除我的 s3 端点并安装 docker,那么再次锁定所有内容,恢复我的 s3 网关端点,我可以成功提取我的 ECR 图像。所以 s3 网关端点可以访问 ecr 图像层,但不能访问 amazon-linux-extra repos.
- 附加到实例的 SG 不是问题(实例具有默认出站规则)
- 我已经尝试向我的 s3 端点添加越来越宽松的策略,正如我在这个已有 7 年历史的线程中看到的那样,我认为这必须起到作用(是的,我正确地替换了我的区域)
- 我强烈认为解决方案在于本线程中讨论的 s3 网关策略,但是我越来越绝望的策略运气不佳。
Amazon EC2 instance can't update or use yum
另一个 s3 分辨率问题:
我试过:
S3Endpoint:
Type: 'AWS::EC2::VPCEndpoint'
Properties:
PolicyDocument:
Version: 2012-10-17
Statement:
- Effect: Allow
Principal: '*'
Action:
- 's3:GetObject'
Resource:
- 'arn:aws:s3:::prod-ap-southeast-2-starport-layer-bucket/*'
- 'arn:aws:s3:::packages.*.amazonaws.com/*'
- 'arn:aws:s3:::repo.*.amazonaws.com/*'
- 'arn:aws:s3:::amazonlinux-2-repos-ap-southeast-2.s3.ap-southeast-2.amazonaws.com/*'
- 'arn:aws:s3:::amazonlinux.*.amazonaws.com/*'
- 'arn:aws:s3:::*.amazonaws.com'
- 'arn:aws:s3:::*.amazonaws.com/*'
- 'arn:aws:s3:::*.ap-southeast-2.amazonaws.com/*'
- 'arn:aws:s3:::*.ap-southeast-2.amazonaws.com/'
- 'arn:aws:s3:::*repos.ap-southeast-2-.amazonaws.com'
- 'arn:aws:s3:::*repos.ap-southeast-2.amazonaws.com/*'
- 'arn:aws:s3:::repo.ap-southeast-2-.amazonaws.com'
- 'arn:aws:s3:::repo.ap-southeast-2.amazonaws.com/*'
RouteTableIds:
- !Ref PrivateRouteTableA
- !Ref PrivateRouteTableB
ServiceName: !Sub 'com.amazonaws.${AWS::Region}.s3'
VpcId: !Ref BasicVpc
VpcEndpointType: Gateway
(如你所见,非常绝望)ECR 接口端点需要第一条规则从 s3 拉取图像层,所有其他规则都是尝试到达 amazon-linux-extras repos .
以下是我通过使用 SSM 端点连接会话管理器重新创建的初始化时发生的行为:
https://aws.amazon.com/premiumsupport/knowledge-center/connect-s3-vpc-endpoint/
我无法安装或更新
root@ip-10-0-3-120 bin]# yum install docker -y
加载的插件:extras_suggestions、langpacks、优先级、update-motd
无法检索镜像列表 https://amazonlinux-2-repos-ap-southeast-2.s3.ap-southeast-2.amazonaws.com/2/core/latest/x86_64/mirror.list 错误是
14: HTTPS 错误 403 - 禁止
配置的存储库之一失败(未知),
并且 yum 没有足够的缓存数据来继续。此时唯一
yum 可以做的安全事情就是失败。有几种方法可以“解决”这个问题:
1. Contact the upstream for the repository and get them to fix the problem.
2. Reconfigure the baseurl/etc. for the repository, to point to a working
upstream. This is most often useful if you are using a newer
distribution release than is supported by the repository (and the
packages for the previous distribution release still work).
3. Run the command with the repository temporarily disabled
yum --disablerepo=<repoid> ...
4. Disable the repository permanently, so yum won't use it by default. Yum
will then just ignore the repository until you permanently enable it
again or use --enablerepo for temporary usage:
yum-config-manager --disable <repoid>
or
subscription-manager repos --disable=<repoid>
5. Configure the failing repository to be skipped, if it is unavailable.
Note that yum will try to contact the repo. when it runs most commands,
so will have to try and fail each time (and thus. yum will be be much
slower). If it is a very temporary problem though, this is often a nice
compromise:
yum-config-manager --save --setopt=<repoid>.skip_if_unavailable=true
找不到有效的基础url 回购:amzn2-core/2/x86_64
不能:
amazon-linux-extras install docker
Catalog is not reachable. Try again later.
目录位于 https://amazonlinux-2-repos-ap-southeast-2.s3.ap-southeast-2.amazonaws.com/2/extras-catalog-x86_64-v2.json, https://amazonlinux-2-repos-ap-southeast-2.s3.ap-southeast-2.amazonaws.com/2/extras-catalog-x86_64.json
追溯(最近一次通话):
文件“/usr/lib/python2.7/site-packages/amazon_linux_extras/software_catalog.py”,第 131 行,在 fetch_new_catalog 中
请求 = url打开(url)
文件“/usr/lib64/python2.7/urllib2.py”,第 154 行,在 urlopen
return opener.open(url, 数据, 超时)
文件“/usr/lib64/python2.7/urllib2.py”,第 435 行,打开
响应 = meth(请求,响应)
文件“/usr/lib64/python2.7/urllib2.py”,第 548 行,在 http_response 中
'http'、请求、响应、代码、消息、hdrs)
文件“/usr/lib64/python2.7/urllib2.py”,第 473 行,错误
return self._call_chain(*参数)
文件“/usr/lib64/python2.7/urllib2.py”,第 407 行,在 _call_chain 中
结果=函数(*参数)
文件“/usr/lib64/python2.7/urllib2.py”,第 556 行,在 http_error_default 中
引发 HTTPError(req.get_full_url(), code, msg, hdrs, fp)
HTTPError:HTTP 错误 403:禁止
我错过了什么陷阱吗?我很困在这里。我熟悉基本的 VPC 网络、NACL 和 VPC 端点(我至少使用过的那些),我遵循了故障排除(尽管我已经按照概述进行了所有设置)。
我觉得 s3 政策是这里的问题或镜像列表。
如果您愿意阅读所有内容,非常感谢!
想法?
从它的外观来看,您很清楚自己要达到的目标。
即使你说它不是 NACL,我还是会再检查一次,因为有时人们很容易忽略一些小问题。考虑以下摘自 this AWS troubleshooting article 的代码片段,并确保您在相应区域的规则中具有正确的 S3 CIDR:
Make sure that the network ACLs associated with your EC2 instance's
subnet allow the following: Egress on port 80 (HTTP) and 443 (HTTPS)
to the Regional S3 service. Ingress on ephemeral TCP ports from the
Regional S3 service. Ephemeral ports are 1024-65535. The Regional S3
service is the CIDR for the subnet containing your S3 interface
endpoint. Or, if you're using an S3 gateway, the Regional S3 service
is the public IP CIDR for the S3 service. Network ACLs don't support
prefix lists. To add the S3 CIDR to your network ACL, use 0.0.0.0/0 as
the S3 CIDR. You can also add the actual S3 CIDRs into the ACL.
However, keep in mind that the S3 CIDRs can change at any time.
你的 S3 端点策略第一眼看起来不错,但你是对的,很可能是策略或端点配置一般是原因,所以我会再检查一次也是。
我之前观察到的另一件事是,根据您使用的 AMI 和您的 VPC 设置(DHCP 选项集、DNS 等),有时 EC2 实例无法在 yum 配置中正确设置它的默认区域。请检查 awsregion
和 awsdomain
文件是否存在于 /etc/yum/vars
目录中,它们的内容是什么。在您的用例中,awsregion 应该具有:
$ cat /etc/yum/vars/awsregion
ap-southeast-2
您可以检查实例上的 DNS 解析是否正常工作:
dig amazonlinux.ap-southeast-2.amazonaws.com
如果 DNS 似乎工作正常,您可以比较输出中的 IP 是否位于您在 NACL 中允许的范围内。
编辑:
再看一遍,这行比应有的要严格一些:
arn:aws:s3:::amazonlinux-2-repos-ap-southeast-2.s3.ap-southeast-2.amazonaws.com/*
根据文档,它应该是这样的:
arn:aws:s3:::amazonlinux-2-repos-ap-southeast-2/*
你好@nick https://whosebug.com/users/9405602/nick --> 这些是编写 'answer' 的极好的建议,因为解决问题对其他人很有价值,加上评论中的字符数限制。
肯定是政策的问题
sh-4.2$ cat /etc/yum/vars/awsregion
ap-southeast-2sh-4.2$
挖掘:
sh-4.2$ dig amazonlinux.ap-southeast-2.amazonaws.com
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.amzn2.5.2 <<>> amazonlinux.ap-东南-2.amazonaws.com
;;全局选项:+cmd
;;得到答案:
;; ->>HEADER<<- 操作码:QUERY,状态:NOERROR,id:598
;;标志:qr rd ra;查询:1,答案:2,权限:0,附加:1
;;选择伪部分:
; EDNS:版本:0,标志:; UDP:4096
;;问题部分:
;amazonlinux.ap-东南-2.amazonaws.com。在一个
;;答案部分:
amazonlinux.ap-东南-2.amazonaws.com。 278 IN CNAME s3.dualstack.ap-东南-2.amazonaws.com。
s3.dualstack.ap-东南-2.amazonaws.com。 2 在 A 52.95.134.91
;;查询时间:4 毫秒
;;服务器:10.0.0.2#53(10.0.0.2)
;;时间:9 月 20 日星期一 00:03:36 UTC 2021
;;接收到的消息大小:112
让我们检查一下 NACL:
SO -----> '52.95.134.91' 由规则 101 出站和 400 入站捕获,因此在 NACL 方面看起来不错。 (未来的人解决问题,这是你应该寻找的)
关于那些 CIDR 块,部署脚本从当前列表中提取它们,并使用 jq 为 ap-southeast-2 提取 s3 块,并将它们作为参数传递给 CF 部署。
关于如何为他人做到这一点的文档:
https://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html#aws-ip-download
另一个注意事项,您可能会注意到 0.0.0.0/0,我意识到(对于其他正在寻找的人请注意)这使得其他规则变得多余,我只是在 'in case' 中摆弄(并删除 -> pub 子网)。
私有子网出站流量 0.0.0.0/0 被路由到 public 个子网中的相应 NAT。我将为我的 public 子网添加出站并在某个时候删除此规则。
子网划分 atm 很简单:
10.0.0.0/16
发布一个:10.0.0.0/24
酒吧 b:10.0.1.0/24
私有:10.0.2.0/24
私人 b : 10.0.3.0/24
所以将重新引入 pub a 和 b 块的规则,以便我可以删除 0.0.0.0/0 上的允许
我现在确定这是政策。
我只是点击操作将控制台中的策略修改为 'full access' 以破解并取得成功。
我的猜测是镜像列表很难确定明确允许的内容,所以即使我撒了网,我也没有捕获到所需的桶。但我不太了解 aws 镜像的工作原理,所以这是一个猜测。
我可能不想要超级宽容的策略,所以这不是真正的修复,但它确认了问题所在。
我遇到了 s3 端点问题。当我的实例初始化时,它们无法安装 docker。详情:
我的 ASG 实例位于具有发布子网和私有子网的 VPC 中。适当的路由和 EIP/NAT 全部缝合在私有子网中的 up.Instances 有 outbooundd 0.0.0.0/0 路由到各自 public 子网中的 NAT。 public 子网的 NACL 允许互联网流量进出,私有子网周围的 NACL 允许来自 public 子网的流量进出,出入互联网的流量(以及来自 s3 cidrs 的流量进出)。我希望它完全锁定。
- 我在我的 VPC 中启用了 DNS 和主机名
- 我了解 NACL 是无状态的,并且已在临时端口范围内为 s3 amazon IP cidr 块启用 IN 和 OUTBOUND 规则(是的,我还启用了 pub 和私有子网之间的流量)
- 是的,我已经检查过在我的私有路由表中为我的 s3 端点配置了一条路由
- 是的,我确定是 s3 端点让我感到悲伤,而不是另一个错误 -> 当我删除它并打开我的 NACL 时,我可以 yum 更新并安装 docker(如预期的那样)我是不是在寻找需要打开我的 NACL 的建议,我正在使用 VPC 网关端点,因为我想将事情锁定在私有子网中。我提到这个是因为类似的讨论似乎在说 'I opened 0.0.0.0/0 on all ports and now x works'
- 我应该只烘焙一个安装了 docker 的 AMI 吗?如果我不能解决这个问题,那就是我要做的。我真的很想设置我的网络,以便一切都很好地锁定,并且感觉它应该非常直接地使用端点。这在很大程度上是一个网络练习,所以我宁愿不这样做,因为它避免了解决和理解问题。
- 我知道我的其他 VPC 端点运行良好 -> 自动缩放服务接口端点正在执行(我可以看到它根据策略缩减实例)、SSM 接口端点允许我使用会话管理器和 ECR 端点(s) 与 s3 网关端点一起工作(需要 s3 网关端点,因为图像层在 s3 中)-> 我知道这是可行的,因为如果我打开 NACLS 并删除我的 s3 端点并安装 docker,那么再次锁定所有内容,恢复我的 s3 网关端点,我可以成功提取我的 ECR 图像。所以 s3 网关端点可以访问 ecr 图像层,但不能访问 amazon-linux-extra repos.
- 附加到实例的 SG 不是问题(实例具有默认出站规则)
- 我已经尝试向我的 s3 端点添加越来越宽松的策略,正如我在这个已有 7 年历史的线程中看到的那样,我认为这必须起到作用(是的,我正确地替换了我的区域)
- 我强烈认为解决方案在于本线程中讨论的 s3 网关策略,但是我越来越绝望的策略运气不佳。
Amazon EC2 instance can't update or use yum
另一个 s3 分辨率问题:
我试过:
S3Endpoint:
Type: 'AWS::EC2::VPCEndpoint'
Properties:
PolicyDocument:
Version: 2012-10-17
Statement:
- Effect: Allow
Principal: '*'
Action:
- 's3:GetObject'
Resource:
- 'arn:aws:s3:::prod-ap-southeast-2-starport-layer-bucket/*'
- 'arn:aws:s3:::packages.*.amazonaws.com/*'
- 'arn:aws:s3:::repo.*.amazonaws.com/*'
- 'arn:aws:s3:::amazonlinux-2-repos-ap-southeast-2.s3.ap-southeast-2.amazonaws.com/*'
- 'arn:aws:s3:::amazonlinux.*.amazonaws.com/*'
- 'arn:aws:s3:::*.amazonaws.com'
- 'arn:aws:s3:::*.amazonaws.com/*'
- 'arn:aws:s3:::*.ap-southeast-2.amazonaws.com/*'
- 'arn:aws:s3:::*.ap-southeast-2.amazonaws.com/'
- 'arn:aws:s3:::*repos.ap-southeast-2-.amazonaws.com'
- 'arn:aws:s3:::*repos.ap-southeast-2.amazonaws.com/*'
- 'arn:aws:s3:::repo.ap-southeast-2-.amazonaws.com'
- 'arn:aws:s3:::repo.ap-southeast-2.amazonaws.com/*'
RouteTableIds:
- !Ref PrivateRouteTableA
- !Ref PrivateRouteTableB
ServiceName: !Sub 'com.amazonaws.${AWS::Region}.s3'
VpcId: !Ref BasicVpc
VpcEndpointType: Gateway
(如你所见,非常绝望)ECR 接口端点需要第一条规则从 s3 拉取图像层,所有其他规则都是尝试到达 amazon-linux-extras repos .
以下是我通过使用 SSM 端点连接会话管理器重新创建的初始化时发生的行为:
https://aws.amazon.com/premiumsupport/knowledge-center/connect-s3-vpc-endpoint/
我无法安装或更新
root@ip-10-0-3-120 bin]# yum install docker -y
加载的插件:extras_suggestions、langpacks、优先级、update-motd 无法检索镜像列表 https://amazonlinux-2-repos-ap-southeast-2.s3.ap-southeast-2.amazonaws.com/2/core/latest/x86_64/mirror.list 错误是 14: HTTPS 错误 403 - 禁止
配置的存储库之一失败(未知), 并且 yum 没有足够的缓存数据来继续。此时唯一 yum 可以做的安全事情就是失败。有几种方法可以“解决”这个问题:
1. Contact the upstream for the repository and get them to fix the problem.
2. Reconfigure the baseurl/etc. for the repository, to point to a working
upstream. This is most often useful if you are using a newer
distribution release than is supported by the repository (and the
packages for the previous distribution release still work).
3. Run the command with the repository temporarily disabled
yum --disablerepo=<repoid> ...
4. Disable the repository permanently, so yum won't use it by default. Yum
will then just ignore the repository until you permanently enable it
again or use --enablerepo for temporary usage:
yum-config-manager --disable <repoid>
or
subscription-manager repos --disable=<repoid>
5. Configure the failing repository to be skipped, if it is unavailable.
Note that yum will try to contact the repo. when it runs most commands,
so will have to try and fail each time (and thus. yum will be be much
slower). If it is a very temporary problem though, this is often a nice
compromise:
yum-config-manager --save --setopt=<repoid>.skip_if_unavailable=true
找不到有效的基础url 回购:amzn2-core/2/x86_64
不能:
amazon-linux-extras install docker
Catalog is not reachable. Try again later.
目录位于 https://amazonlinux-2-repos-ap-southeast-2.s3.ap-southeast-2.amazonaws.com/2/extras-catalog-x86_64-v2.json, https://amazonlinux-2-repos-ap-southeast-2.s3.ap-southeast-2.amazonaws.com/2/extras-catalog-x86_64.json 追溯(最近一次通话): 文件“/usr/lib/python2.7/site-packages/amazon_linux_extras/software_catalog.py”,第 131 行,在 fetch_new_catalog 中 请求 = url打开(url) 文件“/usr/lib64/python2.7/urllib2.py”,第 154 行,在 urlopen return opener.open(url, 数据, 超时) 文件“/usr/lib64/python2.7/urllib2.py”,第 435 行,打开 响应 = meth(请求,响应) 文件“/usr/lib64/python2.7/urllib2.py”,第 548 行,在 http_response 中 'http'、请求、响应、代码、消息、hdrs) 文件“/usr/lib64/python2.7/urllib2.py”,第 473 行,错误 return self._call_chain(*参数) 文件“/usr/lib64/python2.7/urllib2.py”,第 407 行,在 _call_chain 中 结果=函数(*参数) 文件“/usr/lib64/python2.7/urllib2.py”,第 556 行,在 http_error_default 中 引发 HTTPError(req.get_full_url(), code, msg, hdrs, fp) HTTPError:HTTP 错误 403:禁止
我错过了什么陷阱吗?我很困在这里。我熟悉基本的 VPC 网络、NACL 和 VPC 端点(我至少使用过的那些),我遵循了故障排除(尽管我已经按照概述进行了所有设置)。
我觉得 s3 政策是这里的问题或镜像列表。 如果您愿意阅读所有内容,非常感谢! 想法?
从它的外观来看,您很清楚自己要达到的目标。 即使你说它不是 NACL,我还是会再检查一次,因为有时人们很容易忽略一些小问题。考虑以下摘自 this AWS troubleshooting article 的代码片段,并确保您在相应区域的规则中具有正确的 S3 CIDR:
Make sure that the network ACLs associated with your EC2 instance's subnet allow the following: Egress on port 80 (HTTP) and 443 (HTTPS) to the Regional S3 service. Ingress on ephemeral TCP ports from the Regional S3 service. Ephemeral ports are 1024-65535. The Regional S3 service is the CIDR for the subnet containing your S3 interface endpoint. Or, if you're using an S3 gateway, the Regional S3 service is the public IP CIDR for the S3 service. Network ACLs don't support prefix lists. To add the S3 CIDR to your network ACL, use 0.0.0.0/0 as the S3 CIDR. You can also add the actual S3 CIDRs into the ACL. However, keep in mind that the S3 CIDRs can change at any time.
你的 S3 端点策略第一眼看起来不错,但你是对的,很可能是策略或端点配置一般是原因,所以我会再检查一次也是。
我之前观察到的另一件事是,根据您使用的 AMI 和您的 VPC 设置(DHCP 选项集、DNS 等),有时 EC2 实例无法在 yum 配置中正确设置它的默认区域。请检查 awsregion
和 awsdomain
文件是否存在于 /etc/yum/vars
目录中,它们的内容是什么。在您的用例中,awsregion 应该具有:
$ cat /etc/yum/vars/awsregion
ap-southeast-2
您可以检查实例上的 DNS 解析是否正常工作:
dig amazonlinux.ap-southeast-2.amazonaws.com
如果 DNS 似乎工作正常,您可以比较输出中的 IP 是否位于您在 NACL 中允许的范围内。
编辑:
再看一遍,这行比应有的要严格一些:
arn:aws:s3:::amazonlinux-2-repos-ap-southeast-2.s3.ap-southeast-2.amazonaws.com/*
根据文档,它应该是这样的:
arn:aws:s3:::amazonlinux-2-repos-ap-southeast-2/*
你好@nick https://whosebug.com/users/9405602/nick --> 这些是编写 'answer' 的极好的建议,因为解决问题对其他人很有价值,加上评论中的字符数限制。
肯定是政策的问题
sh-4.2$ cat /etc/yum/vars/awsregion
ap-southeast-2sh-4.2$
挖掘:
sh-4.2$ dig amazonlinux.ap-southeast-2.amazonaws.com
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.amzn2.5.2 <<>> amazonlinux.ap-东南-2.amazonaws.com ;;全局选项:+cmd ;;得到答案: ;; ->>HEADER<<- 操作码:QUERY,状态:NOERROR,id:598 ;;标志:qr rd ra;查询:1,答案:2,权限:0,附加:1
;;选择伪部分: ; EDNS:版本:0,标志:; UDP:4096 ;;问题部分: ;amazonlinux.ap-东南-2.amazonaws.com。在一个
;;答案部分: amazonlinux.ap-东南-2.amazonaws.com。 278 IN CNAME s3.dualstack.ap-东南-2.amazonaws.com。 s3.dualstack.ap-东南-2.amazonaws.com。 2 在 A 52.95.134.91
;;查询时间:4 毫秒 ;;服务器:10.0.0.2#53(10.0.0.2) ;;时间:9 月 20 日星期一 00:03:36 UTC 2021 ;;接收到的消息大小:112
让我们检查一下 NACL:
SO -----> '52.95.134.91' 由规则 101 出站和 400 入站捕获,因此在 NACL 方面看起来不错。 (未来的人解决问题,这是你应该寻找的)
关于那些 CIDR 块,部署脚本从当前列表中提取它们,并使用 jq 为 ap-southeast-2 提取 s3 块,并将它们作为参数传递给 CF 部署。
关于如何为他人做到这一点的文档: https://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html#aws-ip-download
另一个注意事项,您可能会注意到 0.0.0.0/0,我意识到(对于其他正在寻找的人请注意)这使得其他规则变得多余,我只是在 'in case' 中摆弄(并删除 -> pub 子网)。 私有子网出站流量 0.0.0.0/0 被路由到 public 个子网中的相应 NAT。我将为我的 public 子网添加出站并在某个时候删除此规则。
子网划分 atm 很简单: 10.0.0.0/16 发布一个:10.0.0.0/24 酒吧 b:10.0.1.0/24 私有:10.0.2.0/24 私人 b : 10.0.3.0/24
所以将重新引入 pub a 和 b 块的规则,以便我可以删除 0.0.0.0/0 上的允许
我现在确定这是政策。
我只是点击操作将控制台中的策略修改为 'full access' 以破解并取得成功。
我的猜测是镜像列表很难确定明确允许的内容,所以即使我撒了网,我也没有捕获到所需的桶。但我不太了解 aws 镜像的工作原理,所以这是一个猜测。
我可能不想要超级宽容的策略,所以这不是真正的修复,但它确认了问题所在。