Skip to main content

cidr: "10.0.1.0/24", az: "cn-north-1a", arn: "arn:aws:ec2:cn-north-1:123456789012:subnet/subnet-abc12345", type: "public", available_ipv4_addresses: 248, auto_assign_public_ip: true, map_public_ip_on_launch: true, associated_acl: "acl-default-123", associated_route_table: "rtb-public-123", subnet_flow_logs: { enabled: true, log_destination: "s3://subnet-flow-logs-bucket" }, tag: { tier: "web", environment: "production", subnet_type: "public" }, status: "active", created_at: datetime(), updated_at: datetime()});CREATE (subnet2:Subnet { id: "subnet-def67890", name: "production-app-subnet-1a", cidr: "10.0.2.0/24", az: "cn-north-1a", arn: "arn:aws:ec2:cn-north-1:123456789012:subnet/subnet-def67890", type: "private", available_ipv4_addresses: 245, auto_assign_public_ip: false, map_public_ip_on_launch: false, associated_acl: "acl-private-456", associated_route_table: "rtb-private-456", subnet_flow_logs: { enabled: true, log_destination: "s3://subnet-flow-logs-bucket" }, tag: { tier: "application", environment: "production", subnet_type: "private" }, status: "active", created_at: datetime(), updated_at: datetime()});CREATE (subnet3:Subnet { id: "subnet-ghi13579", name: "production-db-subnet-1a", cidr: "10.0.3.0/24", az: "cn-north-1a", arn: "arn:aws:ec2:cn-north-1:123456789012:subnet/subnet-ghi13579", type: "private", available_ipv4_addresses: 250, auto_assign_public_ip: false, map_public_ip_on_launch: false, associated_acl: "acl-database-789", associated_route_table: "rtb-database-789", subnet_flow_logs: { enabled: false, log_destination: null }, tag: { tier: "database", environment: "production", subnet_type: "private", encryption: "required" }, status: "active", created_at: datetime(), updated_at: datetime()});// 6.3 Internet Gateway 建模CREATE (igw1:InternetGateway { id: "igw-12345abc", name: "production-main-igw", associations_vpc: "vpc-12345678", tag: { environment: "production", purpose: "main-internet-gateway" }, status: "active", created_at: datetime(), updated_at: datetime()});// 6.4 Route Table 建模CREATE (rt_public:RouteTable { id: "rtb-public-123", name: "production-public-rt", associations_subnets: ["subnet-abc12345"], associations_vpc: "vpc-12345678", routes: [ { destination: "10.0.0.0/16", target: "local", status: "active" }, { destination: "0.0.0.0/0", target: "igw-12345abc", status: "active" } ], tag: { type: "public", environment: "production" }, status: "active", created_at: datetime(), updated_at: datetime()});CREATE (rt_private:RouteTable { id: "rtb-private-456", name: "production-private-rt", associations_subnets: ["subnet-def67890"], associations_vpc: "vpc-12345678", routes: [ { destination: "10.0.0.0/16", target: "local", status: "active" }, { destination: "0.0.0.0/0", target: "nat-gateway-123", status: "active" } ], tag: { type: "private", environment: "production" }, status: "active", created_at: datetime(), updated_at: datetime()});// ==========================================// 7. 建立网络资源关系(包含双向关系)// ==========================================// Account <-> VPC 关系MATCH (acc:Account {id: "123456789012"}), (vpc1:VPC {id: "vpc-12345678"})CREATE (acc)-[:CONTAINS_VPC]->(vpc1), (vpc1)-[:BELONGS_TO_ACCOUNT]->(acc);MATCH (acc:Account {id: "123456789012"}), (vpc2:VPC {id: "vpc-87654321"})CREATE (acc)-[:CONTAINS_VPC]->(vpc2), (vpc2)-[:BELONGS_TO_ACCOUNT]->(acc);//

  1. cidr: "10.0.1.0/24",
    az: "cn-north-1a",
    arn: "arn:aws:ec2:cn-north-1:123456789012:subnet/subnet-abc12345",
    type: "public",
    available_ipv4_addresses: 248,
    auto_assign_public_ip: true,
    map_public_ip_on_launch: true,
    associated_acl: "acl-default-123",
    associated_route_table: "rtb-public-123",
    subnet_flow_logs: {
    enabled: true,
    log_destination: "s3://subnet-flow-logs-bucket"
    },
    tag: {
    tier: "web",
    environment: "production",
    subnet_type: "public"
    },
    status: "active",
    created_at: datetime(),
    updated_at: datetime()
    });

    CREATE (subnet2:Subnet {
    id: "subnet-def67890",
    name: "production-app-subnet-1a",
    cidr: "10.0.2.0/24",
    az: "cn-north-1a",
    arn: "arn:aws:ec2:cn-north-1:123456789012:subnet/subnet-def67890",
    type: "private",
    available_ipv4_addresses: 245,
    auto_assign_public_ip: false,
    map_public_ip_on_launch: false,
    associated_acl: "acl-private-456",
    associated_route_table: "rtb-private-456",
    subnet_flow_logs: {
    enabled: true,
    log_destination: "s3://subnet-flow-logs-bucket"
    },
    tag: {
    tier: "application",
    environment: "production",
    subnet_type: "private"
    },
    status: "active",
    created_at: datetime(),
    updated_at: datetime()
    });

    CREATE (subnet3:Subnet {
    id: "subnet-ghi13579",
    name: "production-db-subnet-1a",
    cidr: "10.0.3.0/24",
    az: "cn-north-1a",
    arn: "arn:aws:ec2:cn-north-1:123456789012:subnet/subnet-ghi13579",
    type: "private",
    available_ipv4_addresses: 250,
    auto_assign_public_ip: false,
    map_public_ip_on_launch: false,
    associated_acl: "acl-database-789",
    associated_route_table: "rtb-database-789",
    subnet_flow_logs: {
    enabled: false,
    log_destination: null
    },
    tag: {
    tier: "database",
    environment: "production",
    subnet_type: "private",
    encryption: "required"
    },
    status: "active",
    created_at: datetime(),
    updated_at: datetime()
    });

    // 6.3 Internet Gateway 建模
    CREATE (igw1:InternetGateway {
    id: "igw-12345abc",
    name: "production-main-igw",
    associations_vpc: "vpc-12345678",
    tag: {
    environment: "production",
    purpose: "main-internet-gateway"
    },
    status: "active",
    created_at: datetime(),
    updated_at: datetime()
    });

    // 6.4 Route Table 建模
    CREATE (rt_public:RouteTable {
    id: "rtb-public-123",
    name: "production-public-rt",
    associations_subnets: ["subnet-abc12345"],
    associations_vpc: "vpc-12345678",
    routes: [
    {
    destination: "10.0.0.0/16",
    target: "local",
    status: "active"
    },
    {
    destination: "0.0.0.0/0",
    target: "igw-12345abc",
    status: "active"
    }
    ],
    tag: {
    type: "public",
    environment: "production"
    },
    status: "active",
    created_at: datetime(),
    updated_at: datetime()
    });

    CREATE (rt_private:RouteTable {
    id: "rtb-private-456",
    name: "production-private-rt",
    associations_subnets: ["subnet-def67890"],
    associations_vpc: "vpc-12345678",
    routes: [
    {
    destination: "10.0.0.0/16",
    target: "local",
    status: "active"
    },
    {
    destination: "0.0.0.0/0",
    target: "nat-gateway-123",
    status: "active"
    }
    ],
    tag: {
    type: "private",
    environment: "production"
    },
    status: "active",
    created_at: datetime(),
    updated_at: datetime()
    });

    // ==========================================
    // 7. 建立网络资源关系(包含双向关系)
    // ==========================================

    // Account <-> VPC 关系
    MATCH (acc:Account {id: "123456789012"}), (vpc1:VPC {id: "vpc-12345678"})
    CREATE (acc)-[:CONTAINS_VPC]->(vpc1),
    (vpc1)-[:BELONGS_TO_ACCOUNT]->(acc);

    MATCH (acc:Account {id: "123456789012"}), (vpc2:VPC {id: "vpc-87654321"})
    CREATE (acc)-[:CONTAINS_VPC]->(vpc2),
    (vpc2)-[:BELONGS_TO_ACCOUNT]->(acc);

    //