尝试创建仅 IPv6 的 VPC 子网时,“属性 CidrBlock 或 Ipv4IpamPoolId 不能为空”

尝试创建仅 IPv6 的 VPC 子网时,“属性 CidrBlock 或 Ipv4IpamPoolId 不能为空”

当尝试创建一个仅限 IPv6VPC 子网,使用 AWS CloudFormation,堆栈创建失败并显示以下消息:

创建失败

资源处理程序返回消息:“提供的请求无效:属性 CidrBlock 或 Ipv4IpamPoolId 不能为空。”

这是我的 CloudFormation 模板的相关部分:

  SubnetIpv6Only:
    Type: 'AWS::EC2::Subnet'
    Properties:
      VpcId: !Ref CustomVPC
      AvailabilityZone: !Select [0, !GetAZs '']
      # ipv6-only
      AssignIpv6AddressOnCreation: true
      Ipv6CidrBlock: !Select [ 0, Fn::Cidr: [ !Select [ 0, !GetAtt CustomVPC.Ipv6CidrBlocks ], 4, 64 ] ]

CloudFormation文档VPC 子网状态

... 如果 VPC 具有 IPv6 CIDR 块,您可以创建仅 IPv6 子网或 [...]。对于仅 IPv6 子网,请指定 IPv6 CIDR 块。...

这似乎表明,指定一个Ipv6CidrBlock 没有a CidrBlock(ipv4) 足以使子网成为“仅 IPv6”子网。

我究竟做错了什么?

答案1

虽然这看起来是多余的,但似乎Ipv6Native: true需要在子网属性

IPv6 原生:表示这是否是仅 IPv6 子网。...

因此模板看起来如下:

  SubnetIpv6Only:
    Type: 'AWS::EC2::Subnet'
    Properties:
      VpcId: !Ref CustomVPC
      AvailabilityZone: !Select [0, !GetAZs '']
      # ipv6-only
      AssignIpv6AddressOnCreation: true
      Ipv6CidrBlock: !Select [ 0, Fn::Cidr: [ !Select [ 0, !GetAtt CustomVPC.Ipv6CidrBlocks ], 4, 64 ] ]
      Ipv6Native: true  # <-- new

相关内容