Table de routage par défaut aws vpc dans CloudFormation

Réponses:

25

Non, vous ne pouvez pas y faire référence de toute façon (par exemple ID logique). Créez simplement votre propre table principale ;-).

C'est probablement l'une des raisons pour lesquelles il ne peut pas être utilisé:

Une façon de protéger votre VPC consiste à laisser la table de routage principale dans son état par défaut d'origine (avec uniquement la route locale) et à associer explicitement chaque nouveau sous-réseau que vous créez à l'une des tables de routage personnalisées que vous avez créées. Cela garantit que vous devez contrôler explicitement la façon dont le trafic sortant de chaque sous-réseau est acheminé .

user2256978
la source
3
Cela ressemble à une corvée.
Sleeper Smith
3
Vous pensez que c'est mauvais? Attendez de séparer vos modèles pour que chacun n'ait qu'une seule responsabilité, avec un modèle parent en tirant les plus petits dans une plus grande pile ... maintenant, vous devez passer le VPC et le RouteTable d'un modèle à tous vos autres enfants modèles. Ceci, malgré le fait que RouteTable sait déjà de quel VPC il fait partie, mais vous ne pouvez pas en extraire ces informations. </rant>
DanielM
3
@DanielM Cela ressemble à un travail pour github.com/SleeperSmith/Aws-Lego . On dirait que nous avons le même reproche. : D hahahaha.
Sleeper Smith
Plus d'informations sur - forums.aws.amazon.com/thread.jspa?threadID=97060
ALex_hha
1

Vous pouvez définir chaque composant par vous-même au cas où vous auriez besoin d'implémenter cette configuration via CloudFormation. Créez simplement votre propre VPC, passerelle Internet, sous-réseau et table de routage. Ensuite, vous devez déclarer explicitement RouteTableAssociation pour le sous-réseau spécifique et créer une route publique pour cette table. Voici un exemple

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

De cette façon, vous pourrez utiliser la table de routage créée (dans l'exemple ci-dessus, elle est utilisée pour transférer le trafic depuis Internet Gateway)

Le plus recherché
la source