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

1. مقدمة

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

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

ما الذي ستنشئه

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

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

المتطلبات

2. إنشاء مجلد

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

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

9328ef3bd4840817.png

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

20a094fe0c7a0924.png

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

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

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

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

93e4e224322c68a7.png

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

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. بما أنّ هذا المشروع سيحتوي على موارد، نحتاج إلى تفعيل واجهات برمجة التطبيقات للخدمات التي سيحميها المفتاح التلقائي. شغِّل الأمر التالي:
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. يمكنك منح دور مُشاهد الموارد المحمية في Cloud KMS في مورد مؤسستك لأي شخص يحتاج إلى عرض تفاصيل استخدام المفتاح.
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. حفظ معرّف المجلد كمتغير باسم ENTITY_ID
export FOLDER_ID=<paste the folder ID>

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

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

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

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

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

785f338e1860029c.png

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

f0ee5141dc6fa40e.png

  1. انقر على "تفعيل".
  2. انقر فوق "Browse" (استعراض) لتحديد المشروع الرئيسي
  3. اختَر مشروع إدارة المفاتيح، ثم انقر على "إرسال".

5acd9e68eb972e15.png

تؤكد رسالة أنه تم تفعيل المفتاح التلقائي في Cloud KMS في المجلد. من المفترض أن تظهر صفحة عناصر التحكم في 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 كمفتاح تلقائي للحزمة.

لا ينشئ المفتاح التلقائي مفاتيح للكائنات. وبشكلٍ تلقائي، تستخدم العناصر التي تم إنشاؤها في الحزمة المفتاح التلقائي للحزمة. إذا كنت تريد تشفير كائن باستخدام مفتاح غير المفتاح التلقائي للحزمة، يمكنك إنشاء ملف 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. شغّل الأمر التالي لحفظ رقم مشروعك كمتغير باسم RI_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 بنجاح وشفّرتها تلقائيًا عند الطلب باستخدام مفتاح Cloud KMS Autokey.

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

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

تحميل البيانات إلى الموارد المشفَّرة تلقائيًا

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