Aws vpc-Standardroutentabelle in CloudFormation


Antworten:


25

Nein, das kannst du nicht, es gibt sowieso nichts, worauf man sich beziehen kann (zB logische ID). Erstelle einfach deinen eigenen Haupttisch ;-).

Dies ist wahrscheinlich einer der Gründe, warum es nicht verwendet werden kann:

Eine Möglichkeit zum Schutz Ihrer VPC besteht darin, die Hauptroutentabelle in ihrem ursprünglichen Standardzustand zu belassen (nur die lokale Route) und jedes neu erstellte Subnetz explizit einer der von Ihnen erstellten benutzerdefinierten Routentabellen zuzuordnen . Dadurch wird sichergestellt, dass Sie explizit steuern müssen , wie der ausgehende Datenverkehr jedes Subnetzes weitergeleitet wird .


3
Klingt nach einer lästigen Pflicht.
Sleeper Smith

3
Findest du das schlecht? Warten Sie, bis Sie Ihre Vorlagen getrennt haben, sodass jeder nur eine einzige Verantwortung hat. Eine übergeordnete Vorlage zieht kleinere Vorlagen in einen größeren Stapel. Jetzt müssen Sie sowohl die VPC als auch die RouteTable von einer Vorlage an alle anderen untergeordneten Vorlagen übergeben Vorlagen. Dies, obwohl die RouteTable bereits weiß, zu welcher VPC sie gehört, aber Sie können diese Informationen nicht daraus extrahieren. </ Rant>
DanielM

3
@DanielM Klingt nach einem Job für github.com/SleeperSmith/Aws-Lego . Sieht so aus, als hätten wir die gleichen Probleme. : D hahahaha.
Sleeper Smith


1

Sie können jede Komponente für den Fall, dass Sie dieses Setup über CloudFormation implementieren müssen, selbst definieren. Erstellen Sie einfach Ihre eigenen VPCs, Internet-Gateways, Subnetze und Routentabellen. Anschließend müssen Sie RouteTableAssociation explizit für das jeweilige Subnetz deklarieren und eine öffentliche Route für diese Tabelle erstellen. Hier ist ein Beispiel

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

Auf diese Weise können Sie die erstellte Routentabelle verwenden (im obigen Beispiel wird der Datenverkehr vom Internet Gateway weitergeleitet).

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.