Mi sto perdendo qualcosa ma non c'è modo di aggiungere una route tramite CloudFormation alla tabella di route predefinita fornita con un VPC?
Mi sto perdendo qualcosa ma non c'è modo di aggiungere una route tramite CloudFormation alla tabella di route predefinita fornita con un VPC?
Risposte:
No, non puoi, comunque non c'è niente a cui fare riferimento (ad es. ID logico). Crea la tua tabella principale ;-).
Questo è probabilmente uno dei motivi per cui non può essere utilizzato:
Un modo per proteggere il tuo VPC è lasciare la tabella di route principale nel suo stato predefinito originale (con solo la route locale) e associare esplicitamente ogni nuova sottorete che crei a una delle tabelle di route personalizzate che hai creato. Ciò garantisce che sia necessario controllare esplicitamente il modo in cui viene instradato il traffico in uscita di ciascuna subnet .
Puoi definire ogni componente da solo nel caso in cui sia necessario implementare tale impostazione tramite CloudFormation. Crea il tuo VPC, gateway Internet, sottorete e tabella di instradamento. Quindi è necessario dichiarare esplicitamente RouteTableAssociation per la sottorete specifica e creare una route pubblica per quella tabella. Ecco un esempio
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
In questo modo sarai in grado di utilizzare la tabella dei percorsi creata (nell'esempio sopra è usato per inoltrare il traffico da Internet Gateway)