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


19

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


同じトピックに関する次の説明を参照してください。forums.aws.amazon.com/thread.jspa?threadID=97060
Chiranga Alwis

回答:


25

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

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

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


3
雑用のように聞こえます。
スリーパースミス14

3
それが悪いと思う?親テンプレートが小さなテンプレートを大きなスタックに引っ張って、それぞれが単一の責任を持つようにテンプレートを分離するまで待ちます...今、1つのテンプレートから他のすべての子にVPC RouteTableの両方を渡す必要がありますテンプレート。これは、RouteTableがどのVPCの一部であるかを既に知っていますが、その情報をそこから抽出することはできません。</ rant>
-DanielM

3
@DanielM github.com/SleeperSmith/Aws-Legoの仕事のように聞こえます。同じ不満があるようです。:Dハハハハ。
スリーパースミス


1

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

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.