الدرس 13 من 24

أمان الشبكة والبنية التحتية

معمارية 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

الاتصال الخاص

إبقاء حركة المرور بعيداً عن الإنترنت العام:

الخدمة 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 للتحكم الدقيق في حركة المرور. :::

اختبار

الوحدة 4: أمان الشبكة والبنية التحتية

خذ الاختبار