Aws vpc domyślna tabela tras w CloudFormation


Odpowiedzi:


25

Nie możesz, i tak nie ma się do czego odwoływać (np. Identyfikator logiczny). Po prostu stwórz własny główny stół ;-).

Jest to prawdopodobnie jeden z powodów, dla których nie można go użyć:

Jednym ze sposobów ochrony VPC jest pozostawienie głównej tabeli tras w oryginalnym stanie domyślnym (tylko z lokalną trasą) i jawne powiązanie każdej nowej podsieci, którą tworzysz, z jedną z utworzonych niestandardowych tabel tras. Zapewnia to, że musisz jawnie kontrolować sposób kierowania ruchu wychodzącego każdej podsieci .


3
Brzmi jak obowiązek.
Sleeper Smith

3
Myślisz, że to źle? Poczekaj, aż rozdzielisz szablony, aby każdy z nich miał tylko jedną odpowiedzialność, przy czym szablon nadrzędny przyciąga mniejsze do większego stosu ... teraz musisz przekazać zarówno VPC, jak i tabelę trasy z jednego szablonu do drugiego dziecka szablony. To pomimo faktu, że RouteTable już wie, którego VPC jest częścią, ale nie można z niego wyciągnąć tych informacji. </rant>
DanielM

3
@DanielM Brzmi jak praca dla github.com/SleeperSmith/Aws-Lego . Wygląda na to, że mamy ten sam problem. : D hahahaha.
Sleeper Smith


1

Możesz zdefiniować każdy komponent samodzielnie na wypadek, gdybyś musiał zaimplementować tę konfigurację za pomocą CloudFormation. Wystarczy utworzyć własny VPC, bramę internetową, podsieć i tablicę tras. Następnie musisz jawnie zadeklarować RouteTableAssociation dla konkretnej podsieci i utworzyć trasę publiczną dla tej tabeli. Oto przykład

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

W ten sposób będziesz mógł użyć utworzonej tabeli tras (w powyższym przykładzie jest ona używana do przekazywania ruchu z Internet Gateway)

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.