إتقان S3: إنشاء bucket، تفعيل versioning، إعداد lifecycle (Standard ← IA ← Glacier)، تشفير SSE-S3/SSE-KMS، bucket policies، presigned URLs، cross-region replication، S3 Object Lock للامتثال، classes تخزين وأسعارها.
للسياق: الدليل الرئيسي AWS SAA-C03.
المقدّمة
S3 (Simple Storage Service) هي object storage في AWS، إحدى الخدمات الأكثر وزناً في SAA-C03. ~15% من الأسئلة تدور حول S3: الأمن، classes التخزين، المتانة 99.999999999% (11 nines)، أنماط الاستعمال. هذا الدرس يبني الكفاءة الكاملة.
المتطلّبات
- حساب AWS مُهيَّأ.
- AWS CLI شغّال.
- المستوى المتوسّط.
- الوقت: ساعتان.
الخطوة 1 — إنشاء bucket والـ upload
# اسم bucket = فريد عالميّاً على AWS
aws s3 mb s3://diallo-lab-2026 --region eu-west-3
# Upload ملفّ
echo "Hello S3" > test.txt
aws s3 cp test.txt s3://diallo-lab-2026/
# قائمة
aws s3 ls s3://diallo-lab-2026/
# Sync مجلّد كاملاً
aws s3 sync ./mon-dossier s3://diallo-lab-2026/dossier/
# Download
aws s3 cp s3://diallo-lab-2026/test.txt downloaded.txt
# حذف
aws s3 rm s3://diallo-lab-2026/test.txt
aws s3 rb s3://diallo-lab-2026 --force # يحذف bucket حتى لو غير فارغ
الخطوة 2 — Storage Classes
S3 Standard : وصول عالي التكرار، الافتراضي. ~0.023 USD/Go/شهر
S3 Standard-IA : Infrequent Access، وصول > 30 يوم. ~0.0125 USD/Go/شهر + رسوم retrieval
S3 One Zone-IA : IA في AZ واحدة، 20% أرخص، متانة أقلّ
S3 Glacier Instant Retrieval: أرشيف وصول بالميلّي ثانية، ~0.004 USD/Go/شهر
S3 Glacier Flexible Retrieval: أرشيف مع restore 1 دقيقة-12 ساعة، ~0.0036 USD/Go/شهر
S3 Glacier Deep Archive : أرشيف وصول 12 ساعة، ~0.00099 USD/Go/شهر (الأرخص)
S3 Intelligent-Tiering : tiering آليّ مبنيّ على الوصول، رسوم monitoring 0.0025 USD/1000 obj
S3 Express One Zone : أداء فائق، AZ واحدة، ~7x سعر Standard
في الاختبار: اختر حسب السيناريو. logs حديثة ← Standard. backups شهريّة ← IA. أرشيف قانونيّ 7 سنوات ← Glacier Deep Archive. بيانات استعمال غير متوقّع ← Intelligent-Tiering.
الخطوة 3 — Versioning
Versioning يحفظ كلّ النسخ من كائن — حيويّ للمرونة ضدّ الحذف العرضيّ.
# تفعيل versioning
aws s3api put-bucket-versioning --bucket diallo-lab-2026 --versioning-configuration Status=Enabled
# Upload نفس الملفّ 3 مرّات ← 3 نسخ
echo "v1" > file.txt && aws s3 cp file.txt s3://diallo-lab-2026/file.txt
echo "v2" > file.txt && aws s3 cp file.txt s3://diallo-lab-2026/file.txt
echo "v3" > file.txt && aws s3 cp file.txt s3://diallo-lab-2026/file.txt
# قائمة النسخ
aws s3api list-object-versions --bucket diallo-lab-2026
# استعادة نسخة سابقة
aws s3api copy-object --bucket diallo-lab-2026 --copy-source diallo-lab-2026/file.txt?versionId=xxx --key file.txt
في الاختبار: versioning + MFA Delete = حماية من ransomware. بمجرّد تفعيله، يمكن إيقافه (لا تعطيله).
الخطوة 4 — Lifecycle policies
أتمتة انتقال الكائنات نحو classes أرخص حسب عمرها.
{
"Rules": [
{
"Id": "TransitionToIA-then-Glacier",
"Status": "Enabled",
"Filter": { "Prefix": "logs/" },
"Transitions": [
{ "Days": 30, "StorageClass": "STANDARD_IA" },
{ "Days": 90, "StorageClass": "GLACIER_IR" },
{ "Days": 365, "StorageClass": "DEEP_ARCHIVE" }
],
"Expiration": { "Days": 2555 }
}
]
}
aws s3api put-bucket-lifecycle-configuration --bucket diallo-lab-2026 --lifecycle-configuration file://lifecycle.json
ROI: 1 To من logs ← في Standard 230 USD/سنة، lifecycle نحو Glacier Deep Archive عند 90 يوم = 80 USD/سنة. توفير 65%.
الخطوة 5 — Encryption at rest
SSE-S3 : مفتاح مُدار من S3 (AES-256). مُفعَّل افتراضياً على buckets جديدة منذ يناير 2023
SSE-KMS : مفتاح مُدار من AWS KMS، audit CloudTrail للفكّ
SSE-KMS DSSE : تشفير مزدوج (FIPS 140-3 validated)
SSE-C : مفتاح يقدّمه العميل (S3 لا يخزّن المفتاح)
Client-side encryption: تشفير قبل upload، S3 يخزّن ciphertext
في الاختبار: SSE-KMS = موصى به لـ audit + multi-tenant. SSE-S3 = بسيط، افتراضيّ. SSE-C = امتثال صارم (HIPAA، FIPS).
# تفعيل تشفير SSE-KMS على bucket
aws s3api put-bucket-encryption --bucket diallo-lab-2026 --server-side-encryption-configuration '{
"Rules": [{
"ApplyServerSideEncryptionByDefault": {
"SSEAlgorithm": "aws:kms",
"KMSMasterKeyID": "alias/aws/s3"
}
}]
}'
الخطوة 6 — Bucket policies و IAM
آليّتان للتحكّم في الوصول:
IAM policies (user/role) : من يستطيع فعل ماذا على S3 إجمالاً
Bucket policies : من يستطيع فعل ماذا على هذا الـ bucket تحديداً
ACL (Access Control List) : LEGACY، تجنّبه في 2026
Bucket policy قراءة عامّة (حالة استضافة ساكنة):
{
"Version": "2012-10-17",
"Statement": [{
"Sid": "AllowPublicRead",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::diallo-lab-2026/*"
}]
}
⚠️ فعّل « Block Public Access » افتراضياً، عطّله صراحة فقط لـ bucket الاستضافة الساكنة.
# حجب كلّ وصول عامّ (افتراضيّ منذ 2023)
aws s3api put-public-access-block --bucket diallo-lab-2026 --public-access-block-configuration "BlockPublicAcls=true,IgnorePublicAcls=true,BlockPublicPolicy=true,RestrictPublicBuckets=true"
الخطوة 7 — Presigned URLs
لإعطاء وصول مؤقّت إلى ملفّ خاصّ بلا bucket عامّ:
# توليد URL صالحة لـ 1 ساعة
aws s3 presign s3://diallo-lab-2026/private.pdf --expires-in 3600
الـ URL المُوقَّعة تعطي وصولاً إلى كائن دون استيثاق AWS، خلال المدّة المُحدَّدة. نمط متكرّر: التطبيق يولّد URL لـ download مستخدم، يفتحه عند الاستعمال.
الخطوة 8 — Cross-Region Replication
للـ DR أو الامتثال، تكرار bucket نحو منطقة أخرى:
1. Source bucket: versioning enabled (إلزاميّ)
2. Destination bucket: versioning enabled، في منطقة أخرى
3. إنشاء IAM role يسمح لـ S3 بالتكرار
4. إعداد replication rule (كائنات، préfixe، classe destination)
الأنواع:
SRR (Same-Region Replication) : امتثال داخليّ، تجميع logs
CRR (Cross-Region Replication) : DR، latence client
RTC (Replication Time Control) : 99% الكائنات مُكرَّرة في 15 دقيقة
الخطوة 9 — S3 Object Lock للامتثال
يمنع حذف الكائنات للامتثال التنظيمي (SEC 17a-4، HIPAA).
Governance mode: فقط user مميَّز يستطيع bypass
Compliance mode: لا أحد، حتى root، يستطيع الحذف قبل retention
Legal Hold : flag غير محدود يحمي الكائن
للتفعيل عند إنشاء bucket فقط (غير قابل للتعديل لاحقاً).
الخطوة 10 — استضافة موقع ساكن S3
aws s3 mb s3://my-static-site-2026
aws s3 cp index.html s3://my-static-site-2026/
aws s3 website s3://my-static-site-2026 --index-document index.html --error-document error.html
# URL: http://my-static-site-2026.s3-website-eu-west-3.amazonaws.com
لـ HTTPS والأداء العالميّ، أضف CloudFront أمامه (CDN AWS) — نمط قياسي لـ SPA، مدوّنة ساكنة.
الأخطاء المتكرّرة
| الخطأ | الحلّ |
|---|---|
| اسم bucket مأخوذ | فريد عالميّاً: أضف ID الحساب أو suffix عشوائيّ |
| Public access blocked | « Block Public Access » نشط، عطّله لحالة استعمال عامّة شرعيّة |
| 403 على GetObject | تحقّق من IAM policy + bucket policy + Block Public Access |
| Lifecycle policy لا يُطبَّق | انتظر 24h، بعض الانتقالات batch async |
| Versioning + حذف عرضيّ | استعد النسخة السابقة، لا تحذف الـ marker |
خصائص للدمج في PME غرب إفريقيا
Backups للـ PME: S3 + lifecycle نحو Glacier Deep Archive = backup خارج الموقع بـ 1 USD/To/شهر. تنافسيّ مقابل الحلول المحلّيّة.
استضافة ساكنة: S3 + CloudFront لـ blog، portfolio، SPA. ~5 USD/شهر لـ 10 000 زائر. أرخص من VPS.
Data lake analytics: S3 + Athena (SQL serverless) لتحليل TBs من البيانات دون إدارة cluster. الاستعلامات مُفوتَرة بـ 5 USD/TB ممسوح.
أسئلة شائعة
S3 مقابل EBS؟
S3 = object storage، وصول عبر HTTP API، scalabilité لا نهائيّة. EBS = block storage مرفق بـ instance، latence ms.
كم متانة S3؟
99.999999999% (11 nines). لـ 10M كائن مُخزَّن، الخسارة المتوقّعة كائن واحد كلّ 10 000 سنة.
هل Glacier Deep Archive مفيد عمليّاً؟
نعم، لأرشيف قانونيّ 7+ سنوات (بنوك، اتّصالات). Restore 12h مقبول لهذه الحالة.
في التتمّة
- الدليل الرئيسي: AWS SAA-C03
- التتمّة: IAM: المستخدمون والأدوار والـ policies.
- التوثيق: AWS S3 User Guide.
الكلمات المفتاحيّة: AWS S3، versioning lifecycle، Glacier Deep Archive، SSE-KMS، bucket policy، presigned URL، Cross-Region Replication، Object Lock compliance.
دراسات حالات حقيقيّة لـ AWS في غرب إفريقيا
الحالة 1 — Fintech mobile money، داكار، 2025. 4 ملايين معاملة/شهر. ALB متعدّد AZ + ECS Fargate + Aurora Serverless v2 + DynamoDB + S3 + CloudFront. التكلفة 4 200 USD/شهر، التوفّر 99.98%.
الحالة 2 — تجارة إلكترونيّة عابرة لإفريقيا. 80 000 زائر/يوم. multi-region active-active: eu-west-3 + af-south-1. التكلفة 8 500 USD/شهر، ROI +23% تحويل.
الحالة 3 — هجرة بنك تقليديّ. lift-and-shift لـ 80% workloads في 14 شهراً. توفير 40% منذ السنة 1، 55% في السنة 3.
خمسة سيناريوهات SAA-C03
1: تجارة إلكترونيّة HA لـ Black Friday. ALB + ASG scheduled scaling، CloudFront، Aurora Read Replicas، ElastiCache، SQS.
2: DR cross-region. Pilot Light، Aurora Global Database، AMI مُكرَّرة، Route 53 health checks.
3: تأمين بيانات. S3 SSE-KMS، تشفير EBS، RDS مُشفَّر، IAM least privilege، CloudTrail نحو S3 Object Lock، GuardDuty.
4: تحسين تكلفة. Instance Scheduler، RIs، Spot، S3 Intelligent-Tiering، Compute Savings Plans. توفير 65-75%.
5: امتثال PCI DSS. تجزئة VPC، WAF + Shield، CloudHSM، AWS Config، Inspector، Security Hub، AWS Audit Manager.
معماريّة cloud-native حديثة
[Route 53] → [CloudFront] → [WAF] → [API Gateway/ALB]
↓ Lambda + ECS Fargate + EKS
↓ Aurora Serverless v2 + DynamoDB
↓ ElastiCache + S3
[Observability: CloudWatch + X-Ray + EventBridge]
[الأمن: IAM + KMS + GuardDuty + Security Hub]
[الحوكمة: Organizations + SCP + Control Tower]
التكاليف بـ FCFA لـ PME
30 موظّفاً، تطبيق SaaS، 10 000 مستخدم/شهر: ~225 USD/شهر ≈ 135 000 FCFA/شهر. مع RIs 3 سنوات: ~87 000 FCFA/شهر.
خطّة مهنة بعد AWS SAA
0-12 شهراً: cloud engineer junior. 800 000-1 200 000 FCFA.
12-30 شهراً: DevOps Pro أو Security Specialty. 1 400 000-2 000 000 FCFA.
30-60 شهراً: architect، SAP-C02. 2 200 000-3 500 000 FCFA محلّياً، 4-7 ملايين FCFA remote.
60+ شهراً: senior، Engineering Manager، freelance 400-800 USD/يوم.
أدوات تكميليّة
IaC: Terraform، AWS CDK، Pulumi.
CI/CD: GitHub Actions، GitLab CI، CodePipeline.
Containers: ECS، EKS، Fargate.
Observability: CloudWatch، Datadog، Grafana Cloud.
FinOps: Cost Explorer + Budgets، Vantage.sh.
الأمن: Prowler، Security Hub، Wiz.