示例#1
0
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
示例#2
0
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
示例#3
0
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
示例#4
0
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
示例#5
0
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
示例#6
0
    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))