0Pricing
DevOps Bootcamp · درس

إدارة حاويات S3 وIAM

تعلّموا تجهيز حاويات تخزين S3 وإعدادها، وإدارة موارد AWS Identity and Access Management (IAM) باستخدام Terraform.

إدارة حاويات S3 وIAM درس مجاني في DevOps Bootcamp على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في DevOps Bootcamp، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.

S3 وTerraform: التخزين السحابي

يوفر Amazon S3 (خدمة التخزين البسيط) مساحة تخزين للكائنات تتميز بقابلية توسع عالية ومتانة وتوافر مرتفعين. وهو مناسب جدًا للنسخ الاحتياطية ومواقع الويب الثابتة وأرشفة البيانات.

توفر إدارة حاويات S3 باستخدام Terraform عدة مزايا:

  • الأتمتة: إنشاء الحاويات وإعدادها برمجيًا.
  • التحكم في الإصدارات: تتبع التغييرات التي تطرأ على إعدادات الحاويات.
  • الاتساق: ضمان تطابق إعدادات S3 في جميع البيئات.

حاوية S3 الأولى

لنعرّف حاوية S3 بسيطة. ويُستخدم مورد aws_s3_bucket لهذا الغرض.

يجب أن تكون أسماء الحاويات فريدة عالميًا عبر جميع حسابات AWS. اختاروا اسمًا فريدًا!

حاولوا تشغيل هذا المثال:

resource "aws_s3_bucket" "my_unique_bucket" {
  bucket = "my-coddykit-unique-bucket-12345" # Replace with a globally unique name
}

output "bucket_id" {
  value = aws_s3_bucket.my_unique_bucket.id
}

تسمية الحاويات والمنطقة

عند إنشاء حاوية S3، تذكروا النقاط الأساسية التالية:

  • التفرّد العالمي: يجب أن تكون أسماء الحاويات فريدة عالميًا عبر جميع حسابات AWS.
  • المنطقة: رغم أن الأسماء عالمية، توجد الحاوية نفسها في منطقة AWS محددة (يحددها إعداد موفر AWS).
  • قواعد التسمية: يجب أن تكون الأسماء بأحرف صغيرة، وأن يتراوح طولها بين 3 و63 محرفًا، ويمكن أن تتضمن شرطات.

يُعد اختيار اصطلاح تسمية جيد أمرًا ضروريًا للتنظيم والوضوح.

أمان S3 وميزاته

يوفر S3 ميزات مثل تعيين الإصدارات للاحتفاظ بإصدارات متعددة من الكائن، وحظر الوصول العام لتعزيز الأمان. ومن الضروري حظر الوصول العام افتراضيًا لمعظم الحاويات.

يُعد هذا المثال تعيين الإصدارات ويضمن حظر الوصول العام.

حاولوا تشغيل هذا المثال:

resource "aws_s3_bucket" "my_versioned_bucket" {
  bucket = "coddykit-versioned-bucket-98765" # Replace with a unique name
}

resource "aws_s3_bucket_versioning" "my_versioned_bucket_versioning" {
  bucket = aws_s3_bucket.my_versioned_bucket.id
  versioning_configuration {
    status = "Enabled"
  }
}

resource "aws_s3_bucket_public_access_block" "my_versioned_bucket_public_access_block" {
  bucket = aws_s3_bucket.my_versioned_bucket.id

  block_public_acls       = true
  block_public_and_cross_account_access = true
  ignore_public_acls      = true
  restrict_public_buckets = true
}

output "bucket_name_versioned" {
  value = aws_s3_bucket.my_versioned_bucket.bucket
}

AWS IAM: الهوية والوصول

‏AWS IAM (إدارة الهوية والوصول) هي خدمة ويب تساعدكم على التحكم بأمان في الوصول إلى موارد AWS. وهي عنصر أساسي للأمان.

باستخدام IAM، يمكنكم:

  • إدارة المستخدمين وإمكانية وصولهم البرمجية أو عبر وحدة التحكم.
  • منح أذونات دقيقة لموارد AWS محددة.
  • التحكم فيمن يمكنه تنفيذ الإجراءات داخل حساب AWS الخاص بكم.

يتيح لكم Terraform تعريف موارد IAM وإدارتها، تمامًا كما تفعلون مع حاويات S3.

إنشاء مستخدم IAM

لننشئ مستخدم IAM جديدًا باستخدام Terraform. يمثل مستخدم IAM شخصًا أو خدمة تتفاعل مع AWS.

لن يمتلك هذا المستخدم أي أذونات حتى الآن؛ وسنضيفها لاحقًا.

حاولوا تشغيل هذا المثال:

resource "aws_iam_user" "coddykit_user" {
  name = "coddykit-app-user"
  path = "/system/"
  tags = {
    Department = "DevOps"
  }
}

output "iam_user_name" {
  value = aws_iam_user.coddykit_user.name
}

output "iam_user_arn" {
  value = aws_iam_user.coddykit_user.arn
}

فهم سياسات IAM

سياسات IAM هي مستندات تحدد الأذونات. وهي تحدد الإجراءات المسموح بها أو المحظورة على موارد معينة، والشروط التي تنطبق عليها.

تُكتب السياسات بتنسيق JSON، ويمكن إرفاقها بالمستخدمين أو المجموعات أو الأدوار.

  • السياسات المستندة إلى الهوية: تُرفق بهوية IAM (مستخدم أو مجموعة أو دور).
  • السياسات المستندة إلى المورد: تُرفق بمورد (مثل حاوية S3 أو قائمة انتظار SQS).

منح أذونات S3

لننشئ الآن سياسة تمنح مستخدم IAM الخاص بنا وصولًا للقراءة فقط إلى حاوية S3 محددة، ثم نرفقها به.

يعرّف مورد aws_iam_policy السياسة، بينما يربطها مورد aws_iam_user_policy_attachment بالمستخدم.

حاولوا تشغيل هذا المثال:

resource "aws_s3_bucket" "policy_target_bucket" {
  bucket = "coddykit-policy-bucket-112233" # Unique name
}

resource "aws_iam_user" "s3_reader_user" {
  name = "coddykit-s3-reader"
}

data "aws_iam_policy_document" "s3_read_only_policy" {
  statement {
    actions = [
      "s3:GetObject",
      "s3:ListBucket"
    ]
    resources = [
      aws_s3_bucket.policy_target_bucket.arn,
      "${aws_s3_bucket.policy_target_bucket.arn}/*"
    ]
  }
}

resource "aws_iam_policy" "s3_read_only" {
  name        = "CoddyKitS3ReadOnlyPolicy"
  description = "Grants read-only access to a specific S3 bucket"
  policy      = data.aws_iam_policy_document.s3_read_only_policy.json
}

resource "aws_iam_user_policy_attachment" "attach_s3_read_only" {
  user       = aws_iam_user.s3_reader_user.name
  policy_arn = aws_iam_policy.s3_read_only.arn
}

output "s3_reader_user_name" {
  value = aws_iam_user.s3_reader_user.name
}

output "s3_read_only_policy_arn" {
  value = aws_iam_policy.s3_read_only.arn
}

التنظيم باستخدام مجموعات IAM

لتحسين الإدارة، وخاصة عند التعامل مع عدد كبير من المستخدمين، يمكنكم استخدام مجموعات IAM. المجموعة هي مجموعة من مستخدمي IAM.

بدلًا من إرفاق السياسات بالمستخدمين بشكل فردي، يمكنكم إرفاقها بمجموعة، وعندها يرث جميع المستخدمين في تلك المجموعة تلك الأذونات.

يبسّط ذلك إدارة الأذونات ويساعد على تطبيق مبدأ أقل قدر من الامتيازات بسهولة أكبر.

تحقق سريع: S3 وIAM

أي العبارات التالية حول إدارة حاويات AWS S3 ومستخدمي IAM وسياساتهم باستخدام Terraform صحيحة؟

مراجعة: S3 وIAM

أحسنتم! تعلمتم في هذا الدرس كيفية إدارة حاويات AWS S3 وموارد IAM باستخدام Terraform.

  • أنشأنا حاويات S3، وأعددنا تعيين الإصدارات، وحظرنا الوصول العام.
  • أنشأنا مستخدمي IAM وأرفقنا سياسات مخصصة لمنح أذونات محددة.
  • أصبحتم تدركون الآن أهمية S3 للتخزين وIAM للتحكم الآمن في الوصول إلى AWS، وكل ذلك معرّف باعتباره تعليمات برمجية!

بعد ذلك، سنتعمق في تقنيات متقدمة لإدارة الحالة.

الأسئلة الشائعة

هل درس «إدارة حاويات S3 وIAM» مجاني؟

نعم — نص درس «إدارة حاويات S3 وIAM» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة DevOps Bootcamp، انتقل إلى CoddyKit PRO. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.

ماذا ستتعلم في «إدارة حاويات S3 وIAM»؟

تعلّموا تجهيز حاويات تخزين S3 وإعدادها، وإدارة موارد AWS Identity and Access Management (IAM) باستخدام Terraform. تتمرن على DevOps Bootcamp مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ DevOps Bootcamp؟

لا تُشترط خبرة سابقة. DevOps Bootcamp على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.

كم من الوقت يستغرق درس «إدارة حاويات S3 وIAM»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس DevOps Bootcamp هذا؟

نعم. كل درس في DevOps Bootcamp يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. إعداد موفّر AWS
  2. تجهيز مثيلات EC2
  3. إدارة حاويات S3 وIAM
  4. إعداد VPC والشبكات
← العودة إلى DevOps Bootcamp