Suis-je en train de manquer quelque chose, mais n'y a-t-il aucun moyen d'ajouter une route via CloudFormation à la table de route par défaut fournie avec un VPC?
Suis-je en train de manquer quelque chose, mais n'y a-t-il aucun moyen d'ajouter une route via CloudFormation à la table de route par défaut fournie avec un VPC?
Réponses:
Non, vous ne pouvez pas y faire référence de toute façon (par exemple ID logique). Créez simplement votre propre table principale ;-).
C'est probablement l'une des raisons pour lesquelles il ne peut pas être utilisé:
Une façon de protéger votre VPC consiste à laisser la table de routage principale dans son état par défaut d'origine (avec uniquement la route locale) et à associer explicitement chaque nouveau sous-réseau que vous créez à l'une des tables de routage personnalisées que vous avez créées. Cela garantit que vous devez contrôler explicitement la façon dont le trafic sortant de chaque sous-réseau est acheminé .
Vous pouvez définir chaque composant par vous-même au cas où vous auriez besoin d'implémenter cette configuration via CloudFormation. Créez simplement votre propre VPC, passerelle Internet, sous-réseau et table de routage. Ensuite, vous devez déclarer explicitement RouteTableAssociation pour le sous-réseau spécifique et créer une route publique pour cette table. Voici un exemple
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 cette façon, vous pourrez utiliser la table de routage créée (dans l'exemple ci-dessus, elle est utilisée pour transférer le trafic depuis Internet Gateway)