1. مقدمة
تسهّل خدمة Cloud KMS Autokey إنشاء مفاتيح التشفير التي يديرها العميل (CMEK) واستخدامها من خلال أتمتة عملية توفير المفاتيح وتعيينها. باستخدام Autokey، لن تحتاج إلى تخطيط حلقات المفاتيح والمفاتيح وحسابات الخدمة وتوفيرها قبل الحاجة إليها. بدلاً من ذلك، تنشئ Autokey مفاتيحك عند الطلب أثناء إنشاء مواردك، مع الاعتماد على الأذونات المفوضة بدلاً من مشرفي Cloud KMS.
يمكن أن يساعدك استخدام المفاتيح التي تم إنشاؤها بواسطة Autokey في الالتزام باستمرار بالمعايير المتّبعة في المجال والممارسات المقترَحة لأمان البيانات، بما في ذلك مستوى حماية وحدة أمان الأجهزة (HSM) وفصل المهام وتدوير المفاتيح والموقع الجغرافي وتحديد المفاتيح. تنشئ Autokey مفاتيح تتّبع الإرشادات العامة والإرشادات الخاصة بنوع المورد لخدمات Google Cloud التي تتكامل مع Autokey في Cloud KMS. بعد إنشاء المفاتيح، تعمل المفاتيح المطلوبة باستخدام وظيفة Autokey بشكل مطابق لمفاتيح Cloud HSM الأخرى التي تتضمّن الإعدادات نفسها.
ما ستنشئه
في هذا الدرس التطبيقي حول الترميز، ستطلق موارد محمية باستخدام ميزة "المفتاح التلقائي" في Cloud KMS من خلال إنشاء ما يلي:
- مورد مجلد
- مشروع سيحتوي على مفاتيحك
- وكيل خدمة يعمل كمساعدك في إدارة المفاتيح
- مشروع سيستضيف مواردك المحمية
- مجموعات بيانات BigQuery والأقراص الثابتة وحِزم Cloud Storage المشفّرة باستخدام Autokey في Cloud KMS
المتطلبات
- مؤسسة Google Cloud
- يجب أن يكون لدى مدير Google Cloud الأدوار التالية على مستوى المؤسسة لإكمال هذا التمرين العملي:
- مشرف مفتاح التشفير التلقائي في Cloud KMS (roles/cloudkms.autokeyAdmin)
- مشرف إدارة الهوية وإمكانية الوصول في المجلد (roles/resourcemanager.folderIamAdmin)
- مستخدم حساب الفوترة (roles/billing.user)
- مشاريع Google Cloud التي تم تفعيل الفوترة فيها
- تجربة Linux الأساسية
2. إنشاء مجلد
المجلدات هي عُقد في التسلسل الهرمي لموارد Cloud Platform. يمكن أن يتضمّن المجلّد مشاريع أو مجلدات أخرى أو مزيجًا من كليهما. يمكن لموارد المؤسسة استخدام المجلدات لتجميع المشاريع ضمن عقدة مورد المؤسسة في تسلسل هرمي. لإنشاء مجلد:
- انتقِل إلى صفحة إدارة الموارد في Google Cloud Console.
- تأكَّد من اختيار اسم مورد مؤسستك في القائمة المنسدلة الخاصة بالمؤسسة في أعلى الصفحة.
- انقر على "إنشاء مجلد".

- اختيار مجلد عادي

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

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

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

- بعد تفعيل Cloud Shell، احفظ رقم تعريف مشروع Autokey كمتغيّر من خلال تنفيذ الأمر التالي:
export RESOURCE_PROJECT=<paste your Resource Project ID>
بما أنّ رقم تعريف مشروعي هو "key-management-433319"، يبدو الأمر على النحو التالي:
export AUTOKEY_PROJECT=causal-hour-43319-m4
- نفِّذ الأمر التالي لتنفيذ الأوامر من "مشروع المفتاح":
gcloud config set project $RESOURCE_PROJECT
عندما يُطلب منك ذلك، امنح الإذن لـ Cloud Shell من خلال النقر على "منح الإذن".

- بما أنّ هذا المشروع سيحتوي على موارد، علينا تفعيل واجهات برمجة التطبيقات للخدمات التي ستوفّر لها Autokey الحماية. نفِّذ الأمر التالي:
gcloud services enable storage.googleapis.com bigquery.googleapis.com compute.googleapis.com
4. إنشاء مشروع مفتاح
ننصحك بإنشاء مشروع يحتوي على موارد Cloud KMS التي أنشأتها أداة Autokey. وسيُشار إليه باسم "المشروع الرئيسي" من الآن فصاعدًا. يمكن إنشاء مشروع المفتاح داخل المجلد نفسه الذي تخطّط لتفعيل Autokey فيه. يجب عدم إنشاء موارد أخرى داخل المشروع الرئيسي. إذا حاولت إنشاء موارد محمية بواسطة Autokey في مشروع المفتاح، سترفض Autokey طلب مفتاح جديد. لإنشاء المشروع الرئيسي، اتّبِع الخطوات التالية:
- انتقِل إلى صفحة إدارة الموارد في Google Cloud Console.
- انقر على "إنشاء مشروع".

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

- انسخ رقم تعريف المشروع (في المثال أعلاه، رقم تعريف المشروع هو "key-management-433319"، ولكن سيكون رقم التعريف مختلفًا) إلى محرّر النصوص الذي تختاره.
- انقر على "إنشاء".
5- إعداد مشروع مفتاح Autokey
بعد إنشاء كل مشروع، حان الوقت لإعداد مشروع المفتاح لاستخدام ميزة "المفتاح التلقائي" في Cloud KMS.
- انقر على رمز Cloud Shell في أعلى يسار الشاشة

- بعد تفعيل Cloud Shell، احفظ رقم تعريف مشروع Autokey كمتغيّر من خلال تنفيذ الأمر التالي:
export AUTOKEY_PROJECT=<paste your Autokey Project ID>
بما أنّ رقم تعريف مشروعي هو "key-management-433319"، يبدو الأمر على النحو التالي:
export AUTOKEY_PROJECT=key-management-433319
- نفِّذ الأمر التالي لتنفيذ الأوامر من "مشروع المفتاح":
gcloud config set project $AUTOKEY_PROJECT
عندما يُطلب منك ذلك، امنح الإذن لـ Cloud Shell من خلال النقر على "منح الإذن".

- فعِّل واجهة برمجة التطبيقات Cloud KMS API من خلال تنفيذ الأمر التالي
gcloud services enable cloudkms.googleapis.com kmsinventory.googleapis.com
- نفِّذ الأمر التالي لحفظ رقم مشروعك كمتغيّر باسم AUTOKEY_PROJECT_NUMBER
export AUTOKEY_PROJECT_NUMBER=$(gcloud projects list \
--filter="$(gcloud config get-value project)" \
--format="value(PROJECT_NUMBER)")
- احفظ البريد الإلكتروني للمدير كمتغيّر من خلال تنفيذ الأمر التالي:
export KEY_ADMIN_EMAIL=<paste your Principal's email>
- منح أذونات مشرف 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 لمشروع مفتاح المفاتيح ويربط سياسات "إدارة الهوية والوصول" (IAM) أثناء إنشاء الموارد، وذلك نيابةً عن مشرف Cloud KMS. ليتمكّن وكيل خدمة Cloud KMS من إنشاء المفاتيح وتعيينها، يجب أن تتوفّر لديه أذونات مشرف Cloud KMS.
- ابحث عن معرّف المؤسسة باستخدام الأمر التالي:
gcloud organizations list | grep -P -i 'ID:' | grep -i '[0-9]'
- انسخ معرّف المؤسسة، وهو النتيجة الرقمية المميّزة باللون الأحمر
- احفظ رقم تعريف المؤسسة كمتغيّر باسم ORG_ID:
export ORG_ID=<paste your Organization ID>
- أنشئ وكيل خدمة Cloud KMS من خلال تنفيذ الأمر التالي:
gcloud beta services identity create --service=cloudkms.googleapis.com \
--project=$AUTOKEY_PROJECT_NUMBER
- امنح دور مشرف 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
- أضِف ربط سياسة "إدارة الهوية وإمكانية الوصول" حتى تتمكّن من الاطّلاع على استخدام مفتاح 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'
- امنح حساب الخدمة في 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'
- امنح دور "عارض الموارد المحمية في Cloud KMS" على مورد "المؤسسة" لأي مستخدم يحتاج إلى الاطّلاع على تفاصيل استخدام المفتاح.
gcloud organizations add-iam-policy-binding $ORG_ID \
--member="user:$KEY_ADMIN_EMAIL" \
--role='roles/cloudkms.protectedResourcesViewer'
7. منح أدوار مستخدمي Autokey
قبل أن يتمكّن المطوّرون من استخدام Autokey، يجب منحهم الدور المطلوب. يمكنك منح الدور على مستوى المجلد أو على مستوى المشروع. يتيح هذا الدور للمطوّرين طلب مفاتيح من وكيل خدمة Cloud KMS أثناء إنشاء موارد في هذا المجلد أو المشروع.
تتمثّل الخطوة الأولى في منح الدور في حفظ معرّف المجلد.
- ابحث عن رقم تعريف المجلد باستخدام الأمر التالي:
gcloud projects describe $AUTOKEY_PROJECT | grep 'id' | grep -P -i '[0-9]+'
- انسخ معرّف المجلد، وهو الجزء المميّز باللون الأحمر.
- احفظ رقم تعريف المجلد كمتغير باسم FOLDER_ID
export FOLDER_ID=<paste the folder ID>
لأغراض هذا الدرس التطبيقي، سنعرّف مشرف المفتاح على أنّه مستخدم Autokey. ومع ذلك، في حالات الاستخدام الفعلي وفي المؤسسات التي تضم أكثر من فرد واحد، يجب أن يكون مشرف المفتاح مختلفًا عن المطوّر الذي يستخدم Autokey.
- امنح الأدوار/دور cloudkms.autokeyUser على مستوى المجلد:
gcloud resource-manager folders add-iam-policy-binding \
$FOLDER_ID --role=roles/cloudkms.autokeyUser \
--member=user:$KEY_ADMIN_EMAIL
8. تفعيل ميزة "المفتاح التلقائي" في Cloud KMS على مجلد موارد
في هذه الخطوة، عليك تفعيل ميزة Autokey في Cloud KMS على مجلد موارد وتحديد مشروع Cloud KMS الذي سيحتوي على موارد Autokey لهذا المجلد. يؤدي تفعيل Autokey في هذا المجلد إلى تفعيل Autokey لجميع مشاريع الموارد داخل المجلد.
- في Google Cloud Console، انتقِل إلى صفحة عناصر تحكّم KMS.
- انقر على "اختيار مجلد".

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

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

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

9- إنشاء موارد محمية باستخدام ميزة "المفتاح التلقائي" في Cloud KMS
أقراص Persistent Disk في Compute Engine
تنشئ Autokey مفتاحًا جديدًا لكل قرص وصورة وصورة آلة في الموقع الجغرافي نفسه للمورد الذي يتم إنشاؤه.
لإنشاء قرص، أكمِل الخطوات التالية:
- في Google Cloud Console، انتقِل إلى صفحة "الأقراص".
- انقر على "إنشاء قرص" وأدخِل خصائص القرص الجديد.
- ضمن "التشفير"، اختَر مفتاح Cloud KMS.

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

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

- انقر على "اختيار طريقة حماية بيانات العناصر" لتوسيع القسم

- وسِّع قسم "تشفير البيانات" واختَر مفتاح Cloud KMS.

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

- لإنهاء عملية إنشاء الحزمة، انقر على "إنشاء". إذا ظهر لك مربّع حوار يوضّح أنّه "سيتم منع الوصول للجميع"، انقر على "تأكيد".
مجموعة بيانات BigQuery
بالنسبة إلى كل مجموعة بيانات جديدة، ينشئ Autokey مفتاحًا جديدًا في الموقع الجغرافي نفسه للمرجع، ويصبح هذا المفتاح هو المفتاح التلقائي لمجموعة البيانات. لا تنشئ Autokey مفاتيح للجداول أو طلبات البحث أو الجداول المؤقتة أو النماذج. تكون هذه المراجع محمية تلقائيًا بمفتاح مجموعة البيانات التلقائي. إذا أردت حماية مورد في مجموعة بيانات باستخدام مفتاح غير المفتاح التلقائي لمجموعة البيانات، يمكنك إنشاء مفتاح CMEK يدويًا واستخدامه عند إنشاء المورد.
لإنشاء مجموعة بيانات BigQuery، يجب أن يكون لديك دور "مستخدم BigQuery" أولاً.
- الرجوع إلى Cloud Shell
- ضبط Cloud Shell لتنفيذ الأوامر من مشروع المورد
gcloud config set project $RESOURCE_PROJECT
- نفِّذ الأمر التالي لحفظ رقم مشروعك كمتغيّر باسم RESOURCE_PROJECT_NUMBER
export RESOURCE_PROJECT_NUMBER=$(gcloud projects list --filter="$(gcloud config get-value project)" --format="value(PROJECT_NUMBER)")
- منح نفسك دور "مستخدم BigQuery"
gcloud projects add-iam-policy-binding $RESOURCE_PROJECT_NUMBER \
--role=roles/bigquery.user \
--member=user:$KEY_ADMIN_EMAIL
بعد الحصول على دور "مستخدم BigQuery"، يمكنك إنشاء مجموعة بيانات وحمايتها باستخدام Autokey.
- في وحدة تحكّم Google Cloud، انتقِل إلى صفحة BigQuery.
- اتّبِع التعليمات لإنشاء مجموعة بيانات إلى أن تصل إلى "خيارات متقدّمة" > "التشفير".
- ضِمن "التشفير"، اختَر "مفتاح Cloud KMS".
- بالنسبة إلى "نوع المفتاح"، اختَر Cloud KMS مع Autokey، ثم انقر على "طلب مفتاح جديد". تظهر رسالة تشير إلى أنّه تم إنشاء المفتاح بنجاح وأصبح جاهزًا للاستخدام.
- لإنهاء عملية إنشاء مجموعة البيانات، انقر على "إنشاء مجموعة بيانات".
10. استكشاف مفاتيحك
في هذه الخطوة، ستستكشف المفاتيح التي أنشأتها خدمة Cloud KMS Autokey نيابةً عنك من خلال الانتقال إلى صفحة "مستودع المفاتيح". تقدّم صفحة "مستودع المفاتيح" معلومات شاملة عن مفاتيح التشفير في مشروعك. يُرجى العِلم أنّ البيانات قد يتأخّر ظهورها. على سبيل المثال، إذا أنشأت مرجعًا محميًا جديدًا، لن تتم إضافة المرجع المحمي وإصدار المفتاح المرتبط به على الفور إلى علامة التبويب "تتبُّع الاستخدام". يمكنك الاطّلاع على المزيد من القيود هنا.
- في Google Cloud Console، انتقِل إلى صفحة "مستودع المفاتيح".
- اختياري: لفلترة قائمة المفاتيح، أدخِل عبارات البحث في مربّع فلتر filter_list، ثم اضغط على Enter. على سبيل المثال، يمكنك الفلترة حسب الموقع الجغرافي أو سلسلة المفاتيح أو الحالة أو خصائص أخرى للمفاتيح.
- انقر على اسم المفتاح الذي تريد عرض معلومات الاستخدام الخاصة به.
- انقر على "نظرة عامة". لاحظ أنّ لديك مفتاحًا لكل مورد تم إنشاؤه. يتضمّن كل اسم مفتاح اسم المورد الذي يحميه المفتاح (مثل "compute-disk" أو "storage-bucket"). تضمن ميزة "المفتاح التلقائي" في Cloud KMS أنّه سيتم تحديد موعد لتغيير كل مفتاح بعد 365 يومًا من إنشائه، كما يتم تحديد مستوى الحماية "وحدة أمان الأجهزة" لكل مفتاح.

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

11. تهانينا
تهانينا، لقد أنشأت بنجاح موارد Google Cloud وشفّرتها تلقائيًا عند الطلب باستخدام ميزة Autokey في Cloud KMS.
أصبحت الآن على دراية بالخطوات الأساسية المطلوبة لإعداد Autokey واستخدامها لتشفير مواردك تلقائيًا باستخدام مفاتيح Cloud KMS.
12. ما هي الخطوات التالية؟
تحميل البيانات إلى المراجع المشفّرة باستخدام Autokey
- إنشاء آلة افتراضية على Google Compute Engine (GCE)
- ربط القرص الدائم المحمي باستخدام Autokey بمثيل GCE
- تحميل البيانات إلى مجموعة بيانات BigQuery
- تحميل عناصر إلى حزمة Google Cloud Storage
- تحميل بيانات Google Cloud Storage إلى BigQuery