AWS Cloudformation堆栈-路由表主要

时间:2018-11-02 06:53:03

标签: amazon-web-services amazon-cloudformation

是否可以在cloudformation堆栈模板中指定添加路由表并将其设置为main:是?

在我当前的堆栈模板上,总是有一个与我的VPC相关联的路由表(也是由堆栈创建的)设置为main:是,但是我的堆栈模板上没有指定路由表。

2 个答案:

答案 0 :(得分:0)

不,这是不可能的。

创建VPC时,会自动创建一个“主”路由表,它将成为所有未指定子网关联的子网的默认路由表。

无法通过具有此属性的CloudFormation创建子网。

答案 1 :(得分:0)

为了创建类似的设置,您需要自己编写以下整个堆栈:VPC,Internet网关,子网和路由表。然后,您需要为特定子网明确定义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的一种方法是将主路由表保留在其   原始默认状态(仅本地路由),并且显式   将您创建的每个新子网与自定义路由之一相关联   您创建的表格。这样可以确保您必须明确控制   每个子网的出站流量如何路由。