AWS CloudFormation: как мне обратиться к таблице маршрутов по умолчанию / основной (которая создается при создании VPC) в шаблоне облачной информации?

У меня есть шаблон CloudFormation, который создает пользовательский VPC. Шаблон создает следующие ресурсы - VPC, интернет-шлюз, присоединяет IGW к VPC и создает общедоступную подсеть. Я хочу добавить маршрут (пункт назначения 0.0.0.0/0, целевой IGW) в таблицу маршрутов, которая создается как часть VPC.

Я прочитал документацию по облачной информации о маршрутах и ​​таблицах маршрутов, чтобы понять, как это сделать, но безрезультатно.

Я могу использовать функцию Fn::Ref для ссылки на ресурсы или параметры, которые явно созданы как часть шаблона, но как я могу ссылаться на ресурсы, которые создаются по своей сути с помощью VPC?

Любое понимание того, как повторно использовать существующую таблицу маршрутов, NACL и Security Group, высоко ценится.

Спасибо,

1 ответ

Пока хорошая работа - у вас есть интернет-шлюз, таблица маршрутов и общедоступная подсеть. Теперь вам нужно создать маршрут и прикрепить таблицу маршрутов к подсети, если вы еще этого не сделали. Если вы используете YAML, это может выглядеть примерно так:

 InternetGateway:
    Type: AWS::EC2::InternetGateway
    Properties:
      Tags:
        - Key: Name
          Value: !Ref EnvironmentName

  InternetGatewayAttachment:
    Type: AWS::EC2::VPCGatewayAttachment
    Properties:
      InternetGatewayId: !Ref InternetGateway
      VpcId: !Ref VPC

  PublicSubnet1:
    Type: AWS::EC2::Subnet
    Properties:
      VpcId: !Ref VPC
      AvailabilityZone: !Select [ 0, !GetAZs '' ]
      CidrBlock: !Ref PublicSubnet1CIDR
      MapPublicIpOnLaunch: true
      Tags:
        - Key: Name
          Value: !Sub ${EnvironmentName} Public Subnet (AZ1)

  PublicRouteTable:
    Type: AWS::EC2::RouteTable
    Properties:
      VpcId: !Ref VPC
      Tags:
        - Key: Name
          Value: !Sub ${EnvironmentName} Public Routes

  DefaultPublicRoute:
    Type: AWS::EC2::Route
    DependsOn: InternetGatewayAttachment
    Properties:
      RouteTableId: !Ref PublicRouteTable
      DestinationCidrBlock: 0.0.0.0/0
      GatewayId: !Ref InternetGateway

  PublicSubnet1RouteTableAssociation:
    Type: AWS::EC2::SubnetRouteTableAssociation
    Properties:
      RouteTableId: !Ref PublicRouteTable
      SubnetId: !Ref PublicSubnet1
  1. Не используйте таблицу маршрутов по умолчанию (см. https://serverfault.com/questions/588904/aws-vpc-default-route-table-in-cloudformation)
  2. Вы можете получить группу безопасности по умолчанию согласно https://serverfault.com/questions/544439/aws-cloudformation-vpc-default-security-group
  3. И, наконец, вы также можете получить DefaultNetworkAcl в той же группе, что и DefaultSecurityGroup выше. Смотрите также https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc.html)
Другие вопросы по тегам