أمان التخزين والبيانات
أساسيات أمان التخزين السحابي
4 دقيقة للقراءة
خدمات التخزين السحابي هي المصدر الأكثر شيوعاً لخروقات البيانات. مع 31% من S3 buckets قابلة للوصول العام و 46% قد تكون مكونة بشكل خاطئ، أمان التخزين يتطلب اهتماماً فورياً.
وباء خروقات التخزين
أخطاء تكوين التخزين تسببت في بعض أكبر حالات كشف البيانات:
| الحادث | السنة | السجلات المكشوفة | السبب الجذري |
|---|---|---|---|
| Capital One | 2019 | 100+ مليون | SSRF + وصول S3 |
| 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 |
التالي، سنغوص عميقاً في خيارات التشفير لحماية البيانات في الراحة والنقل. :::