دفع الفاتورة نيابة عن حساب Google Cloud: كيفية استخدام حساب GCP IAM للأدوار والخدمات (حساب الخدمة) لتحقيق مبدأ الحد الأدنى من الأذونات
في مجال أمن الحوسبة السحابية ، هناك درس دم ودموع من عدد لا يحصى من المهندسين المعماريين الذين يستخدمون أصول الشركة وحتى جوائز نهاية العام الخاصة بهم:"
في السحابة ، الأمر الأكثر فظاعة من عدم وجود كلمة مرور هو أن الجميع يستخدم كلمة مرور المسؤول.
"
كثير من الأصدقاء الذين اتصلوا للتو بـ Google Cloud (GCP) ، من أجل توفير المتاعب ، أو لأنهم يعتقدون أنه من الصعب جدًا الإبلاغ عن أخطاء في سلطة التحقيق ، غالبًا ما يقومون بتطوير الفريق مباشرة ، وحتى تقديم برنامج نصي معين قيد التشغيل في الخادم.
اوينر
(المالك) أو
Editor
(المحرر) الدور. هذا النهج يشبه إعادة نقش عشرات المفاتيح الرئيسية لبابك وتوزيعها على التنظيف والسعاة والمارة. بمجرد أن يتم تصيد جهاز كمبيوتر مطور ، أو يتم إرسال المفتاح عن طريق الخطأ إلى مستودع GitHub العام في الكود ، يمكن للمتسلل الاستيلاء تمامًا على حساب Google السحابي بالكامل في غضون ثوانٍ قليلة ونهب الأصول الأساسية الخاصة بك لعدة سنوات ، حتى في الخلفية ، تم فتح المئات من الآلات عالية المستوى بشكل محموم للتعدين ، مما يترك لك فاتورة خصم باهظة الثمن.
في العالم الآمن لـ GCP ، السلاح الدفاعي الأساسي الذي يحرس المؤخرة ، يسمى
IAM(Identity and Access Management ، التحكم في الهوية والوصول)
. والروح الأساسية لأمن الشبكة على مستوى المصنع الكبير هي تنفيذها بحزم
"Principle of Least Privilege"
-فقط للأشخاص أو الآلات المناسبة ، في الوقت المناسب ، يتم منح الحد الأدنى من الامتياز الذي يكفي لإكمال العمل.
اليوم نرفض أي تعاليم رسمية ولا نقرأ الأحكام المملة. مباشرة من القتال الفعلي الأكثر تشددًا ، ستأخذك المقبض إلى المنطق الأساسي لـ IAM والشخصيات وحسابات الخدمة ، ولحام مجموعة من خطوط الدفاع الأمنية الحديثة عالية المستوى لأصول السحابة الخاصة بك.
المرحلة الأولى: التفكيك العميق ، "نموذج العالم ثلاثي الأبعاد" لـ GCP IAM
لمطابقة الأذونات في GCP ، يجب أن يكون لديك نموذج التشغيل الفعلي لـ IAM في عقلك. يتكون نظام التحكم في أذونات IAM من Google بشكل أساسي من عناصر من ثلاثة أبعاد مجتمعة وملتزمة باللحام:
من أنت؟ (Members / Principals): أي حامل الهوية. يمكن أن يكون صندوق بريد Google (مثل [email protected]) لموظفي الشركة ، أو مجموعة منطقية ، أو حساب الخدمة (حساب الخدمة) الذي سنركز عليه لاحقًا.
ماذا يمكنك أن تفعل ؟ (Roles): أي مجموعة من الشخصيات. الشخصية عبارة عن مجموعة من "حزم الهدايا الكبيرة" من الأذونات المحددة. على سبيل المثال ، إذا كنت ترغب في رؤية قائمة الخوادم ، فأنت بحاجة إلى أذونات Compute. instances.list ؛ إذا كنت ترغب في إعادة تشغيل الخادم ، فأنت بحاجة إلى أذونات compute.instances.start. قامت Google بتعبئة هذه الأذونات الدقيقة معًا وأصبحت "شخصيات مختلفة"
».
أين تفعل ذلك ؟ (Resources / Hierarchy): هذا هو مستوى الموارد. هذا هو تصميم أنيق كبير من GCP. يمكنك تعليق الأذونات على مستوى "Organization" بالكامل ، أو يمكنك تعليقها على مستوى "مشروع" معين ، أو حتى على "Bucket" محدد.
الأمن الأساسي من الداخل: الأذونات لها خصائص موروثة لأسفل. إذا أعطيت سلطة Owner لموظف معين على المستوى التنظيمي ، فهو الإله الأعلى في جميع المشاريع الفرعية وجميع الخوادم وجميع قواعد بيانات هذه الشركة. لذلك ، يُمنع منعًا باتًا إساءة استخدام الأدوار رفيعة المستوى في المنظمة أو قمة المشروع.
المرحلة الثانية: "ثلاث حفر أذونات" محظورة تمامًا من قبل المصانع الكبيرة
قبل التكوين ، دعونا تساعدك على "إزالة السموم" المعرفية. يتم رفض الممارسات الثلاثة التالية بصوت واحد تمامًا في التدقيق الأمني للمؤسسات العادية:
1-إساءة استخدام الأدوار الأساسية
يشير الدور الأساسي إلى القديم
المالك
(المالك) ،
المحرر
(المحرر) ،
Viewer
(عرض). ينتمي هذا النوع من الشخصيات إلى التحف "الواسعة". يمكن للمحرر إضافة أي شيء تقريبًا في المشروع (من تغيير الرمز إلى حذف قاعدة البيانات).
الحل المعياري: احتضان الشخصيات المحددة مسبقًا. إذا كنت بحاجة إلى إدارة الجهاز الظاهري ، فامنح برنامج Compute Admin فقط ؛ إذا كنت بحاجة فقط إلى النظر إلى السجل ، فامنح برنامج Logging فقط. دع المحترفين يفعلون الأشياء المهنية.
2. الاعتماد الشخصي لاستخدام الآلة (User Credentials)
كتب الكثير من النصوص الآلية المكتوبة بخط اليد لعمل نسخة احتياطية من قاعدة البيانات السحابية محليًا. من أجل تشغيل البرنامج النصي ، قام بتشغيل حسابه الشخصي محليًا مباشرة
Gcloud auth login
.
كارثة: بمجرد أن يغادر الموظف ، تقوم الشركة بإلغاء صندوق بريده ، وسوف ينهار هذا البرنامج النصي الاحتياطي الذي كان يعمل في بيئة الإنتاج لمدة نصف عام على الفور بسبب فشل السلطة.
الحل المعياري: الناس يمشون ، والآلات تسير على جسر الآلات. يجب على جميع البرامج والرموز وأنظمة الطرف الثالث التي تحتاج إلى التفاعل مع GCP استخدام حساب الخدمة.
المرحلة الثالثة: التمرين القتالي الفعلي-فتح سلسلة الأمان بدون مفتاح باستخدام حساب الخدمة
دعونا نحاكي واحدة من سيناريو الإنتاج التجاري الأكثر قياسية: كنت قد كتبت برنامج خلفية Python ، نشرت في GCP
Compute Engine (GCE) آلة افتراضية
في. هذا البرنامج يحتاج إلى الذهاب كل يوم
Cloud Storage (GCS) برميل التخزين
قراءة الصورة الرمزية للمستخدم ، وكتابة سجل التشغيل في
Cloud Logging (يوم
خدمة السجلات)
.
إذا اتبعت الممارسة الأصلية ، فأنت بحاجة إلى الذهاب إلى الخلفية لإنشاء ملف مفتاح JSON (Key) يحتوي على كلمة مرور ، ثم تنزيله وحشته في حزمة رمز الخادم.
لكن مواصفات السلامة للمصنع الكبير تخبرك: في السحابة ، جميع مستندات كلمة المرور الواضحة التي يمكن رؤيتها هي قنابل موقوتة مسربة.
نستخدم حساب الخدمة الأصلي لـ GCP لربط IAM لتحقيق "مفتاح الصفر ، أمان عالٍ" حقيقي على السحابة:
الخطوة 1: إنشاء هوية الجهاز الحصرية (Service Account)
الدخول
وحدة تحكم GCP
، ابحث عن قائمة التنقل في الزاوية اليسرى العلوية
"IAM والإدارة (IAM & Admin)"-> "حسابات الخدمة (حسابات الخدمة)"
.
في الجزء العلوي ، انقر على "إنشاء حساب خدمة".
اسم حساب الخدمة: يسمى gce-web-app-runner. سيقوم تلقائيًا بإنشاء صندوق بريد مخصص للجهاز على شكل [email protected].
انقر على إنشاء والاستمرار.
الخطوة 2: الحد الأدنى من أذونات الحقن الدقيق (ربط IAM)
في نفس صفحة الإنشاء ، سيسألك النظام عن الدور الذي تريد منحه لهوية الجهاز. نحن مصممون على عدم اختيار Editor ، وإجراء قطع الأذونات بدقة:
انقر على القائمة المنسدلة للشخصية ، وابحث عن "Storage Object Viewer" واختر. ملاحظة: يسمح هذا الدور فقط بقراءة الملفات في دلو التخزين ، حتى لو كان المتسلل يتحكم في الخادم ، فلن يرغب في حقن حصان طروادة في دلو التخزين الخاص بك ، أو إفراغ الدلو بأكمله بنقرة واحدة.
انقر على "إضافة أدوار أخرى" ، وابحث عن "كتب السجلات" واختر "كتب السجلات". ملاحظة: فقط إعطاء أذونات لكتابة السجلات ، وليس لعرض سجلات النظام الأخرى.
انقر على إنهاء.
الخطوة 3: الجمع بين الروح-قم بتركيب الهوية إلى الجهاز الظاهري
الهوية والسلطة متطابقيان ، والآن نريد أن نترك الجهاز الظاهري الذي يعمل على الكود "يرتدي هذا الفستان".
تعال إلى صفحة Compute Engine -> VM مثيل ، انقر على خادم الويب الخاص بك ، وانقر على تحرير.
اقلب لأسفل وابحث عن عنصر التكوين "حساب الخدمة".
في القائمة المنسدلة ، اقطع حساب خدمة Default الافتراضي الأصلي وحدد بدقة gce-web-app-runner الذي تم إنشاؤه للتو.
قم بتعديل "نطاق الوصول" أدناه إلى "السماح بالوصول الكامل إلى جميع واجهات برمجة التطبيقات السحابية". القصة الداخلية لتكنولوجيا تجنب المهندسين المعماريين: هذا هو أسهل مكان لعدد لا يحصى من المبتدئين. الاستخدام المبكر لـ GCP
"Scopes" للتحكم في السيارة ، والآن أصبحت هذه الطريقة قديمة. الجيل الجديد من المواصفات هو: قم بإعطاء الضوء الأخضر (الوصول الكامل) هنا ، ونقل بوابة أمان السلطة الحقيقية بالكامل إلى دور IAM في الخطوة الثانية أعلاه لتولي المسؤولية.
انقر على حفظ ، إعادة تشغيل المثيل.
لحظة المعجزة: "سحر بدون مفتاح" داخل الكود
الآن ، يمكنك الوصول إلى هذا الخادم وإلقاء نظرة على رمز Python الخاص بك. لا تحتاج إلى كتابة أي شيء في الكود
AWS_ACCESS_KEY
أو قم بترميز ملف كلمة مرور JSON من Google. تحتاج فقط إلى استدعاء جوجل SDK الرسمية مباشرة:
بايثون
من google.cloud import storage
# حقن الروح: ليست هناك حاجة لنقل أي معلمات رئيسية على الإطلاق ، وسوف تذهب SDK تلقائيًا إلى بطاقة الشبكة المضيفة لاستنشاق هوية حساب الخدمة
Storage_client = storage.Client()
Bucket = storage_client.bucket("My-user-avatars")
Blob = bucket.blob("user_101.jpg")
# قراءة حريري
Data = blob.download_as_bytes()
Print ("تم قراءة البيانات بنجاح دون أسرار! ")
نظرًا لأن الهوية والأذونات تكمل الحلقة المغلقة الطبيعية في الجزء السفلي من شبكة Google ، فلا توجد كلمة مرور واضحة في رمز بيئة الإنتاج الخاص بك. حتى لو قام المتسللون بقلب مستودع Git الخاص بك إلى أسفل ، فلن يريدون سرقة أي جزء من سيادة السحابة.
المرحلة الرابعة: تاريخ الدم والدموع وتعزيز خط الدفاع
بعد تشغيل هذه البنية الخالية من المفاتيح ، تجاوز عامل أمان الأصول السحابية 95 ٪ من فريق ورشة العمل. ولكن بصفتك كبير ضباط الأمن (CISO) ، يجب عليك إصدار أمر إداري على الفور لحام الحفر الخفية التالية التي من المحتمل أن تسبب حوادث أمان كبيرة:
1. يحظر بشدة إنشاء "مفتاح حساب الخدمة (JSON Key)" يدويًا
في صفحة تفاصيل حساب الخدمة ، توجد علامة تبويب تسمى "Keys" ، والتي تسمح لك بالنقر فوق "إنشاء مفتاح جديد" وتنزيل ملف JSON.
الواقع القاسي: من أجل راحة الرسم البياني ، فإن العديد من التطورات كسولة جدًا لمطابقة متغيرات البيئة عند تصحيح الكود محليًا ، وإنشاء مفتاح JSON مباشرةً لقفله في جهاز الكمبيوتر الخاص به. بمجرد فقدان جهاز الكمبيوتر الخاص به ، أو إذا قام بتمرير الملف بشكل خاص في WeChat عندما غادر منصبه ، تم فتح الأسلاك الشائكة الأمنية للشركة مباشرة. وهذا المفتاح الذي تم إنشاؤه يدويًا له فترة صلاحية افتراضية تصل إلى عدة سنوات ، مما يجعل من الصعب للغاية تدقيقه.
مواصفات الدفاع للمصنع الكبير: يُحظر إنشاء مفتاح حساب الخدمة بشكل أساسي من خلال السياسة التنظيمية. * إذا كان التطوير على الكمبيوتر المحلي يحتاج إلى تصحيح الأخطاء
، قم بتوجيههم لاستخدام أمر تطبيق تطبيق gcloud-default للحصول على قسائم ديناميكية قصيرة المفعول محليًا من خلال صندوق بريد Google الخاص بشركتهم الشخصية. إذا كانت مكالمة عبر السحابة (على سبيل المثال ، تريد آلة AWS الاتصال بـ GCP) ، فاستخدم اتحاد Workload Identity Federation (اتحاد هوية عبء العمل) للسماح لـ AWS باستخدام رمز OIDC الخاص بها و GCP بفصل الرموز السرية مباشرة لتحقيق اتصال ثنائي الاتجاه بدون مفتاح مادي.
2. احتضان ضربة خفض الأبعاد لـ "قيود شروط IAM"
بمجرد منح الأذونات التقليدية ، تصبح سارية المفعول على مدار 24 ساعة في اليوم. ولكن إذا عانت شركتك من عطل طارئ عبر الإنترنت ، فأنت بحاجة إلى السماح لخبير الاستعانة بمصادر خارجية بالدخول مؤقتًا بعد ظهر اليوم لإلقاء نظرة على قاعدة بيانات بيئة الإنتاج ، واستعادة السلطة بعد اليوم ، فماذا أفعل ؟
الطريقة الأصلية: اليوم مع الدور ، احذفه بعقلك عندما تكون خارج العمل. في حالة النسيان ، يصبح حساب خبير الاستعانة بمصادر خارجية خطرًا خفيًا دائمًا.
تكوين المواصفات المتقدمة: عند منح الأدوار على صفحة IAM ، انقر فوق "Add Condition". يمكنك كتابة قاعدة دقيقة للغاية: "فقط عندما يكون الوقت بين الساعة 13:00 و 18:00 في الساعة 2026-05-30 ، ويكون عنوان IP المطلوب هو عنوان IP العام لمكتب الشركة ، تسري أذونات المستخدم." طالما أن الساعة تتجاوز الساعة 18 ، فإن دماغ شبكة Google سيجعل تصريح المستخدم تلقائيًا غير صالح على الفور. يذوب التوقيت دون ترك أي أثر للمتاعب.
الخلاصة
في Google Cloud ، يلعب الحد الأدنى من مواصفات إدارة الحقوق ، يكمن الجوهر الأساسي على المستوى الصناعي في الواقع في ستة عشر كلمة:
يذهب الناس إلى الإنسانية ، ويتم تركيب الآلات ، ويتم التخلص من النص العادي ، ويتم كسر الوقت
.
لم يعتمد الأمن السحابي أبدًا على العديد من القواعد واللوائح اللفظية المرهقة لتقييد الطبيعة البشرية ، ولكنه يعتمد على آلية IAM الموزعة التي تغرق بسلاسة في قاع السحابة الأصلية لتشكيل عزل تنازلي مادي. امنح القوة المهيمنة إلى "مبدأ الحد الأدنى من الأذونات" ، بينما تستمتع بإحساس التنمية القصوى الذي يجلبه الاتصال بدون مفتاح ، اجعل إمبراطوريتك التجارية السحابية بأكملها مستقرة مثل جبل تاي على الشبكة العامة.

