0Pricing
Kubernetes Basics · درس

Secrets للبيانات الحساسة

خزّن المعلومات الحساسة، مثل كلمات المرور ومفاتيح API، وأدِرها بأمان باستخدام Secrets

Secrets للبيانات الحساسة درس مجاني في Kubernetes Basics على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Kubernetes Basics، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Kubernetes Basics 4 دروس في المجموع.

حماية المعلومات الحساسة

عند إنشاء التطبيقات، غالبًا ما تتعاملون مع معلومات حساسة مثل كلمات مرور قواعد البيانات، أو مفاتيح API، أو الشهادات الخاصة.

يُعد تخزين هذه المعلومات مباشرةً في شيفرة التطبيق أو ملفات الإعدادات خطرًا أمنيًا كبيرًا! فقد يؤدي ذلك إلى حدوث اختراقات للبيانات وكشف نظامكم.

التعريف بـ Kubernetes Secrets

إن Kubernetes Secrets هي كائنات مصممة لتخزين البيانات الحساسة بأمان داخل العنقود.

تساعدكم على إبقاء المعلومات الحساسة منفصلة عن تعريفات Pod وشيفرة التطبيق، مما يجعل عمليات النشر أكثر أمانًا وأسهل في الإدارة.

  • منفصلة: أبقوا البيانات الحساسة خارج صور الحاويات وملفات YAML الخاصة بـ Pod.
  • قابلة للوصول: يمكن لـ Pods استخدامها كمتغيرات بيئية أو كملفات مُحمّلة.

Secrets مقارنةً بـ ConfigMaps

قد تتذكرون ConfigMaps من درس سابق، وقد استُخدمت لبيانات الإعدادات غير الحساسة.

تشبهها Secrets، لكنها مخصصة للبيانات الحساسة تحديدًا. يخزن كلاهما أزواج المفتاح والقيمة، لكن Secrets تتعامل مع طبيعة البيانات الحساسة.

  • ConfigMaps: للإعدادات العامة غير الحساسة (مثل مستويات السجل ونقاط نهاية API).
  • Secrets: للبيانات الحساسة (مثل كلمات المرور والرموز والمفاتيح الخاصة).

تذكروا أن Secrets تكون مُرمّزة بـ base64، وليست مشفّرة افتراضيًا!

إنشاء Secret من قيمة حرفية

إن أبسط طريقة لإنشاء Secret هي من قيمة حرفية باستخدام kubectl create secret generic.

يفيد ذلك مع أجزاء صغيرة ومفردة من البيانات الحساسة، مثل كلمة مرور بسيطة.

kubectl create secret generic my-db-secret \
  --from-literal=username=admin \
  --from-literal=password=SuperSecretP@ssw0rd!

إنشاء Secret من ملفات

بالنسبة إلى البيانات الحساسة الأكبر حجمًا أو متعددة الأسطر، مثل مفتاح خاص أو ملف إعدادات كامل، من الأفضل إنشاء Secret من ملفات.

أنشئوا الملفات محليًا أولًا، ثم أشيروا إليها. سيقرأ Kubernetes محتوى الملفات ويخزّنه.

# Create local files first
echo "my-api-key-12345" > api-key.txt
echo "my-token-abcde" > auth-token.txt

# Create the Secret
kubectl create secret generic app-credentials \
  --from-file=api-key.txt \
  --from-file=auth-token.txt

استخدام Secrets كمتغيرات بيئية

يمكن لـ Pods استهلاك بيانات Secret بحقنها مباشرةً في متغيراتها البيئية. وهذا شائع مع أزواج المفتاح والقيمة البسيطة.

يمكنكم الإشارة إلى مفاتيح فردية من Secret، أو إلى جميع المفاتيح باستخدام envFrom.

apiVersion: v1
kind: Pod
metadata:
  name: my-app-pod-env
spec:
  containers:
  - name: my-app
    image: nginx:latest
    env:
    - name: DB_USERNAME
      valueFrom:
        secretKeyRef:
          name: my-db-secret
          key: username
    - name: DB_PASSWORD
      valueFrom:
        secretKeyRef:
          name: my-db-secret
          key: password

استخدام Secrets كملفات مُحمّلة

بالنسبة إلى الملفات الحساسة، مثل الشهادات والمفاتيح الخاصة، أو عندما يتوقع التطبيق إعدادات من مسارات ملفات محددة، يمكنكم تحميل Secrets كملفات داخل Pod.

يتحول كل مفتاح في Secret إلى ملف في الدليل المُحمّل، وتكون قيمته هي محتوى الملف.

apiVersion: v1
kind: Pod
metadata:
  name: my-app-pod-vol
spec:
  containers:
  - name: my-app
    image: nginx:latest
    volumeMounts:
    - name: app-secret-volume
      mountPath: "/etc/secrets"
      readOnly: true
  volumes:
  - name: app-secret-volume
    secret:
      secretName: app-credentials

أمان Secrets

رغم أن Secrets تحمي البيانات من الاطلاع العرضي، فإنها ليست حلًا شاملًا. تذكروا النقاط التالية:

  • ترميز Base64: تكون Secrets مُرمّزة بـ base64، وليست مشفّرة. ويمكن لأي شخص لديه صلاحية الوصول إلى Secret فك ترميزها.
  • RBAC: استخدموا التحكم بالوصول المستند إلى الأدوار (RBAC) لتقييد من يمكنه قراءة Secrets أو إنشاؤها أو تعديلها.
  • التشفير أثناء التخزين: لتحقيق أمان فعلي، فعّلوا التشفير أثناء التخزين لبيانات etcd (مخزن Kubernetes الداعم). وغالبًا ما يوفر موفرو الخدمات السحابية هذه الميزة.

تحديث Secrets

إذا تغيرت بياناتكم الحساسة، فستحتاجون إلى تحديث Secret. سيؤدي ببساطة إلى إعادة تشغيل kubectl create secret باستخدام القيم الجديدة إلى تحديثها، أو يمكنكم استخدام kubectl apply -f مع ملف YAML محدّث.

لكن Pods قيد التشغيل التي تستهلك Secret لن تلتقط التغييرات تلقائيًا. لتطبيق التغييرات، تحتاجون عادةً إلى إعادة تشغيل Pods التي تستخدم Secret أو إعادة نشرها.

تحقق سريع: Secrets

تخيلوا أن لديكم مفتاح API خاصًا يحتاج تطبيقكم إلى الوصول إليه. ما الطريقة الأكثر أمانًا وملاءمةً لتخزين هذا المفتاح وتوفيره إلى Pod في Kubernetes؟

مراجعة: Secrets للبيانات الحساسة

أحسنتم! لقد تعلمتم كيفية التعامل مع البيانات الحساسة في Kubernetes!

  • تخزن Secrets معلومات حساسة مثل كلمات المرور ومفاتيح API.
  • تكون مُرمّزة بـ base64، ويمكن استهلاكها كـ متغيرات بيئية أو ملفات مُحمّلة.
  • طبّقوا دائمًا RBAC وفكروا في التشفير أثناء التخزين لتحقيق أقصى قدر من الأمان.
  • تذكروا أن Pods تحتاج إلى إعادة التشغيل لالتقاط تحديثات Secret.

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

هل درس «Secrets للبيانات الحساسة» مجاني؟

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

ماذا ستتعلم في «Secrets للبيانات الحساسة»؟

خزّن المعلومات الحساسة، مثل كلمات المرور ومفاتيح API، وأدِرها بأمان باستخدام Secrets تتمرن على Kubernetes Basics مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

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

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

كم من الوقت يستغرق درس «Secrets للبيانات الحساسة»؟

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

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

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

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

  1. ConfigMaps للإعدادات
  2. Secrets للبيانات الحساسة
  3. وحدات التخزين الدائمة ومطالباتها
  4. StorageClasses والتوفير الديناميكي
← العودة إلى Kubernetes Basics