أمان الشبكة والبنية التحتية
معمارية VPC وتجزئة الشبكة
4 دقيقة للقراءة
السحابات الخاصة الافتراضية (VPCs) هي أساس أمان شبكة السحابة. التجزئة المناسبة تعزل أعباء العمل، تحد من نطاق الانفجار، وتنفذ الدفاع في العمق.
أساسيات VPC عبر المزودين
| المفهوم | AWS VPC | Azure VNet | GCP VPC |
|---|---|---|---|
| عزل الشبكة | VPC | Virtual Network | VPC Network |
| الشبكة الفرعية | Subnet (مرتبط بـ AZ) | Subnet (منطقة) | Subnet (منطقة) |
| جدول التوجيه | Route Table | Route Table | Routes |
| وصول الإنترنت | Internet Gateway | ضمني | Cloud NAT |
| الوصول الخاص | NAT Gateway | NAT Gateway | Cloud NAT |
| الاقتران | VPC Peering | VNet Peering | VPC Peering |
معمارية VPC آمنة
معمارية متعددة الطبقات
┌─────────────────────────────────────────────────────────────┐
│ VPC (10.0.0.0/16) │
├─────────────────────────────────────────────────────────────┤
│ شبكة فرعية عامة (10.0.1.0/24) │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ موازن التحميل، NAT Gateway، Bastion Host │ │
│ └─────────────────────────────────────────────────────┘ │
├─────────────────────────────────────────────────────────────┤
│ شبكة فرعية خاصة - التطبيق (10.0.10.0/24) │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ خوادم الويب، خوادم API، طبقة التطبيق │ │
│ └─────────────────────────────────────────────────────┘ │
├─────────────────────────────────────────────────────────────┤
│ شبكة فرعية خاصة - البيانات (10.0.20.0/24) │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ قواعد البيانات، الكاش، مخازن البيانات │ │
│ └─────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
تكوين AWS VPC
# Terraform - VPC آمن
resource "aws_vpc" "main" {
cidr_block = "10.0.0.0/16"
enable_dns_hostnames = true
enable_dns_support = true
tags = {
Name = "production-vpc"
}
}
# الشبكة الفرعية العامة
resource "aws_subnet" "public" {
vpc_id = aws_vpc.main.id
cidr_block = "10.0.1.0/24"
availability_zone = "us-east-1a"
map_public_ip_on_launch = false # لا تعيين IP عام تلقائياً أبداً
tags = {
Name = "public-subnet"
Tier = "public"
}
}
# الشبكة الفرعية الخاصة - لا مسار إنترنت
resource "aws_subnet" "private" {
vpc_id = aws_vpc.main.id
cidr_block = "10.0.10.0/24"
availability_zone = "us-east-1a"
tags = {
Name = "private-subnet"
Tier = "private"
}
}
تكوين Azure VNet
# إنشاء VNet مع شبكات فرعية
az network vnet create \
--name production-vnet \
--resource-group myRG \
--address-prefix 10.0.0.0/16 \
--subnet-name public-subnet \
--subnet-prefix 10.0.1.0/24
# إضافة شبكة فرعية خاصة
az network vnet subnet create \
--name private-subnet \
--vnet-name production-vnet \
--resource-group myRG \
--address-prefix 10.0.10.0/24
تكوين GCP VPC
# إنشاء VPC مخصص
gcloud compute networks create production-vpc \
--subnet-mode=custom
# إنشاء الشبكات الفرعية
gcloud compute networks subnets create public-subnet \
--network=production-vpc \
--region=us-central1 \
--range=10.0.1.0/24
gcloud compute networks subnets create private-subnet \
--network=production-vpc \
--region=us-central1 \
--range=10.0.10.0/24 \
--enable-private-ip-google-access
أفضل ممارسات تجزئة الشبكة
الحد من نطاق الانفجار
كل بيئة عمل يجب أن تكون معزولة:
| البيئة | VPC/VNet | الاقتران | الغرض |
|---|---|---|---|
| الإنتاج | prod-vpc | محدود | أعباء العمل الحية |
| التجريب | staging-vpc | لـ prod (قراءة فقط) | اختبار ما قبل الإنتاج |
| التطوير | dev-vpc | لا شيء | صناديق رمل المطورين |
| الخدمات المشتركة | shared-vpc | محور | DNS، التسجيل، الأمان |
التجزئة الدقيقة
ما وراء تجزئة الشبكة التقليدية:
تقليدي: الشبكة → الشبكة الفرعية → المضيف
سحابي أصلي: الشبكة → الشبكة الفرعية → مجموعة الأمان → التطبيق
مجموعات الأمان توفر تجزئة على مستوى التطبيق:
- طبقة الويب: تقبل فقط 443 من موازن التحميل
- طبقة التطبيق: تقبل فقط من طبقة الويب على منفذ محدد
- طبقة البيانات: تقبل فقط من طبقة التطبيق على منفذ قاعدة البيانات
سجلات تدفق VPC
ضرورية لرؤية الشبكة:
# AWS - تفعيل VPC Flow Logs
aws ec2 create-flow-logs \
--resource-type VPC \
--resource-ids vpc-12345678 \
--traffic-type ALL \
--log-destination-type cloud-watch-logs \
--log-group-name vpc-flow-logs
# Azure - تفعيل NSG Flow Logs
az network watcher flow-log create \
--name myFlowLog \
--nsg myNSG \
--resource-group myRG \
--storage-account myStorageAccount \
--enabled true
# GCP - تفعيل VPC Flow Logs على الشبكة الفرعية
gcloud compute networks subnets update private-subnet \
--region=us-central1 \
--enable-flow-logs
الاتصال الخاص
VPC Endpoints / Private Link
إبقاء حركة المرور بعيداً عن الإنترنت العام:
| الخدمة | AWS | Azure | GCP |
|---|---|---|---|
| التخزين | S3 Gateway Endpoint | Private Endpoint | Private Service Connect |
| قاعدة البيانات | RDS عبر Interface Endpoint | Private Endpoint | Private Service Connect |
| APIs | API Gateway Private | Private Endpoint | Private Service Connect |
التالي، سنكون مجموعات الأمان و NACLs للتحكم الدقيق في حركة المرور. :::