Skip to content

Sydney

Progress checklist

syd-hub owns the Sydney Transit Gateway, inspection VPC (10.255.0.0/24), inspection / no-inspection route tables, and the RAM share spokes use.

Network Firewall is off. Mesh first; NFW is Network Firewall → Sydney.

Both route tables exist from the start. While the firewall is off, spoke_association resolves to the no_inspection table — which is why two of the outputs below share one id. Icons from aws-icons.
What the Sydney hub stack creates, before Network Firewall The Terraform stack at environment/sandbox/ap-southeast-2/hub, with both firewall flags false, creates a Transit Gateway with ASN 65001, an inspection VPC 10.255.0.0/24 with an available VPC attachment, and a RAM share to the dev and prod accounts. Network Firewall is drawn faded and dashed because the flags are false. Two TGW route tables exist: the no-inspection table, which is also what spoke_association_route_table_id resolves to while the firewall is off, and the inspection table, which is created now but has no spokes associated yet. Terraform stack ap-southeast-2/hub flags held false for now: enable_network_firewall firewall_rules_enabled workload_account_ids = [dev, prod] ap-southeast-2 · Sydney syd-hub account Transit Gateway ASN 65001 inspection VPC · 10.255.0.0/24 VPC attachment available Network Firewall not yet — flags false RAM share ACTIVE, to dev + prod TGW route tables no_inspection tgw-rtb-00be3893a2741a265 spoke_association_route_table_id resolves to this same id while the firewall is off inspection tgw-rtb-09996f46ffff7d5c6 created now, nothing associated yet — spokes move here when NFW is attached

Validate this Region, then Auckland, then Hubs → Validate.

  1. Configure and apply:

    Terminal window
    cd environment/sandbox/ap-southeast-2/hub
    cp terraform.tfvars.example terraform.tfvars
    # hub_profile, workload_account_ids = [dev, prod]
    # leave:
    # enable_network_firewall = false
    # firewall_rules_enabled = false
    terraform init
    terraform apply
  2. Capture outputs:

    Terminal window
    export AWS_PROFILE=YOUR_HUB_PROFILE
    SYD_TGW=$(terraform output -raw transit_gateway_id)
    terraform output -raw transit_gateway_id
    terraform output -raw inspection_vpc_id
    terraform output -raw inspection_vpc_cidr
    terraform output -raw inspection_attachment_id
    terraform output -raw enable_network_firewall
    terraform output -raw firewall_rules_enabled
    terraform output -raw spoke_association_route_table_id
    terraform output -raw no_inspection_route_table_id
    terraform output -raw inspection_route_table_id
    tgw-04fc7f3ccf224fdf2
    vpc-04a40ca73a73d91ef
    10.255.0.0/24
    tgw-attach-023a756ffaa0fd02a
    false
    false
    tgw-rtb-00be3893a2741a265 # spoke_association == no_inspection
    tgw-rtb-00be3893a2741a265
    tgw-rtb-09996f46ffff7d5c6 # inspection exists; unused by spokes yet
  1. Transit Gateway state and ASN:

    Terminal window
    aws ec2 describe-transit-gateways \
    --region ap-southeast-2 \
    --transit-gateway-ids "$SYD_TGW" \
    --query 'TransitGateways[0].{State:State,Asn:Options.AmazonSideAsn}' \
    --output table
    | Asn | State |
    | 65001 | available |
  2. Inspection VPC attachment:

    Terminal window
    ATT=$(terraform output -raw inspection_attachment_id)
    aws ec2 describe-transit-gateway-vpc-attachments \
    --region ap-southeast-2 \
    --transit-gateway-attachment-ids "$ATT" \
    --query 'TransitGatewayVpcAttachments[0].{Id:TransitGatewayAttachmentId,State:State,Vpc:VpcId}' \
    --output table
    | tgw-attach-023a756ffaa0fd02a | available | vpc-04a40ca73a73d91ef |
  3. NFW not attached:

    Terminal window
    terraform output -raw enable_network_firewall
    terraform output -raw firewall_arn
    false

    (firewall_arn is empty / null.)

  4. RAM share:

    Terminal window
    aws ram get-resource-shares \
    --region ap-southeast-2 \
    --resource-owner SELF \
    --query 'resourceShares[?contains(name, `nfw-lab`)].[name,status]' \
    --output table
    | nfw-lab-syd-tgw-share | ACTIVE |

Auckland