تشفير الموارد بسهولة باستخدام مفتاح Cloud KMS التلقائي

1. مقدمة

يبسّط Cloud KMS Autokey عملية إنشاء واستخدام مفاتيح التشفير المُدارة للعميل (CMEKs) من خلال التشغيل الآلي لإدارة الحسابات وتخصيصها. باستخدام ميزة "المفتاح التلقائي"، لن تحتاج إلى تخطيط سلاسل المفاتيح والمفاتيح وحسابات الخدمة وتوفيرها قبل الحاجة. وبدلاً من ذلك، تُنشئ أداة Autokey مفاتيحك عند الطلب أثناء إنشاء مواردك، وتعتمد على الأذونات المفوَّضة بدلاً من مشرفي Cloud KMS.

يمكن أن يساعدك استخدام المفاتيح التي تم إنشاؤها بواسطة Autokey في التوافق باستمرار مع المعايير المتّبَعة في المجال والممارسات المقترَحة لأمان البيانات، بما في ذلك مستوى حماية HSM وفصل المهام وتدوير المفاتيح والموقع الجغرافي وخصوصية المفتاح. ينشئ المفتاح التلقائي مفاتيح تتبع كلاً من الإرشادات العامة والإرشادات الخاصة بنوع المورد لخدمات Google Cloud التي تتكامل مع Cloud KMS Autokey. بعد إنشائها، تعمل المفاتيح المطلوبة باستخدام Autokey بالطريقة نفسها التي تعمل بها مفاتيح Cloud HSM الأخرى مع الإعدادات نفسها.

التطبيق الذي ستصممه

في هذا الدرس التطبيقي حول الترميز، ستطلق موارد محمية باستخدام مفتاح Autokey في Cloud KMS من خلال إنشاء ما يلي:

  • مورد مجلد
  • مشروع يحتوي على مفاتيحك
  • وكيل خدمة لمساعدتك كمساعدك للإدارة الرئيسية
  • مشروع يستضيف مواردك المحمية
  • مجموعات بيانات BigQuery والأقراص الثابتة وحِزم Cloud Storage المشفَّرة باستخدام مفتاح Autokey من Cloud KMS

المتطلبات

2. إنشاء مجلد

المجلدات هي عُقد في التسلسل الهرمي لموارد Cloud Platform. يمكن أن يحتوي المجلد على مشاريع أو مجلدات أخرى أو مزيج من الاثنين. يمكن لموارد المؤسسة استخدام المجلدات لتجميع المشاريع ضمن عقدة مورد المؤسسة في تسلسل هرمي. لإنشاء مجلد:

  1. انتقِل إلى صفحة إدارة الموارد في Google Cloud Console.
  2. تأكَّد من اختيار اسم مورد مؤسستك في القائمة المنسدلة الخاصة بالمؤسسة أعلى الصفحة.
  3. انقر على "إنشاء مجلد".

9328ef3bd4840817.png

  1. اختيار "المجلد العادي"

20a094fe0c7a0924.png

  1. في مربّع "اسم المجلد"، أدخِل اسم المجلد الجديد. في هذا الدرس التطبيقي، ننصحك باستخدام "Autokey-Folder".
  2. ضمن "الوجهة"، انقر على "تصفّح"، ثم اختَر مورد المؤسسة أو المجلد الذي تريد إنشاء المجلد الجديد ضمنه.
  3. انقر على "إنشاء".

3- إنشاء مشروع موارد

من المهم إنشاء مشروع موارد يحتوي على الموارد، مثل مجموعات بيانات BigQuery والأقراص الدائمة وحِزم Cloud Storage التي تريد تشفيرها باستخدام مفتاح Cloud KMS التلقائي. إذا حاولت إنشاء موارد محمية باستخدام "مفتاح تلقائي" في المشروع الرئيسي، يرفض "المفتاح التلقائي" طلب مفتاح جديد. لإنشاء مشروع الموارد:

  1. الانتقال إلى صفحة إدارة الموارد في Google Cloud Console
  2. انقر على "إنشاء مشروع".

93e4e224322c68a7.png

  1. في القائمة المنسدلة "تحديد مؤسسة" في أعلى الصفحة، حدد "Autokey-مجلد" المجلد.
  2. في نافذة "مشروع جديد" التي تظهر، أدخِل اسم مشروع واختَر حساب فوترة حسب الاقتضاء. بالنسبة إلى هذا التمرين المعملي، ننصحك باستخدام ميزة "الترميز التلقائي للموارد المشفّرة"
  3. في مربّع "الموقع"، اختَر المجلد "Autokey-Folder". سيكون هذا المورد هو الأصل الهرمي للمشروع الجديد. يُفترض أن تبدو إعداداتك مشابهة لما يلي:

187ece37daf50835.png

  1. انسخ رقم تعريف المشروع - في المثال أعلاه، رقم تعريف المشروع هو "causal-hour-43319-m4" ولكن سيكون رقم التعريف الخاص بك مختلفًا - والصقه في محرِّر النصوص الذي تختاره.
  2. انقر على "إنشاء".
  3. انقر على رمز Cloud Shell في أعلى يسار الشاشة.

16c8476c4991f448.png

  1. بعد تفعيل Cloud Shell، احفظ رقم تعريف مشروع Autokey كمتغيّر من خلال تشغيل الأمر التالي:
export RESOURCE_PROJECT=<paste your Resource Project ID>

بما أنّ رقم تعريف المشروع هو "key-management-433319"، سيظهر الأمر على النحو التالي:

export AUTOKEY_PROJECT=causal-hour-43319-m4
  1. شغّل الأمر التالي لتنفيذ الأوامر من مشروع المفتاح:
gcloud config set project $RESOURCE_PROJECT

يمكنك تفويض Cloud Shell بالنقر على "تفويض" عندما يُطلب منك ذلك.

a6c755d4921bc728.png

  1. بما أنّ هذا المشروع سيتضمّن موارد، علينا تفعيل واجهات برمجة التطبيقات للخدمات التي سيحميها تطبيق Autokey. شغِّل الأمر التالي:
gcloud services enable storage.googleapis.com bigquery.googleapis.com compute.googleapis.com

4. إنشاء مشروع رئيسي

ننصحك بإنشاء مشروع يحتوي على موارد Cloud KMS التي تم إنشاؤها باستخدام Autokey. وسنشير إليه باسم "المشروع الرئيسي" من الآن فصاعدًا. يمكن إنشاء مشروع المفتاح داخل المجلد نفسه الذي تنوي تفعيل ميزة "مفتاح المرور التلقائي" فيه. يجب عدم إنشاء موارد أخرى داخل المشروع الرئيسي. إذا حاولت إنشاء موارد محمية باستخدام "مفتاح تلقائي" في المشروع الرئيسي، يرفض "المفتاح التلقائي" طلب مفتاح جديد. لإنشاء المشروع الرئيسي:

  1. الانتقال إلى صفحة إدارة الموارد في Google Cloud Console
  2. انقر على "إنشاء مشروع".

93e4e224322c68a7.png

  1. في القائمة المنسدلة "تحديد مؤسسة" في أعلى الصفحة، حدد "Autokey-مجلد" المجلد.
  2. في نافذة "مشروع جديد" التي تظهر، أدخِل اسم مشروع واختَر حساب فوترة حسب الاقتضاء. بالنسبة إلى هذا الدرس التطبيقي، ننصحك بالاطّلاع على "إدارة المفاتيح".
  3. في مربّع "Location" (الموقع)، اختَر "Autokey-مجلد" المجلد. سيكون هذا المرجع هو الأصل الهرمي للمشروع الجديد. يُفترض أن تبدو إعداداتك مشابهة لما يلي:

157894b5c9048c06.png

  1. انسخ رقم تعريف المشروع - في المثال أعلاه، رقم تعريف المشروع هو "key-management-433319" ولكن سيكون رقم التعريف الخاص بك مختلفًا - والصقه في محرِّر النصوص الذي تختاره.
  2. انقر على "إنشاء".

5- إعداد مشروع مفتاح Autokey

الآن بعد أن تم إنشاء كل مشروع، حان وقت ضبط المشروع الرئيسي لاستخدام Cloud KMS Autokey.

  1. انقر على رمز Cloud Shell في أعلى يسار الشاشة.

16c8476c4991f448.png

  1. بعد تفعيل Cloud Shell، احفظ رقم تعريف مشروع Autokey كمتغيّر من خلال تشغيل الأمر التالي:
export AUTOKEY_PROJECT=<paste your Autokey Project ID>

بما أنّ رقم تعريف المشروع هو "key-management-433319"، سيظهر الأمر على النحو التالي:

export AUTOKEY_PROJECT=key-management-433319
  1. شغّل الأمر التالي لتنفيذ الأوامر من مشروع المفتاح:
gcloud config set project $AUTOKEY_PROJECT

يمكنك تفويض Cloud Shell بالنقر على "تفويض" عندما يُطلب منك ذلك.

a6c755d4921bc728.png

  1. تفعيل Cloud KMS API من خلال تشغيل الأمر التالي
gcloud services enable cloudkms.googleapis.com  kmsinventory.googleapis.com
  1. شغِّل الأمر التالي لحفظ رقم المشروع كمتغيّر باسم AUTOKEY_PROJECT_NUMBER.
export AUTOKEY_PROJECT_NUMBER=$(gcloud projects list \
--filter="$(gcloud config get-value project)" \
--format="value(PROJECT_NUMBER)")
  1. احفظ البريد الإلكتروني لمديرك كمتغير عن طريق تشغيل الأمر التالي:
export KEY_ADMIN_EMAIL=<paste your Principal's email>
  1. منح أذونات مشرف Cloud KMS في مشروع المفتاح إلى المستخدمين المشرفين على Cloud KMS
gcloud projects add-iam-policy-binding $AUTOKEY_PROJECT_NUMBER \
    --role=roles/cloudkms.admin \
    --member=user:$KEY_ADMIN_EMAIL

6- إعداد وكلاء خدمة Cloud KMS

ينشئ وكيل خدمة Cloud KMS لمشروع المفاتيح المفاتيح ويطبّق التزامات سياسة إدارة الهوية وإمكانية الوصول أثناء إنشاء الموارد، نيابةً عن مشرف في Cloud KMS. حتى تتمكّن من إنشاء المفاتيح وتعيينها، يتطلب وكيل خدمة Cloud KMS أذونات مشرف Cloud KMS.

  1. ابحث عن معرّف المؤسسة باستخدام الأمر التالي:
gcloud organizations list | grep -P -i 'ID:' | grep -i '[0-9]'
  1. انسخ معرّف المؤسسة - هذه هي النتيجة الرقمية التي يتم تمييزها باللون الأحمر
  2. احفظ رقم تعريف المؤسسة كمتغيّر باسم ORG_ID:
export ORG_ID=<paste your Organization ID>
  1. أنشئ وكيل خدمة Cloud KMS من خلال تنفيذ الأمر التالي:
gcloud beta services identity create --service=cloudkms.googleapis.com \
    --project=$AUTOKEY_PROJECT_NUMBER
  1. امنح دور مشرف Cloud KMS لوكيل الخدمة:
gcloud projects add-iam-policy-binding $AUTOKEY_PROJECT_NUMBER \
    --role=roles/cloudkms.admin \
    --member=serviceAccount:service-$AUTOKEY_PROJECT_NUMBER@gcp-sa-cloudkms.iam.gserviceaccount.com
  1. أضِف عملية ربط بسياسة إدارة الهوية وإمكانية الوصول حتى تتمكّن من الاطّلاع على استخدام مفتاح Cloud KMS. يوفّر استخدام المفتاح معلومات لكل مفتاح، بما في ذلك عدد الموارد المحمية والمشاريع ومنتجات Google Cloud الفريدة التي تستخدم المفتاح. يتوفّر هذا المستوى من التفاصيل لأي شخص لديه دور مُشاهد Cloud KMS على المفتاح. شغِّل الأمر التالي:
gcloud organizations add-iam-policy-binding $ORGANIZATION_ID \
    --member="serviceAccount:service-org-$ORGANIZATION_ID@gcp-sa-cloudkms.iam.gserviceaccount.com" \
    --role='roles/cloudkms.orgServiceAgent'
  1. امنح حساب الخدمة في Cloud KMS دور "موظّف خدمة المؤسسة في Cloud KMS" (cloudkms.orgServiceAgent) في مورد مؤسستك.
gcloud organizations add-iam-policy-binding $ORG_ID \
    --member="serviceAccount:service-org-$ORG_ID@gcp-sa-cloudkms.iam.gserviceaccount.com" \
    --role='roles/cloudkms.orgServiceAgent'
  1. امنح دور "عارض الموارد المحمية في خدمة إدارة مفاتيح التشفير في السحابة الإلكترونية" لمورد مؤسستك لأي مستخدم يحتاج إلى عرض تفاصيل استخدام المفتاح.
gcloud organizations add-iam-policy-binding $ORG_ID \
    --member="user:$KEY_ADMIN_EMAIL" \
    --role='roles/cloudkms.protectedResourcesViewer'

7- منح أدوار مستخدم "المفتاح التلقائي"

قبل أن يتمكّن المطوّرون من استخدام ميزة "مفتاح تلقائي"، يجب منحهم الدور المطلوب. يمكنك منح الدور على مستوى المجلد أو على مستوى المشروع. يتيح هذا الدور للمطوّرين طلب المفاتيح من وكيل خدمة Cloud KMS أثناء إنشاء موارد في ذلك المجلد أو المشروع.

الخطوة الأولى لمنح الدور هي حفظ رقم تعريف المجلد.

  1. ابحث عن معرّف المجلد باستخدام الأمر التالي:
gcloud projects describe $AUTOKEY_PROJECT | grep 'id' | grep -P -i '[0-9]+'
  1. انسخ رقم تعريف المجلد، وهو الجزء المميّز باللون الأحمر.
  2. احفظ رقم تعريف المجلد كمتغيّر باسم FOLDER_ID.
export FOLDER_ID=<paste the folder ID>

لأغراض هذا الدرس التطبيقي، سنحدّد مشرف المفاتيح على أنّه مستخدم Autokey. ومع ذلك، في حالات استخدام الإنتاج وفي المؤسسات التي تضم أكثر من مستخدم واحد، يجب أن يكون مشرف المفتاح مختلفًا عن المطوّر الذي يستخدم Autokey.

  1. امنح الدور/cloudkms.autokeyUser على مستوى المجلد:
gcloud resource-manager folders add-iam-policy-binding \
    $FOLDER_ID --role=roles/cloudkms.autokeyUser \
    --member=user:$KEY_ADMIN_EMAIL

8. تفعيل مفتاح Autokey في Cloud KMS على مجلد موارد

في هذه الخطوة، ستفعّل ميزة "مفتاح التشغيل التلقائي" في Cloud KMS في مجلد موارد وتحديد مشروع Cloud KMS الذي سيحتوي على موارد "مفتاح التشغيل التلقائي" لذلك المجلد. يؤدي تفعيل المفتاح التلقائي في هذا المجلد إلى تفعيل المفتاح التلقائي لجميع مشاريع الموارد داخل المجلد.

  1. في وحدة التحكّم في Google Cloud، انتقِل إلى صفحة عناصر تحكُّم KMS.
  2. انقر على "اختيار مجلد".

785f338e1860029c.png

  1. من أداة اختيار السياق، اختَر المجلد الذي تريد تفعيل ميزة "مفتاح التشغيل التلقائي" فيه. سيكون هذا هو المجلد نفسه الذي أنشأته سابقًا ويحتوي على مشروع الموارد ومشروع الإدارة الرئيسية. من المفترض أن يظهر الرمز على النحو التالي:

f0ee5141dc6fa40e.png

  1. انقر على "تفعيل".
  2. انقر على "تصفّح" لاختيار مشروع المفتاح.
  3. اختَر مشروع إدارة المفاتيح، ثم انقر على "إرسال".

5acd9e68eb972e15.png

تظهر رسالة تؤكّد أنّه تم تفعيل مفتاح Autokey في Cloud KMS على المجلد. من المفترض أن تظهر صفحة عناصر التحكّم في "إدارة مفاتيح المحتوى" على النحو التالي:

8bddb3d688ba842d.png

9. إنشاء موارد محمية باستخدام مفتاح تلقائي في Cloud KMS

الأقراص الدائمة من Compute Engine

ينشئ المفتاح التلقائي مفتاحًا جديدًا لكل قرص وصورة وصورة جهاز في الموقع نفسه مثل المورد الذي يتم إنشاؤه.

لإنشاء قرص، أكمِل الخطوات التالية:

  1. في وحدة تحكُّم Google Cloud، انتقِل إلى صفحة "الأقراص".
  2. انقر على "إنشاء قرص" وأدخِل سمات القرص الجديد.
  3. ضمن "التشفير"، اختَر مفتاح Cloud KMS.

dcc63e9ae03c5fbe.png

  1. بالنسبة إلى "نوع المفتاح"، اختَر Cloud KMS with Autokey، ثم انقر على "طلب مفتاح جديد". توضّح الرسالة متى تم إنشاء مفتاحك بنجاح وأصبح جاهزًا للاستخدام.

4b2283a0d52cc98d.png

  1. لإنهاء إنشاء القرص، انقر على "إنشاء".

يمكنك اتّباع عملية مشابهة لإنشاء موارد محمية لمثيل الأجهزة الافتراضية والصور والصور الآلية.

حِزم Google Cloud Storage

ينشئ Autokey مفتاحًا جديدًا في الموقع الجغرافي نفسه للحزمة. يتم تعيين المفتاح الذي تم إنشاؤه بواسطة Autokey كمفتاح تلقائي للحزمة.

لا ينشئ المفتاح التلقائي مفاتيح للكائنات. تستخدم العناصر التي يتم إنشاؤها في حزمة المفتاح التلقائي للحزمة تلقائيًا. إذا كنت تريد تشفير كائن باستخدام مفتاح غير المفتاح التلقائي للحزمة، يمكنك إنشاء ملف CMEK يدويًا واستخدام هذا المفتاح عند إنشاء الكائن.

  1. في وحدة التحكّم في Google Cloud، انتقِل إلى صفحة إنشاء حزمة.
  2. اختَر اسمًا فريدًا ودائمًا عالميًا.
  3. اختَر موقعًا جغرافيًا للبيانات.
  4. انتقِل إلى القسم "اختيار كيفية حماية بيانات الكائنات". قسم

e31bbeff5c7aabdf.png

  1. انقر على "اختيار كيفية حماية بيانات الكائن" لتوسيع القسم

9c68ce19dac932de.png

  1. وسِّع قسم "تشفير البيانات" واختَر مفتاح Cloud KMS. d8caca08891be9dc.png
  2. بالنسبة إلى "نوع المفتاح"، اختَر Cloud KMS with Autokey، ثم انقر على "طلب مفتاح جديد". ستظهر رسالة تشير إلى أنّه تم إنشاء المفتاح بنجاح وأنّه جاهز للاستخدام.

a10d1ae243c44811.png

  1. لإنهاء إنشاء الحزمة، انقر على "إنشاء". إذا ظهر لك مربع حوار يوضح أنه "سيتم منع الوصول العام" انقر على "تأكيد".

مجموعة بيانات BigQuery

لكلّ مجموعة بيانات جديدة، ينشئ Autokey مفتاحًا جديدًا في الموقع الجغرافي نفسه للمورد نفسه، ما يؤدي إلى أن يصبح المفتاح التلقائي لمجموعة البيانات. لا تنشئ ميزة "مفتاح تلقائي" مفاتيح للجداول أو طلبات البحث أو الجداول المؤقتة أو النماذج. ويتم حماية هذه الموارد تلقائيًا باستخدام المفتاح التلقائي لمجموعة البيانات. إذا كنت تريد حماية مورد في مجموعة بيانات باستخدام مفتاح غير المفتاح التلقائي لمجموعة البيانات، يمكنك إنشاء مفتاح التشفير CMEK يدويًا واستخدام هذا المفتاح عند إنشاء المورد.

لإنشاء مجموعة بيانات BigQuery، يجب أن يكون لديك دور مستخدم BigQuery أولاً.

  1. الرجوع إلى Cloud Shell
  2. يمكنك ضبط Cloud Shell لتنفيذ الأوامر من مشروع الموارد.
gcloud config set project $RESOURCE_PROJECT
  1. نفِّذ الأمر التالي لحفظ رقم المشروع كمتغيّر باسم RESOURCE_PROJECT_NUMBER.
export RESOURCE_PROJECT_NUMBER=$(gcloud projects list --filter="$(gcloud config get-value project)" --format="value(PROJECT_NUMBER)")
  1. منح نفسك دور "مستخدم BigQuery"
gcloud projects add-iam-policy-binding $RESOURCE_PROJECT_NUMBER \
    --role=roles/bigquery.user \
    --member=user:$KEY_ADMIN_EMAIL

الآن بعد أن أصبح لديك دور مستخدم BigQuery، يمكنك إنشاء مجموعة بيانات وحمايتها باستخدام Autokey!

  1. في وحدة تحكُّم Google Cloud، انتقِل إلى صفحة BigQuery.
  2. اتبع التعليمات لإنشاء مجموعة بيانات حتى تصل إلى الخيارات المتقدمة > التشفير.
  3. ضمن "التشفير"، اختَر مفتاح Cloud KMS.
  4. بالنسبة إلى "نوع المفتاح"، اختَر Cloud KMS with Autokey، ثم انقر على "طلب مفتاح جديد". توضّح الرسالة متى تم إنشاء مفتاحك بنجاح وأصبح جاهزًا للاستخدام.
  5. لإنهاء إنشاء مجموعة البيانات، انقر فوق "Create dataset" (إنشاء مجموعة بيانات).

10. استكشاف مفاتيحك

في هذه الخطوة، ستتعرَّف على المفاتيح التي تم إنشاؤها من خلال Cloud KMS Autokey نيابةً عنك من خلال الانتقال إلى صفحة "مستودع المفاتيح". تقدّم صفحة "مستودع المفاتيح" معلومات شاملة عن مفاتيح التشفير في مشروعك. يُرجى العِلم أنّ ظهور البيانات قد يتأخّر. على سبيل المثال، إذا أنشأت موردًا محميًا جديدًا، لن تتم إضافة المورد المحمي وإصدار المفتاح المرتبط به على الفور إلى علامة التبويب "تتبُّع الاستخدام". يمكنك الاطّلاع على المزيد من القيود هنا.

  1. في Google Cloud Console، انتقِل إلى صفحة مستودع المفاتيح.
  2. اختياري: لفلترة قائمة المفاتيح، أدخِل عبارات البحث في المربّع filter_list "فلتر"، ثم اضغط على Enter. على سبيل المثال، يمكنك الفلترة حسب الموقع الجغرافي أو حلقة المفاتيح أو الحالة أو خصائص أخرى للمفاتيح.
  3. انقر على اسم المفتاح الذي تريد الاطّلاع على معلومات الاستخدام الخاصة به.
  4. انقر على "نظرة عامة". لاحظ أن لديك مفتاحًا لكل مورد تم إنشاؤه. يتضمّن كل اسم مفتاح اسم المورد الذي يحميه المفتاح (مثل "compute-disk" أو "storage-bucket"). يضمن مفتاح التشغيل التلقائي في Cloud KMS جدولة كل مفتاح للتدوير بعد 365 يومًا من إنشائه وتعيين "HSM" لكل مفتاح. مستوى الحماية لدينا.

9acbce68acb653d4.png

  1. انقر على علامة التبويب "تتبُّع الاستخدام". لاحِظ مستوى المعلومات المعروضة: يتم عرض كل مورد يشفّره المفتاح هنا، إلى جانب المشروع والموقع الجغرافي وتاريخ الإنشاء.
  2. اختياري: لفلترة قائمة الموارد المحمية، أدخِل عبارات البحث في المربع filter_list "فلتر"، ثم اضغط على Enter.

7def6fe9a023d063.png

11. تهانينا

تهانينا، لقد نجحت في إنشاء موارد Google Cloud وتشفيرها تلقائيًا عند الطلب باستخدام مفتاح Autokey في Cloud KMS.

تعرَّفت الآن على الخطوات الرئيسية المطلوبة لإعداد Autokey واستخدامه لتشفير مواردك تلقائيًا باستخدام مفاتيح Cloud KMS.

12. ما هي الخطوات التالية؟

تحميل البيانات إلى المراجع المشفّرة باستخدام مفتاح Autokey

مستندات المرجع