def test_nat_gateway(): """Create a NATGateway.""" s = Stack(name="MyStack") s += VPC("BuildVPC", "10.10.0.0/16") s += Subnet("BuildPublicSubnet", s["BuildVPC"], "10.10.10.0/24") s += Subnet("BuildPrivateSubnet", s["BuildVPC"], "10.10.20.0/24") s += InternetGateway("Gate") s += VPCGatewayAttachment("GateAttach", s["BuildVPC"], s["Gate"]) s += RouteTable("RT", s["BuildVPC"]) s += Route("PRoute", s["RT"], "0.0.0.0/0", s["Gate"], s["GateAttach"]) s += SubnetRouteTableAssociation("RTSAssoc", s["BuildPublicSubnet"], s["RT"]) s += EIP("NatEip", s["GateAttach"]) s += NatGateway("NatGate", s["NatEip"], s["BuildPublicSubnet"]) s += RouteTable("NATRT", s["BuildVPC"]) s += Route("NATRoute", s["NATRT"], "0.0.0.0/0", s["NatGate"], s["GateAttach"]) s += SubnetRouteTableAssociation("NatRTSAssoc", s["BuildPrivateSubnet"], s["NATRT"]) assert s.body
def test_nat_gateway(): """Create a NATGateway.""" s = Stack(name='MyStack') s += VPC('BuildVPC', '10.10.0.0/16') s += Subnet('BuildPublicSubnet', s['BuildVPC'], '10.10.10.0/24') s += Subnet('BuildPrivateSubnet', s['BuildVPC'], '10.10.20.0/24') s += InternetGateway('Gate') s += VPCGatewayAttachment('GateAttach', s['BuildVPC'], s['Gate']) s += RouteTable('RT', s['BuildVPC']) s += Route('PRoute', s['RT'], '0.0.0.0/0', s['Gate'], s['GateAttach']) s += SubnetRouteTableAssociation('RTSAssoc', s['BuildPublicSubnet'], s['RT']) s += EIP('NatEip', s['GateAttach']) s += NatGateway('NatGate', s['NatEip'], s['BuildPublicSubnet']) s += RouteTable('NATRT', s['BuildVPC']) s += Route('NATRoute', s['NATRT'], '0.0.0.0/0', s['NatGate'], s['GateAttach']) s += SubnetRouteTableAssociation('NatRTSAssoc', s['BuildPrivateSubnet'], s['NATRT']) assert s.body
def test_create_network(): s = Stack(name='teststack') s = Stack(name='MyStack') s += VPC('BuildVPC', '10.10.0.0/16') s += InternetGateway('Gate') s += Subnet('BuildPublicSubnet', s['BuildVPC'], '10.10.10.0/24') s += Subnet('BuildPrivateSubnet', s['BuildVPC'], '10.10.20.0/24') s += VPCGatewayAttachment('GateAttach', s['BuildVPC'], s['Gate']) s += RouteTable('RT', s['BuildVPC']) s += Route('PRoute', s['RT'], '0.0.0.0/0', s['Gate'], s['GateAttach']) s += SubnetRouteTableAssociation('RTSAssoc', s['BuildPublicSubnet'], s['RT']) assert s.body
def test_create_network(): s = Stack(name="teststack") s = Stack(name="MyStack") s += VPC("BuildVPC", "10.10.0.0/16") s += InternetGateway("Gate") s += Subnet("BuildPublicSubnet", s["BuildVPC"], "10.10.10.0/24") s += Subnet("BuildPrivateSubnet", s["BuildVPC"], "10.10.20.0/24") s += VPCGatewayAttachment("GateAttach", s["BuildVPC"], s["Gate"]) s += RouteTable("RT", s["BuildVPC"]) s += Route("PRoute", s["RT"], "0.0.0.0/0", s["Gate"], s["GateAttach"]) s += SubnetRouteTableAssociation("RTSAssoc", s["BuildPublicSubnet"], s["RT"]) p = PolicyDocument().append( Allow( to="GetObject", on="arn:aws:s3:::abucket/*", apply_to=Principal(PrincipalKind.SERVICE, "ec2.amazonaws.com"), ) ) s += VPCEndpoint("S3EndPoint", "s3", s["BuildVPC"], [s["RT"]], policy_document=p) assert s.body
def test_create_network(): s = Stack(name='teststack') s = Stack(name='MyStack') s += VPC('BuildVPC', '10.10.0.0/16') s += InternetGateway('Gate') s += Subnet('BuildPublicSubnet', s['BuildVPC'], '10.10.10.0/24') s += Subnet('BuildPrivateSubnet', s['BuildVPC'], '10.10.20.0/24') s += VPCGatewayAttachment('GateAttach', s['BuildVPC'], s['Gate']) s += RouteTable('RT', s['BuildVPC']) s += Route('PRoute', s['RT'], '0.0.0.0/0', s['Gate'], s['GateAttach']) s += SubnetRouteTableAssociation('RTSAssoc', s['BuildPublicSubnet'], s['RT']) p = PolicyDocument().append( Allow(to='GetObject', on='arn:aws:s3:::abucket/*', apply_to=Principal(PrincipalKind.SERVICE, 'ec2.amazonaws.com'))) s += VPCEndpoint('S3EndPoint', 's3', s['BuildVPC'], [s['RT']], policy_document=p) assert s.body
def __init__(self, name, vpc, cidr_block, description=None): """Initialize a subnet. This block create a basic subnet with an empty route table :param name: logical name of the subnet in the stack :type name: str :param vpc: VPC containing the subnet :type vpc: VPC :param cidr_block: block of addresses associated with the subnet :type cidr_block: str :param description: optional description :type description: str | None """ super(SubnetStack, self).__init__(name, description) # Create the subnet self.add(Subnet(name, vpc, cidr_block)) # Associate a route table self.add(RouteTable(name + 'RouteTable', vpc)) self.add(SubnetRouteTableAssociation(name + 'RouteTableAssoc', self.subnet, self.route_table))