Мені щось не вистачає, але чи немає способу додати маршрут через 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
Таким чином ви зможете використовувати створену таблицю маршрутів (у прикладі вище використовується для пересилання трафіку з Інтернет-шлюзу)