Aws vpc таблица маршрутов по умолчанию в CloudFormation

Я что-то упустил, но нет ли способа добавить маршрут через CloudFormation в таблицу маршрутов по умолчанию, которая поставляется с VPC?

1 ответ

Решение

Нет, ты не можешь, в любом случае не к чему обращаться (например, к логическому идентификатору). Просто создайте свою собственную главную таблицу;-).

Вероятно, это одна из причин, по которой его нельзя использовать:

Один из способов защиты вашего 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

Таким образом, вы сможете использовать созданную таблицу маршрутов (в приведенном выше примере она используется для пересылки трафика из Интернет-шлюза)

Другие вопросы по тегам