如何使用 CloudFormation 编辑 VPC 的默认网络 ACL?
Posted
技术标签:
【中文标题】如何使用 CloudFormation 编辑 VPC 的默认网络 ACL?【英文标题】:How to use CloudFormation to edit a VPC's default network ACL? 【发布时间】:2016-02-23 12:29:13 【问题描述】:如果我在 CloudFormation 模板中声明以下资源,
"CoolVpc":
"Type": "AWS::EC2::VPC",
"Properties":
"CidrBlock": "10.10.0.0/16",
"Tags": [
"Key": "Name", "Value": "cool-vpc",
]
... CloudFormation 将尽职尽责地创建我的 VPC,并且作为该过程的一部分,它将自动创建一个默认网络 ACL 以配合它。我可以使用 GetAtt
函数轻松引用该 ACL,例如:
"TestSubnetAcl":
"Type": "AWS::EC2::SubnetNetworkAclAssociation",
"Properties":
"NetworkAclId": "Fn::GetAtt" : ["CoolVpc" , "DefaultNetworkAcl"],
"SubnetId": "Ref": "TestSubnet"
或
"AclRule100":
"Type": "AWS::EC2::NetworkAclEntry",
"Properties":
"CidrBlock": "0.0.0.0/0",
"Egress": "true",
"Protocol": "-1",
"RuleAction": "allow",
"RuleNumber": "100",
"NetworkAclId": "Fn::GetAtt" : ["CoolVpc" , "DefaultNetworkAcl"]
...但是如果我想编辑默认网络 ACL 本身呢? (是的,我知道唯一可以更改的是Tags
,但这正是我想要编辑的。)
我尝试在模板中添加一个新的 NetworkAcl 并且只使用它,但未命名的默认值一直存在,这让我很烦恼,我无法为其分配标签以明确其用途是。
【问题讨论】:
你有没有找到解决方案,因为这正是我现在想做的。 【参考方案1】:简短的回答是:“你不能”
Cloud Formation 旨在管理和维护模板中声明的资源。 不能更改/删除不属于模板的资源。
因此,您可以在默认 nACL 中添加 nACL 规则,但 RuleNumber 不是 100。
Rgds
【讨论】:
以上是关于如何使用 CloudFormation 编辑 VPC 的默认网络 ACL?的主要内容,如果未能解决你的问题,请参考以下文章
在 Cloudformation 模板中,我如何在 IoT Rule 中引用动态生成的 Lambda 函数 ARN?
CodePipeline CloudFormation 模板配置
透明视频,如何在每台设备上正确显示 webm 文件的 alpha 通道; VP9 还是 VP8 编码?
如何使用单个 cloudformation 模板创建多个 Elasticbeanstalk 环境
如何修复与 AWS::CloudFormation::Init 一起创建 EC2 的 cloudformation 模板