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
- Не используйте таблицу маршрутов по умолчанию (см. https://serverfault.com/questions/588904/aws-vpc-default-route-table-in-cloudformation)
- Вы можете получить группу безопасности по умолчанию согласно https://serverfault.com/questions/544439/aws-cloudformation-vpc-default-security-group
- И, наконец, вы также можете получить DefaultNetworkAcl в той же группе, что и DefaultSecurityGroup выше. Смотрите также https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc.html)