الدرس 9 من 24

أمان التخزين والبيانات

أساسيات أمان التخزين السحابي

4 دقيقة للقراءة

خدمات التخزين السحابي هي المصدر الأكثر شيوعاً لخروقات البيانات. مع 31% من S3 buckets قابلة للوصول العام و 46% قد تكون مكونة بشكل خاطئ، أمان التخزين يتطلب اهتماماً فورياً.

وباء خروقات التخزين

أخطاء تكوين التخزين تسببت في بعض أكبر حالات كشف البيانات:

الحادثالسنةالسجلات المكشوفةالسبب الجذري
Capital One2019100+ مليونSSRF + وصول S3
Facebook2019540 مليونS3 buckets عامة
Football Australia2024127 حاويةS3 مكون بشكل خاطئ

الإحصائيات الرئيسية:

  • 31% من S3 buckets قابلة للوصول العام (Qualys)
  • 46% من S3 buckets قد تكون مكونة بشكل خاطئ وغير آمنة
  • أخطاء تكوين التخزين هي السبب #1 لكشف بيانات السحابة

مقارنة خدمات التخزين

الميزةAWS S3Azure BlobGCP Cloud Storage
الوصول الافتراضيخاص (منذ 2023)خاصخاص
التشفير في الراحةSSE-S3, SSE-KMS, SSE-Cمُدار من Microsoft, CMKمُدار من Google, CMEK
التحكم بالوصولBucket policies, ACLs, IAMRBAC, SAS tokens, ACLsIAM, ACLs
الإصداراتمدعومالحذف الناعم، الإصداراتإصدارات الكائنات
التسجيلتسجيل وصول الخادمسجلات التشخيصCloud Audit Logs

تعمق في أمان AWS S3

طبقات التحكم بالوصول

S3 لديه آليات متعددة ومتداخلة للتحكم بالوصول:

┌─────────────────────────────────────────────────────────┐
│                     حظر الوصول العام                     │
│         (تجاوز على مستوى الحساب والـ bucket)              │
├─────────────────────────────────────────────────────────┤
│                      سياسة Bucket                        │
│              (صلاحيات قائمة على الموارد)                  │
├─────────────────────────────────────────────────────────┤
│                     سياسات IAM                           │
│              (صلاحيات قائمة على الهوية)                   │
├─────────────────────────────────────────────────────────┤
│                         ACLs                             │
│           (قديمة، تجنبها للـ buckets الجديدة)             │
└─────────────────────────────────────────────────────────┘

إعدادات حظر الوصول العام

أهم ميزة أمان S3 (مفعّلة افتراضياً منذ 2023):

# تحقق من إعدادات حظر الوصول العام
aws s3api get-public-access-block --bucket my-bucket

# تفعيل جميع إعدادات حظر الوصول العام (موصى به من CIS)
aws s3api put-public-access-block --bucket my-bucket \
    --public-access-block-configuration \
    BlockPublicAcls=true,\
    IgnorePublicAcls=true,\
    BlockPublicPolicy=true,\
    RestrictPublicBuckets=true

مثال على سياسة Bucket آمنة

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "DenyInsecureTransport",
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:*",
      "Resource": [
        "arn:aws:s3:::my-bucket",
        "arn:aws:s3:::my-bucket/*"
      ],
      "Condition": {
        "Bool": {
          "aws:SecureTransport": "false"
        }
      }
    },
    {
      "Sid": "RequireEncryption",
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:PutObject",
      "Resource": "arn:aws:s3:::my-bucket/*",
      "Condition": {
        "Null": {
          "s3:x-amz-server-side-encryption": "true"
        }
      }
    }
  ]
}

أمان Azure Blob Storage

خيارات التحكم بالوصول

┌─────────────────────────────────────────────────────────┐
│                    Azure RBAC                            │
│         (وصول مستوى الإدارة + مستوى البيانات)             │
├─────────────────────────────────────────────────────────┤
│                  مفاتيح الوصول                           │
│         (وصول كامل للحساب - تجنب في الإنتاج)             │
├─────────────────────────────────────────────────────────┤
│              توقيعات الوصول المشترك (SAS)                │
│         (رموز وصول محدودة الوقت والنطاق)                 │
├─────────────────────────────────────────────────────────┤
│             مصادقة Microsoft Entra ID                    │
│              (مفضلة للتطبيقات)                            │
└─────────────────────────────────────────────────────────┘

تكوين الوصول الآمن

# تعطيل وصول مفتاح حساب التخزين (استخدم Entra ID بدلاً)
az storage account update \
    --name mystorageaccount \
    --resource-group myRG \
    --allow-shared-key-access false

# تفعيل تشفير البنية التحتية (تشفير مزدوج)
az storage account create \
    --name mystorageaccount \
    --resource-group myRG \
    --require-infrastructure-encryption

أمان GCP Cloud Storage

IAM مقابل ACLs

GCP يوصي بالوصول الموحد على مستوى الـ bucket (IAM فقط):

# تفعيل الوصول الموحد على مستوى الـ bucket
gcloud storage buckets update gs://my-bucket --uniform-bucket-level-access

# التحقق من سياسة IAM
gcloud storage buckets get-iam-policy gs://my-bucket

تكوين Bucket آمن

# إنشاء bucket مع إعدادات الأمان
gcloud storage buckets create gs://my-secure-bucket \
    --location=us-central1 \
    --uniform-bucket-level-access \
    --public-access-prevention=enforced

قائمة تحقق أمان التخزين

الضابطAWS S3Azure BlobGCP Storage
حظر الوصول العام✓ تفعيل✓ حاويات خاصة✓ منع الوصول العام
التشفير في الراحة✓ SSE-KMS✓ CMK في Key Vault✓ CMEK
التشفير في النقل✓ سياسة HTTPS فقط✓ طلب نقل آمن✓ مشفر دائماً
تسجيل الوصول✓ سجلات وصول الخادم✓ إعدادات التشخيص✓ Cloud Audit Logs
الإصدارات✓ تفعيل✓ حذف ناعم + إصدارات✓ إصدارات الكائنات
سياسات دورة الحياة✓ الانتقال إلى Glacier✓ النقل إلى cool/archive✓ Nearline/Coldline

التالي، سنغوص عميقاً في خيارات التشفير لحماية البيانات في الراحة والنقل. :::

مراجعة سريعة: كيف تجد هذا الدرس؟

اختبار

الوحدة 3: أمان التخزين والبيانات

خذ الاختبار
نشرة أسبوعية مجانية

ابقَ على مسار النيرد

بريد واحد أسبوعياً — دورات، مقالات معمّقة، أدوات، وتجارب ذكاء اصطناعي.

بدون إزعاج. إلغاء الاشتراك في أي وقت.