You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS CloudFormation中!GetAtt获取NetworkAclAssociationId报错求助

解决CloudFormation修改默认NACL规则的GetAtt报错问题

问题原因

你遇到的报错根源在于:

  • NetworkAclAssociationId并非AWS::EC2::Subnet资源的有效输出属性,无法通过!GetAtt CSETrainingSubnet.NetworkAclAssociationId获取;
  • VPC资源没有DefaultNetworkAcl这个可通过!GetAtt调用的属性——默认NACL是VPC自动生成的隐式资源,不能直接通过VPC的属性引用。

解决方案

要修改VPC的默认NACL规则,需先在模板中引用默认NACL,再通过AWS::EC2::NetworkAclEntry资源添加/调整规则,具体实现如下:

  1. 引用默认NACL
    通过AWS::EC2::NetworkAcl资源,指定目标VPC的ID并设置IsDefault: true,CloudFormation会自动匹配该VPC下的默认NACL,而非创建新的NACL:
Resources:
  # 已定义的VPC和子网资源
  CSETrainingVPC:
    Type: AWS::EC2::VPC
    Properties:
      CidrBlock: 10.0.0.0/16
      Tags:
        - Key: Name
          Value: CSETrainingVPC

  CSETrainingSubnet:
    Type: AWS::EC2::Subnet
    Properties:
      VpcId: !Ref CSETrainingVPC
      CidrBlock: 10.0.1.0/24
      Tags:
        - Key: Name
          Value: CSETrainingSubnet

  # 引用VPC的默认NACL
  DefaultVpcNetworkAcl:
    Type: AWS::EC2::NetworkAcl
    Properties:
      VpcId: !Ref CSETrainingVPC
      IsDefault: true
  1. 添加/修改入站规则
    创建AWS::EC2::NetworkAclEntry资源,关联上述引用的默认NACL,配置入站规则:
DefaultNaclInboundRule:
    Type: AWS::EC2::NetworkAclEntry
    Properties:
      NetworkAclId: !Ref DefaultVpcNetworkAcl
      RuleNumber: 100  # 规则优先级,数值越小优先级越高
      Protocol: -1     # 代表匹配所有协议
      RuleAction: allow
      Egress: false    # false标识为入站规则
      CidrBlock: 0.0.0.0/0  # 可根据实际需求调整CIDR范围
  1. 添加/修改出站规则
    同理创建出站规则:
DefaultNaclOutboundRule:
    Type: AWS::EC2::NetworkAclEntry
    Properties:
      NetworkAclId: !Ref DefaultVpcNetworkAcl
      RuleNumber: 100
      Protocol: -1
      RuleAction: allow
      Egress: true     # true标识为出站规则
      CidrBlock: 0.0.0.0/0

注意事项

  • 默认NACL初始规则为拒绝所有入站/出站流量,添加允许规则时需确保规则编号(RuleNumber)小于默认拒绝规则的编号(默认是32767),否则允许规则不会生效;
  • 子网默认自动关联VPC的默认NACL,无需手动创建AWS::EC2::NetworkAclAssociation资源,除非你需要将子网切换到自定义NACL。

内容的提问来源于stack exchange,提问作者Nick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 16:48:23