Я что-то упустил, но нет ли способа добавить маршрут через CloudFormation в таблицу маршрутов по умолчанию, которая поставляется с VPC?
Я что-то упустил, но нет ли способа добавить маршрут через CloudFormation в таблицу маршрутов по умолчанию, которая поставляется с VPC?
Ответы:
Нет, ты не можешь, в любом случае не к чему обращаться (например, к логическому идентификатору). Просто создайте свою собственную главную таблицу ;-).
Это , вероятно , одна из причин , он не может быть использован:
Один из способов защиты вашего VPC - это оставить основную таблицу маршрутов в исходном состоянии по умолчанию (только с локальным маршрутом) и явно связать каждую новую подсеть, которую вы создаете, с одной из созданных вами пользовательских таблиц маршрутов. Это гарантирует, что вы должны явно контролировать, как маршрутизируется исходящий трафик каждой подсети .
Вы можете определить каждый компонент самостоятельно на тот случай, если вам потребуется реализовать эту настройку через CloudFormation. Просто создайте свой собственный VPC, интернет-шлюз, подсеть и таблицу маршрутов. Затем вам нужно явно объявить RouteTableAssociation для конкретной подсети и создать общедоступный маршрут для этой таблицы. Вот пример
AWSTemplateFormatVersion: '2010-09-09'
Description: Example
Resources:
myInternetGateway:
Type: AWS::EC2::InternetGateway
Properties:
Tags:
- Key: "Name"
Value: "a_gateway"
myVPC:
Type: AWS::EC2::VPC
Properties:
CidrBlock: 10.0.0.0/24
EnableDnsSupport: true
EnableDnsHostnames: true
InstanceTenancy: default
# Attach Internet gateway to created VPC
AttachGateway:
Type: AWS::EC2::VPCGatewayAttachment
Properties:
VpcId:
Ref: myVPC
InternetGatewayId:
Ref: myInternetGateway
# Create public routes table for VPC
myPublicRouteTable:
Type: AWS::EC2::RouteTable
Properties:
VpcId: !Ref myVPC
Tags:
- Key: "Name"
Value: "public_routes"
# Create a route for the table which will forward the traffic
# from the gateway
myDefaultPublicRoute:
Type: AWS::EC2::Route
DependsOn: AttachGateway
Properties:
RouteTableId: !Ref myPublicRouteTable
DestinationCidrBlock: 0.0.0.0/0
GatewayId: !Ref myInternetGateway
# Subnet within VPC which will use route table (with default route)
# from Internet gateway
mySubnet:
Type: AWS::EC2::Subnet
Properties:
AvailabilityZone: ""
CidrBlock: 10.0.0.0/25
MapPublicIpOnLaunch: true
VpcId:
Ref: myVPC
# Associate route table (which contains default route) to newly created subnet
myPublicRouteTableAssociation:
Type: AWS::EC2::SubnetRouteTableAssociation
Properties:
RouteTableId: !Ref myPublicRouteTable
SubnetId: !Ref mySubnet
Таким образом, вы сможете использовать созданную таблицу маршрутов (в приведенном выше примере она используется для пересылки трафика из Интернет-шлюза)