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);
//
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);
//