أمان التخزين والبيانات
النسخ الاحتياطي والتعافي من الكوارث ودورة حياة البيانات
4 دقيقة للقراءة
هجوم فدية Codefinger في يناير 2025 أظهر درساً حاسماً: بدون نسخ احتياطية وقدرات استعادة مناسبة، البيانات السحابية المشفرة تعني نهاية اللعبة. مجموعات الفدية تستهدف بشكل خاص المؤسسات ذات استراتيجيات النسخ الاحتياطي الضعيفة.
استراتيجيات النسخ الاحتياطي
قاعدة 3-2-1 للسحابة
- 3 نسخ من البيانات
- 2 أنواع/مواقع تخزين مختلفة
- 1 نسخة خارج الموقع (منطقة/حساب مختلف)
التكيف السحابي الحديث: 3-2-1-1-0
- 3 نسخ
- 2 أنواع وسائط مختلفة
- 1 خارج الموقع
- 1 غير قابل للتغيير/معزول
- 0 أخطاء (نسخ احتياطية موثقة)
AWS Backup
خدمة نسخ احتياطي مركزية عبر AWS:
# إنشاء vault للنسخ الاحتياطي مع التشفير
aws backup create-backup-vault \
--backup-vault-name my-vault \
--encryption-key-arn arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012
# إنشاء خطة النسخ الاحتياطي
aws backup create-backup-plan --backup-plan '{
"BackupPlanName": "DailyBackup",
"Rules": [{
"RuleName": "DailyRule",
"TargetBackupVaultName": "my-vault",
"ScheduleExpression": "cron(0 5 ? * * *)",
"StartWindowMinutes": 60,
"CompletionWindowMinutes": 180,
"Lifecycle": {
"MoveToColdStorageAfterDays": 30,
"DeleteAfterDays": 365
},
"CopyActions": [{
"DestinationBackupVaultArn": "arn:aws:backup:us-west-2:123456789012:backup-vault:dr-vault",
"Lifecycle": {
"DeleteAfterDays": 365
}
}]
}]
}'
إصدارات كائنات S3
حماية ضد الحذف العرضي وبرامج الفدية:
# تفعيل الإصدارات
aws s3api put-bucket-versioning \
--bucket my-bucket \
--versioning-configuration Status=Enabled
# تفعيل حذف MFA للـ buckets الحرجة
aws s3api put-bucket-versioning \
--bucket my-bucket \
--versioning-configuration Status=Enabled,MFADelete=Enabled \
--mfa "arn:aws:iam::123456789012:mfa/root-account 123456"
قفل كائنات S3 (تخزين غير قابل للتغيير)
تخزين مقاوم لبرامج الفدية:
# إنشاء bucket مع قفل الكائنات
aws s3api create-bucket \
--bucket immutable-backup \
--object-lock-enabled-for-bucket
# تعيين الاحتفاظ الافتراضي
aws s3api put-object-lock-configuration \
--bucket immutable-backup \
--object-lock-configuration '{
"ObjectLockEnabled": "Enabled",
"Rule": {
"DefaultRetention": {
"Mode": "GOVERNANCE",
"Days": 365
}
}
}'
أوضاع الاحتفاظ:
- Governance: يمكن تجاوزه بصلاحيات خاصة
- Compliance: لا يمكن تجاوزه من أي شخص، بما في ذلك root
النسخ الاحتياطي والاستعادة في Azure
Azure Backup
# إنشاء Recovery Services vault
az backup vault create \
--name myVault \
--resource-group myRG \
--location eastus
# تفعيل الحذف الناعم (افتراضي: 14 يوم احتفاظ)
az backup vault backup-properties set \
--name myVault \
--resource-group myRG \
--soft-delete-feature-state Enable
# تكوين النسخ الاحتياطي غير القابل للتغيير
az backup vault backup-properties set \
--name myVault \
--resource-group myRG \
--soft-delete-feature-state AlwaysOn
الحذف الناعم والإصدارات للـ Blob
# تفعيل الحذف الناعم
az storage blob service-properties delete-policy update \
--account-name mystorageaccount \
--enable true \
--days-retained 30
# تفعيل الإصدارات
az storage account blob-service-properties update \
--account-name mystorageaccount \
--resource-group myRG \
--enable-versioning true
التخزين غير القابل للتغيير
# تعيين سياسة الاحتفاظ المبنية على الوقت
az storage container immutability-policy create \
--container-name mycontainer \
--account-name mystorageaccount \
--period 365
النسخ الاحتياطي والاستعادة في GCP
إصدارات Cloud Storage
# تفعيل الإصدارات
gcloud storage buckets update gs://my-bucket --versioning
# تعيين قاعدة دورة الحياة للاحتفاظ بالإصدارات
gcloud storage buckets update gs://my-bucket --lifecycle-file=lifecycle.json
lifecycle.json:
{
"rule": [
{
"action": {"type": "Delete"},
"condition": {
"age": 365,
"isLive": false
}
}
]
}
سياسات الاحتفاظ
# تعيين سياسة احتفاظ الـ bucket (غير قابل للتغيير لفترة الاحتفاظ)
gcloud storage buckets update gs://my-bucket --retention-period=365d
# قفل سياسة الاحتفاظ (دائم - لا يمكن تقصيره)
gcloud storage buckets update gs://my-bucket --lock-retention-period
إدارة دورة حياة البيانات
سياسات دورة حياة AWS S3
{
"Rules": [
{
"ID": "MoveToIA",
"Status": "Enabled",
"Filter": {"Prefix": "logs/"},
"Transitions": [
{
"Days": 30,
"StorageClass": "STANDARD_IA"
},
{
"Days": 90,
"StorageClass": "GLACIER"
},
{
"Days": 365,
"StorageClass": "DEEP_ARCHIVE"
}
],
"NoncurrentVersionTransitions": [
{
"NoncurrentDays": 30,
"StorageClass": "GLACIER"
}
],
"NoncurrentVersionExpiration": {
"NoncurrentDays": 730
}
}
]
}
مقايضات التكلفة مقابل الحماية
| الطبقة | AWS | Azure | GCP | حالة الاستخدام |
|---|---|---|---|---|
| ساخن | S3 Standard | Hot | Standard | وصول متكرر |
| دافئ | S3-IA | Cool | Nearline | غير متكرر (30+ يوم) |
| بارد | Glacier | Cold | Coldline | أرشيفي (90+ يوم) |
| أرشيف | Deep Archive | Archive | Archive | طويل المدى (365+ يوم) |
اختبار التعافي من الكوارث
هدف نقطة الاستعادة (RPO) وهدف وقت الاستعادة (RTO)
| مستوى DR | RPO | RTO | التكلفة | الاستراتيجية |
|---|---|---|---|---|
| النسخ/الاستعادة | ساعات-أيام | ساعات-أيام | $ | نسخ احتياطية دورية |
| ضوء تجريبي | دقائق-ساعات | ساعات | $$ | الأنظمة الأساسية تعمل |
| احتياطي دافئ | ثوانٍ-دقائق | دقائق | $$$ | نسخة مصغرة |
| احتياطي ساخن | قريب من الصفر | دقائق | $$$$ | نشط-نشط كامل |
قائمة تحقق اختبار DR
- [ ] استعادة النسخ الاحتياطي مختبرة شهرياً
- [ ] الاستعادة عبر المناطق موثقة ربع سنوياً
- [ ] النسخ الاحتياطية غير القابلة للتغيير موثقة (لا يمكن حذفها)
- [ ] مقاييس RTO/RPO مقاسة وموثقة
- [ ] كتب التشغيل محدثة ومتاحة
- [ ] الفريق مدرب على إجراءات الاستعادة
- [ ] النسخ الاحتياطية الخارجية (إن استخدمت) مختبرة
الوحدة التالية: أمان الشبكة والبنية التحتية—VPCs، مجموعات الأمان، والدفاع في العمق. :::