أساسيات Google Cloud Platform
أساسيات Google Cloud Platform
تم تصميم Google Cloud Platform حول تسلسل هرمي للموارد يختلف اختلافًا جوهريًا عن AWS وAzure. قبل أن تلمس أي آلة افتراضية أو حاوية تخزين، تحتاج إلى استيعاب مفاهيم المؤسسات (Organizations)، والمجلدات (Folders)، والمشاريع (Projects)، وإدارة الهوية والوصول (IAM) — لأن الخطأ في هذه المرحلة يسبب فوضى في الصلاحيات وإخفاقات في المراجعة ومفاجآت في الفواتير يصعب التراجع عنها على نطاق واسع. يمنحك هذا الدرس النموذج الذهني الذي يستخدمه مهندسو Google SRE والعملاء المؤسسيون منذ اليوم الأول.
التسلسل الهرمي للموارد في GCP
كل مورد في GCP ينتمي إلى مشروع (Project) واحد بالضبط. المشاريع هي الوحدة الأساسية للملكية: فهي تحمل حساب الفوترة الخاص بها، وتفعيل واجهات API، وسياسات IAM. فوق المشاريع توجد المجلدات (Folders) (اختيارية، لكنها ضرورية على النطاق المؤسسي)، والتي تجمع المشاريع في وحدات أعمال أو بيئات. في الجذر توجد المؤسسة (Organization) — المرتبطة بنطاق Google Workspace أو Cloud Identity، وهي مطلوبة لأي نشر جاد في الإنتاج.
التسلسل الهرمي ليس مجرد تنظيم — إنه الآلية التي يعمل بها توارث سياسات IAM. الدور الممنوح على مجلد ينتقل تلقائيًا إلى كل مشروع بداخله. والدور الممنوح على المؤسسة ينتقل إلى كل شيء تحته. هذا التوارث من الأعلى إلى الأسفل هو الآلية الأساسية التي تستخدمها الشركات على نطاق Google لتطبيق مبدأ الحد الأدنى من الصلاحيات دون إدارة مئات السياسات الفردية.
api-prod-8a3f) لا يمكن تغييره أبدًا وهو فريد عبر كل GCP. اسم المشروع مقروء بشريًا ويمكن تغييره. احرص دائمًا على اشتقاق معرّف المشروع من نمط مثل {الفريق}-{البيئة}-{رمز-قصير} — ولا تعتمد على الأسماء المُوَلَّدة تلقائيًا في البنية التحتية كرمز (IaC).
إعداد التسلسل الهرمي باستخدام gcloud
عمليًا، يتم توفير المؤسسات والمجلدات عبر Google Cloud Console أو Terraform — فهي تتطلب التحقق من النطاق وتفعيل واجهة resourcemanager.googleapis.com API. أما المشاريع فهي وحدة التشغيل اليومية وتُنشأ بشكل متكرر. أداة gcloud هي الأداة الرسمية.
google_billing_project_info مباشرةً بعد google_project.
IAM في GCP: كيف يختلف عن AWS وAzure
يستخدم GCP IAM ثلاثة مفاهيم: الأعضاء (Members)، والأدوار (Roles)، والروابط (Bindings). يُرفق الرابط دورًا بعضو على مورد محدد. يمكن أن يكون الأعضاء حسابات Google، أو حسابات خدمة، أو مجموعات Google، أو نطاقات Cloud Identity، أو الرئيسيين الخاصين allUsers / allAuthenticatedUsers.
أهم ما يميّز GCP عن AWS: لا توجد في GCP سياسات مضمّنة (inline policies). هناك فقط أدوار محددة مسبقًا (تديرها Google)، وأدوار أساسية (Owner/Editor/Viewer — لا تستخدمها في الإنتاج أبدًا)، وأدوار مخصصة (دقيقة، على مستوى المؤسسة أو المشروع). كل فحص للصلاحيات تراكمي: سياسات الرفض موجودة لكنها ميزة متقدمة؛ والإعداد الافتراضي هو السماح بغياب الرفض، بمعنى أن المبدأ الذي لا يملك أي رابط لا يملك أي وصول.
IAM عمليًا: حسابات الخدمة وWorkload Identity
في GCP، تتحقق التطبيقات من هويتها كـحسابات خدمة (Service Accounts) — هويات خاصة تمثل حمل العمل وليس إنسانًا. على عكس أدوار AWS IAM (التي يُفترض بها عبر STS)، فإن حسابات خدمة GCP هي موارد: لها عنوان بريد إلكتروني خاص بها (name@project-id.iam.gserviceaccount.com) ويمكن منحها أدوارًا تمامًا مثل أي مستخدم.
قيود السياسة على مستوى المؤسسة
إلى جانب IAM، يوفر GCP قيود سياسة المؤسسة (Organization Policy constraints) — ضمانات تُفرض على مستوى المؤسسة أو المجلد وتتجاوز الإعدادات على مستوى المشروع. تشمل القيود الشائعة في الإنتاج: تعطيل عناوين IP العامة على الآلات الافتراضية (compute.vmExternalIpAccess)، وتقييد المناطق التي يمكن إنشاء الموارد فيها (gcp.resourceLocations)، وطلب تسجيل الدخول عبر OS Login (compute.requireOsLogin). يُفرض ذلك حتى لو حاول مالك المشروع تجاوزه — وهو أمر حيوي للامتثال والتحكم في التكاليف على نطاق واسع.
أنماط الإخفاق في بيئات الإنتاج
أكثر أخطاء GCP IAM شيوعًا في الإنتاج: منح roles/editor لحساب خدمة بدلًا من الأدوار المحددة مسبقًا ذات النطاق الضيق؛ وإنشاء جميع الموارد في مشروع واحد بدلًا من فصل البيئات؛ وغياب ربط حسابات الفوترة الذي يسبب إخفاقات صامتة في واجهات API؛ والاعتماد على ملفات مفاتيح حسابات الخدمة التي تُجدَّد يدويًا أو لا تُجدَّد أبدًا. التسلسل الهرمي المصمم جيدًا في GCP مع Workload Identity، وأدوار محددة مسبقًا بأقل صلاحيات، وقيود سياسة المؤسسة، يلغي غالبية هذه الحوادث قبل أن تصل إلى الإنتاج.