Стек облачной информации AWS - таблица маршрутов - PullRequest
0 голосов
/ 02 ноября 2018

Можно ли указать в шаблоне стека облачной информации при добавлении таблицы маршрутов и задать для нее значение main: да?

В моем текущем шаблоне стека всегда есть таблица маршрутов, связанная с моим VPC (также созданным в стеке), для которой установлено значение main: да, но в моем шаблоне стека не указана таблица маршрутов.

Ответы [ 2 ]

0 голосов
/ 03 июня 2019

Чтобы создать аналогичную настройку, вам нужно написать весь стек для инфраструктуры самостоятельно: VPC, Internet Gateway, Subnet и Route Table. Затем вам нужно явно определить RouteTableAssociation для конкретной подсети и создать общедоступный маршрут для таблицы. YAML пример такой установки

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

Шаблон не очень короткий, но чтобы выполнить это простое требование, вы должны определить все явно.

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

0 голосов
/ 02 ноября 2018

Нет, это невозможно.

При создании VPC автоматически создается «Основная» таблица маршрутов, которая будет таблицей маршрутов по умолчанию для всех подсетей, для которых не определена ассоциация подсетей.

Невозможно создать подсеть через CloudFormation, которая принимает это свойство.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...