1. مقدمة
عناصر التحكّم في خدمة VPC (VPC-SC) هي عناصر تحكّم أمان على مستوى المؤسسة في Google Cloud تتيح لعملاء المؤسسات الحدّ من مخاطر استخراج البيانات. توفّر عناصر التحكّم في خدمة سحابة VPC إمكانية الوصول إلى الخدمات المتعددة المستأجرين بنهج الثقة المعدومة من خلال السماح للعملاء بحصر إمكانية الوصول على عناوين IP المصرّح بها وسياق العميل ومعلمات الأجهزة أثناء الاتصال بالخدمات المتعددة المستأجرين من الإنترنت والخدمات الأخرى من أجل الحدّ من الخسائر المقصودة وغير المقصودة. يمكنك استخدام عناصر التحكّم في خدمة السحابة الافتراضية الخاصة لإنشاء حدود تحمي موارد وخدمات البيانات التي تحدّدها بشكلٍ صريح.
أهداف هذا البرنامج التعليمي هي:
- فهم أساسيات عناصر التحكّم في خدمة سحابة VPC
- إنشاء حيّز خدمة على شبكة VPC
- حماية مشروع باستخدام عناصر التحكّم في خدمة سحابة VPC
- تحديد المشاكل وحلّها في حال حدوث مخالفة في الدخول إلى "عناصر التحكّم في خدمة سحابة VPC"
2. الإعداد والمتطلبات
لإكمال هذا البرنامج التعليمي، يجب استيفاء المتطلبات الأساسية التالية:
- مؤسسة في Google Cloud Platform
- مجلد ضمن المؤسسة
- مشروعان على Google Cloud Platform ضِمن المؤسسة نفسها موضوعان في المجلد
- الأذونات المطلوبة على مستوى المؤسسة
- حساب الفوترة لكلا المشروعَين

إعداد المراجع
- في Google Cloud Console، أنشِئ مجلدًا ضمن المؤسسة ومشروعَين جديدَين (يمكنك إعادة استخدام المشاريع الحالية).
(إذا لم يكن لديك حساب على Google Workspace أو Cloud Identity، عليك الحصول على حساب لأنّك ستحتاج إلى مؤسسة لإكمال هذا البرنامج التعليمي).
- تأكَّد من أنّ لديك الأذونات الصحيحة لهذا البرنامج التعليمي على مستوى المؤسسة.
- أدوار إدارة الهوية وإمكانية الوصول للمجلدات
- الأذونات والأدوار للمشاريع
- الأذونات والأدوار المطلوبة لإعداد عناصر التحكّم في خدمة سحابة VPC
- الأذونات والأدوار المطلوبة لإدارة Compute Engine
- تأكَّد من توفّر كلا المشروعَين ضمن المجلد لأنّنا بحاجة إلى إنشاء سياسة محدودة النطاق على مستوى المجلد. مزيد من المعلومات حول نقل مشروع إلى مجلد

التكلفة
عليك تفعيل الفوترة في Cloud Console لاستخدام موارد/واجهات برمجة تطبيقات Cloud. لن تكلفك تجربة هذا الدرس التطبيقي حول الترميز الكثير، إن وُجدت أي تكلفة على الإطلاق. لإيقاف الموارد وتجنُّب تحمّل تكاليف تتجاوز هذا البرنامج التعليمي، يمكنك حذف الموارد التي أنشأتها أو حذف المشروع. يمكن لمستخدمي Google Cloud الجدد الاستفادة من برنامج "الفترة التجريبية المجانية" بقيمة 300 دولار أمريكي.
المورد الوحيد الذي سيؤدي إلى تكلفة هو "مثيل الجهاز الافتراضي". يمكن العثور على التكلفة المقدّرة في حاسبة الأسعار.
3- إنشاء محيط
في هذا المختبر، سننفّذ الخطوات التالية:
- في Google Console، اختَر مؤسستك و Access VPC Service Controls. يُرجى التأكّد من أنّك على مستوى المؤسسة.

- انقر على "إدارة السياسات" من أجل إنشاء سياسة وصول جديدة ضمن نطاق مجلد "Codelab".

- إنشاء محيط جديد في الوضع المفروض لنسمِّها "SuperProtection" في هذا البرنامج التعليمي.
- عند إنشاء المحيط، اختَر المشروع الذي سيتم فرضه باسم ProjectZ.
- اختَر نوع المحيط الخارجي "عادي".
- في مربّع الحوار تحديد الخدمات التي سيتمّ حظرها، اختَر الخدمة التي سيتمّ حظرها على أنّها "Compute Engine".
من المفترض أن يظهر إعداد المحيط على النحو التالي:

4. التأكّد من تطبيق المحيط
- يمكنك الوصول إلى ProjectX والتحقّق من إمكانية الوصول إلى واجهة برمجة التطبيقات Compute Engine من خلال الانتقال إلى الصفحة الرئيسية "أجهزة VM". من المفترض أن تتمكّن من إجراء ذلك لأنّ مشروعX غير محمي بمحيط VPC SC الذي تم إنشاؤه.
- يمكنك الوصول إلى ProjectZ والتأكّد من إمكانية الوصول إلى Compute Engine. يمكنك ملاحظة أنّ عناصر التحكّم في خدمة سحابة VPC قد حظرت الطلب لأنّ SuperProtection تحمي ProjectZ وCompute Engine API.

5- تحديد المشاكل في الرفض وحلّها
علينا أولاً تحديد المشكلة بالضبط لنعرف كيفية حلّها.
- تتضمّن سجلّات "عناصر التحكّم في خدمة سحابة VPC" تفاصيل حول الطلبات المقدَّمة إلى الموارد المحمية وسبب رفض "عناصر التحكّم في خدمة سحابة VPC" للطلب. لنفترض أنّنا نريد العثور على المعرّف الفريد لعناصر التحكّم في خدمة VPC في سجلّات تدقيق ProjectZ باستخدام طلب البحث التالي في "مستكشف السجلات":
resource.type="audited_resource" protoPayload.metadata."@type"="type.googleapis.com/google.cloud.audit.VpcServiceControlAuditMetadata"
سيؤدي ذلك إلى عرض جميع سجلّات التدقيق الخاصة بعناصر التحكّم في خدمة VPC. سنبحث عن سجلّ الأخطاء الأخير.
- انقر في عنوان عناصر التحكّم في خدمة سحابة VPC، ثم اختَر "حلّ مشكلة الرفض" (Troubleshoot denial) الذي سيفتح أداة حلّ المشاكل في عناصر التحكّم في خدمة سحابة VPC.
ستعرض لنا واجهة برمجة التطبيقات هذه في واجهة مستخدم سهلة الاستخدام سبب الانتهاك، وما إذا كان هذا الانتهاك مرتبطًا بالدخول أو الخروج، بالإضافة إلى معلومات مفيدة أخرى.
في هذا التمرين، سنبحث عن ما يلي:
"principalEmail": "user@domain"
"callerIp": "PUBLIC_IP_ADDRESS"
"serviceName": "compute.googleapis.com"
"servicePerimeterName":
"accessPolicies/[POLICY_NUMBER]/servicePerimeters/SuperProtection
"ingressViolations": [
{
"targetResource": "projects/[PROJECT_NUMBER]",
"servicePerimeter": "accessPolicies/[POLICY_NUMBER]/servicePerimeters/SuperProtection"
}
],
"violationReason": "NO_MATCHING_ACCESS_LEVEL",
"resourceNames": "[PROJECT_ID]"
لدينا خياران لحلّ مشكلة الرفض هذه في ProjectZ.
- إنشاء مستوى وصول للسماح بالوصول إلى المشروع داخل المحيط من خلال منح إذن الوصول إلى عنوان IP الخاص بنظامي
- إنشاء قاعدة دخول للسماح بوصول عميل واجهة برمجة التطبيقات من خارج حدود الخدمة إلى الموارد داخل حدود الخدمة
في هذا البرنامج التعليمي، سنحدّد المشاكل ونحلّها من خلال إنشاء مستوى وصول.
- انتقِل إلى Access Context Manager على مستوى المجلد (Codelab)، وأنشئ مستوى وصول جديدًا.
- استخدِم "الوضع الأساسي" وسنسمح بالوصول عند استيفاء متطلبات الشبكة الفرعية لعنوان IP والموقع الجغرافي.

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

6. نتائج الاختبار
تأكَّد من أنّ لدينا إذن الوصول إلى Compute Engine وإمكانية إنشاء مثيل جهاز افتراضي. بعد أن أنشأنا مستوى الوصول، لنحاول الوصول إلى Compute Engine في ProjectZ وإنشاء آلة افتراضية.
- انتقِل إلى Compute Engine وانقر على إنشاء مثيل.

- اترك كل الإعدادات على الوضع التلقائي وحاوِل إنشاء مثيل جهاز افتراضي منخفض التكلفة.
بعد دقيقة تقريبًا، من المفترض أن يظهر مثيل الجهاز الافتراضي الذي تم إنشاؤه، ويمكنك التأكّد من أنّ لديك إذن وصول كاملاً إلى Compute Engine المحمي داخل المحيط.

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

- لحذف المحيط، أكمِل الخطوات التالية:
- في Google Cloud Console، انقر على الأمان، ثمّ على VPC Service Controls في نطاق المؤسسة.
- في صفحة "عناصر التحكّم في خدمة VPC" (VPC Service Controls)، في صف الجدول الذي يتوافق مع المحيط الذي تريد حذفه، انقر على "رمز الحذف".
- لحذف مستوى الوصول، أكمِل الخطوات التالية:
- في Google Cloud Console، افتح صفحة Access Context Manager على مستوى المجلد.
- في الجدول، في صف مستوى الوصول الذي تريد حذفه، انقر على "رمز الحذف"، ثم انقر على حذف.
- لإيقاف "المشاريع"، أكمِل الخطوات التالية:
- في Google Cloud Console، انتقِل إلى صفحة إعدادات "إدارة الهوية وإمكانية الوصول" للمشروع الذي تريد حذفه.
- في صفحة "إعدادات إدارة الهوية وإمكانية الوصول والمشرف"، انقر على إيقاف.
- أدخِل رقم تعريف المشروع، ثم انقر على إيقاف التشغيل على أي حال.
8. تهانينا!
في هذا الدرس التطبيقي حول الترميز، أنشأت حيّزًا لعناصر التحكّم في خدمة VPC، وفرضته، وحللت المشاكل فيه.
مزيد من المعلومات
- اطّلِع على مستندات "عناصر التحكّم في خدمة سحابة VPC".
- يُرجى الاطّلاع على مستندات Access Context Manager.
- راجِع مستندات أداة حلّ المشاكل في VPC-SC.
الترخيص
يخضع هذا العمل لترخيص المشاع الإبداعي مع نسب العمل إلى مؤلفه 2.0 Generic License.