Estou faltando alguma coisa, mas não há como adicionar uma rota via CloudFormation à tabela de rotas padrão fornecida com uma VPC?
Estou faltando alguma coisa, mas não há como adicionar uma rota via CloudFormation à tabela de rotas padrão fornecida com uma VPC?
Respostas:
Nah, você não pode, não há nada a que se referir (por exemplo, ID lógico). Basta criar sua própria tabela principal ;-).
Esta é provavelmente uma das razões pelas quais não pode ser usada:
Uma maneira de proteger sua VPC é deixar a tabela de rotas principal em seu estado padrão original (apenas com a rota local) e associar explicitamente cada nova sub - rede criada com uma das tabelas de rotas personalizadas criadas. Isso garante que você deve controlar explicitamente como o tráfego de saída de cada sub-rede é roteado .
Você pode definir cada componente sozinho, caso precise implementar essa configuração via CloudFormation. Basta criar seu próprio VPC, gateway da Internet, sub-rede e tabela de rotas. Em seguida, você precisa declarar explicitamente RouteTableAssociation para a sub-rede específica e criar uma rota pública para essa tabela. Aqui está um exemplo
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
Dessa forma, você poderá usar a tabela de rotas criada (no exemplo acima, é usada para encaminhar o tráfego do Gateway da Internet)