الدرس 9 من 24

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

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

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

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

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

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

الحادث السنة السجلات المكشوفة السبب الجذري
Capital One 2019 100+ مليون SSRF + وصول S3
Facebook 2019 540 مليون S3 buckets عامة
Football Australia 2024 127 حاوية S3 مكون بشكل خاطئ

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

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

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

الميزة AWS S3 Azure Blob GCP Cloud Storage
الوصول الافتراضي خاص (منذ 2023) خاص خاص
التشفير في الراحة SSE-S3, SSE-KMS, SSE-C مُدار من Microsoft, CMK مُدار من Google, CMEK
التحكم بالوصول Bucket policies, ACLs, IAM RBAC, SAS tokens, ACLs IAM, 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 S3 Azure Blob GCP Storage
حظر الوصول العام ✓ تفعيل ✓ حاويات خاصة ✓ منع الوصول العام
التشفير في الراحة ✓ SSE-KMS ✓ CMK في Key Vault ✓ CMEK
التشفير في النقل ✓ سياسة HTTPS فقط ✓ طلب نقل آمن ✓ مشفر دائماً
تسجيل الوصول ✓ سجلات وصول الخادم ✓ إعدادات التشخيص ✓ Cloud Audit Logs
الإصدارات ✓ تفعيل ✓ حذف ناعم + إصدارات ✓ إصدارات الكائنات
سياسات دورة الحياة ✓ الانتقال إلى Glacier ✓ النقل إلى cool/archive ✓ Nearline/Coldline

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

اختبار

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

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

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

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

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