¿Me estoy perdiendo algo pero no hay forma de agregar una ruta a través de CloudFormation a la tabla de rutas predeterminada que viene provista con una VPC?
¿Me estoy perdiendo algo pero no hay forma de agregar una ruta a través de CloudFormation a la tabla de rutas predeterminada que viene provista con una VPC?
Respuestas:
No, no puedes, de todos modos no hay nada a lo que te refieras (por ejemplo, ID lógica). Simplemente cree su propia tabla principal ;-).
Esta es probablemente una de las razones por las que no se puede usar:
Una forma de proteger su VPC es dejar la tabla de ruta principal en su estado predeterminado original (solo con la ruta local) y asociar explícitamente cada subred nueva que cree con una de las tablas de ruta personalizadas que haya creado. Esto garantiza que debe controlar explícitamente cómo se enruta el tráfico saliente de cada subred .
Puede definir cada componente usted mismo en caso de que necesite implementar esa configuración a través de CloudFormation. Simplemente cree su propia VPC, puerta de enlace de Internet, subred y tabla de rutas. Luego, debe declarar explícitamente RouteTableAssociation para la subred específica y crear una ruta pública para esa tabla. Aquí hay un ejemplo
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
De esta manera, podrá usar la tabla de ruta creada (en el ejemplo anterior, se usa para reenviar el tráfico desde Internet Gateway)