Apakah saya kehilangan sesuatu tetapi tidak ada cara untuk menambahkan rute melalui CloudFormation ke tabel rute default yang datang dengan ketentuan VPC?
Apakah saya kehilangan sesuatu tetapi tidak ada cara untuk menambahkan rute melalui CloudFormation ke tabel rute default yang datang dengan ketentuan VPC?
Jawaban:
Nah Anda tidak bisa, toh tidak ada yang merujuk (misalnya ID logis). Cukup buat tabel utama Anda sendiri ;-).
Ini mungkin salah satu alasan mengapa itu tidak dapat digunakan:
Salah satu cara untuk melindungi VPC Anda adalah meninggalkan tabel rute utama dalam keadaan default aslinya (hanya dengan rute lokal), dan secara eksplisit mengaitkan setiap subnet baru yang Anda buat dengan salah satu tabel rute kustom yang Anda buat. Ini memastikan bahwa Anda harus secara eksplisit mengontrol bagaimana lalu lintas keluar setiap subnet dirutekan .
Anda dapat menentukan masing-masing komponen sendiri jika Anda perlu mengimplementasikan pengaturan itu melalui CloudFormation. Cukup buat VPC, Internet Gateway, Subnet, dan Tabel Rute Anda sendiri. Maka Anda perlu secara eksplisit mendeklarasikan RouteTableAssociation untuk subnet tertentu dan membuat rute publik untuk tabel itu. Ini sebuah contoh
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
Dengan cara ini Anda akan dapat menggunakan tabel rute yang dibuat (dalam contoh di atas digunakan untuk meneruskan lalu lintas dari Internet Gateway)