0Pricing
Terraform Infrastructure as Code · درس

إدارة بيانات الاعتماد بأمان

طبّق أفضل الممارسات لإدارة بيانات اعتماد موفري الخدمات السحابية والبيانات الحساسة بأمان ضمن مسارات Terraform المؤتمتة.

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

تأمين بيانات الاعتماد في CI/CD

عند أتمتة البنية التحتية باستخدام Terraform ضمن مسار CI/CD، يحتاج المسار إلى الوصول إلى حسابات موفري الخدمات السحابية. وتُعد إدارة بيانات الاعتماد هذه بأمان أمرًا بالغ الأهمية لمنع الوصول غير المصرح به وتسرب البيانات.

تخيّلوا الأمر كأنكم تمنحون روبوتًا مفاتيح منزلكم؛ إذ ينبغي التأكد من أن الروبوت الصحيح وحده يمتلك المفاتيح المناسبة، وأن هذه المفاتيح محمية.

تجنبوا تضمين الأسرار مباشرةً

من الأخطاء الشائعة تضمين معلومات حساسة، مثل مفاتيح API أو كلمات المرور، مباشرةً في ملفات إعداد Terraform أو البرامج النصية لـ CI/CD. ويُسمى ذلك hardcoding.

  • خطر أمني: تصبح الأسرار جزءًا من سجل التعليمات البرمجية المصدرية (مثل Git).
  • التعرض: يمكن لأي شخص لديه صلاحية الوصول إلى المستودع رؤيتها.
  • الصيانة: يتطلب تغيير السر تعديل التعليمات البرمجية وإعادة النشر.

متغيرات البيئة (أساسيات)

تُعد متغيرات البيئة طريقة بسيطة لتوفير بيانات الاعتماد من دون تضمينها مباشرةً، وذلك في التطوير المحلي أو السيناريوهات الأساسية. ويمكنكم تعيينها في الصدفة قبل تشغيل Terraform.

ورغم أن هذا الخيار أفضل من تضمين الأسرار مباشرةً، فإنه ليس مثاليًا لمسارات CI/CD المشتركة، إذ قد تظل الأسرار ظاهرة في السجلات أو قوائم العمليات إذا لم تُعالج بحذر.

export AWS_ACCESS_KEY_ID="AKIA..."
export AWS_SECRET_ACCESS_KEY="abcdef..."
terraform plan

مديرو الأسرار في منصات CI/CD

توفر منصات CI/CD الحديثة ميزات مدمجة لإدارة الأسرار، تتيح لكم تخزين البيانات الحساسة بأمان داخل المنصة نفسها، بعيدًا عن مستودع التعليمات البرمجية.

عند تشغيل المسار، تُحقن هذه الأسرار في بيئة البناء كمتغيرات بيئة أو ملفات، لكنها لا تظهر مطلقًا في السجلات ولا تُخزّن في المستودع.

مثال على أسرار GitHub Actions

يوفر GitHub Actions قسمًا مخصصًا لأسرار المستودع. ويمكنكم إضافتها عبر Settings > Secrets and variables > Actions > New repository secret.

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

name: Deploy Infra
on: [push]
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3
    - name: Configure AWS Credentials
      uses: aws-actions/configure-aws-credentials@v1
      with:
        aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
        aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
        aws-region: us-east-1
    - name: Terraform Init
      run: terraform init

أدوار Cloud IAM لمسارات CI/CD

تتمثل الطريقة الأكثر أمانًا لمصادقة CI/CD في استخدام أدوار Identity and Access Management (IAM) أو حسابات الخدمة التي يوفرها موفر الخدمة السحابية.

بدلًا من استخدام مفاتيح وصول طويلة الأمد، يفترض مسار CI/CD دورًا مؤقتًا بصلاحيات محددة، وغالبًا ما يستفيد من OpenID Connect (OIDC) لعلاقات الثقة. وهذا يلغي الحاجة إلى تخزين بيانات اعتماد ثابتة تمامًا.

مثال على دور AWS IAM + OIDC

في AWS، يمكنكم إعداد دور IAM يستطيع سير عمل GitHub Actions افتراضه مباشرةً باستخدام OIDC. وهذا يعني عدم تخزين مفاتيح وصول AWS في أي مكان!

تحددون سياسة ثقة للدور، وتسمحون لموفر OIDC الخاص بـ GitHub بافتراضه استنادًا إلى شروط محددة (مثل المستودع والفرع).

resource "aws_iam_role" "github_actions_role" {
  name = "github-actions-oidc-role"
  assume_role_policy = jsonencode({
    Version = "2012-10-17"
    Statement = [
      {
        Effect = "Allow"
        Principal = {
          Federated = "arn:aws:iam::123456789012:oidc-provider/token.actions.githubusercontent.com"
        }
        Action = "sts:AssumeRoleWithWebIdentity"
        Condition = {
          StringEquals = {
            "token.actions.githubusercontent.com:aud" : "sts.amazonaws.com"
          }
          StringLike = {
            "token.actions.githubusercontent.com:sub" : "repo:your-org/your-repo:*"
          }
        }
      }
    ]
  })
}

مخرجات Terraform الحساسة

قد تحتوي مخرجات Terraform أحيانًا على بيانات حساسة، مثل كلمات مرور قواعد البيانات أو المفاتيح الخاصة. وينبغي وضع علامة sensitive على هذه المخرجات.

عند وضع علامة الحساسية على إحدى المخرجات، سيحجب Terraform قيمتها في مخرجات CLI وملف الحالة عند عرضها، مما يساعد على منع كشفها عن طريق الخطأ.

output "database_password" {
  value       = aws_db_instance.main.password
  description = "The database root password."
  sensitive   = true
}

التحقق من أمان بيانات الاعتماد

ما الطريقة التي تُعد عمومًا الأكثر أمانًا لمصادقة مسارات CI/CD مع موفري الخدمات السحابية، مع إلغاء الحاجة إلى تخزين بيانات اعتماد ثابتة طويلة الأمد؟

مراجعة: بيانات الاعتماد الآمنة

لقد تعلّمتم استراتيجيات مهمة لإدارة البيانات الحساسة في مسارات Terraform لـ CI/CD:

  • تجنبوا تضمين الأسرار مباشرةً: لا تضمّنوا الأسرار في التعليمات البرمجية مباشرةً.
  • استفيدوا من أسرار CI/CD: استخدموا مديري الأسرار الخاصين بالمنصة لبيانات الاعتماد الثابتة.
  • اعتمدوا أدوار IAM وOIDC: لتحقيق أعلى مستوى من الأمان، استخدموا أدوار IAM لدى موفر الخدمة السحابية مع OIDC لافتراض صلاحيات مؤقتة من دون تخزين المفاتيح.
  • ضعوا علامة الحساسية على المخرجات: احموا البيانات الحساسة التي تكشفها مخرجات Terraform.

تُعد هذه الممارسات ضرورية للحفاظ على بنية تحتية قوية وآمنة.

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

هل درس «إدارة بيانات الاعتماد بأمان» مجاني؟

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

ماذا ستتعلم في «إدارة بيانات الاعتماد بأمان»؟

طبّق أفضل الممارسات لإدارة بيانات اعتماد موفري الخدمات السحابية والبيانات الحساسة بأمان ضمن مسارات Terraform المؤتمتة. تتمرن على Terraform Infrastructure as Code مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Terraform Infrastructure as Code؟

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

كم من الوقت يستغرق درس «إدارة بيانات الاعتماد بأمان»؟

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

هل يمكنني كتابة وتشغيل أكواد في درس Terraform Infrastructure as Code هذا؟

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

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

  1. Terraform في مسارات CI/CD
  2. أتمتة `plan` و`apply`
  3. إدارة بيانات الاعتماد بأمان
  4. ‏GitOps وأتمتة طلبات السحب
← العودة إلى Terraform Infrastructure as Code