web-dev-qa-db-ja.com

CloudFormationのAWS VPCデフォルトルートテーブル

何か不足していますが、CloudFormationを介してVPCでプロビジョニングされたデフォルトのルートテーブルにルートを追加する方法はありませんか?

20
Sleeper Smith

いいえ、できません。とにかく参照するものは何もありません(論理IDなど)。独自のメインテーブルを作成するだけです;-)。

これ はおそらくそれが使用できない理由の1つです:

VPCを保護する1つの方法は、メインルートテーブルを残すことです(ローカルルートのみで)元のデフォルト状態のままにし、新しいサブネットをそれぞれ明示的に関連付ける 1つに作成します作成したカスタムルートテーブルのこれにより、明示的に各サブネットの送信トラフィックのルーティング方法を制御する必要があります。

25
user2256978

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

これにより、作成したルートテーブルを使用できるようになります(上記の例では、インターネットゲートウェイからのトラフィックの転送に使用されます)。

1
Most Wanted