الانتقال إلى المحتوى الرئيسي
يوضح هذا الدليل كيفية إجراء مصادقة آمنة مع Google Cloud Storage ‏(GCS) والوصول إلى بياناتك عبر ClickHouse Cloud.

المقدمة

يتصل ClickHouse Cloud بخدمة GCS باستخدام مفاتيح HMAC ‏(Hash-based Message Authentication Code) المرتبطة بحساب خدمة في Google Cloud. يوفّر هذا النهج وصولًا آمنًا إلى حاويات تخزين GCS الخاصة بك من دون تضمين بيانات الاعتماد مباشرةً في استعلاماتك. كيف يعمل ذلك:
  1. تنشئ حساب خدمة في Google Cloud مع أذونات GCS المناسبة
  2. تُنشئ مفاتيح HMAC لحساب الخدمة هذا
  3. تزوّد ClickHouse Cloud ببيانات اعتماد HMAC هذه
  4. يستخدم ClickHouse Cloud بيانات الاعتماد هذه للوصول إلى حاويات تخزين GCS الخاصة بك
يتيح لك هذا النهج إدارة جميع عمليات الوصول إلى حاويات تخزين GCS عبر سياسات IAM على حساب الخدمة، مما يسهّل منح حق الوصول أو سحبه من دون تعديل سياسات كل حاوية تخزين على حدة.

المتطلبات الأساسية

لمتابعة هذا الدليل، ستحتاج إلى:
  • خدمة ClickHouse Cloud نشطة
  • مشروع Google Cloud مع تفعيل Cloud Storage
  • أذونات لإنشاء حسابات خدمة وإنشاء مفاتيح HMAC في مشروع GCP الخاص بك

الإعداد

1

إنشاء حساب خدمة في Google Cloud

  1. في Google Cloud Console، انتقل إلى IAM & Admin → Service Accounts
  1. انقر على Service accounts في القائمة الجانبية اليسرى، ثم انقر على Create service account:
أدخل اسمًا ووصفًا لحساب الخدمة، على سبيل المثال:
انقر على Create and continueامنح حساب الخدمة دور Storage Object User:يوفّر هذا الدور إذن القراءة والكتابة لكائنات GCS
للوصول للقراءة فقط، استخدم Storage Object Viewer بدلًا من ذلك ولمزيد من التحكم التفصيلي، يمكنك إنشاء دور مخصّص
انقر على Continue، ثم Doneدوّن عنوان البريد الإلكتروني الخاص بحساب الخدمة:
2

منح حساب الخدمة إذن الوصول إلى حاوية التخزين

يمكنك منح الإذن إمّا على مستوى المشروع أو على مستوى حاوية تخزين فردية.

الخيار 1: منح الإذن إلى حاويات تخزين محددة (موصى به)

  1. انتقل إلى Cloud StorageBuckets
  2. انقر على حاوية التخزين التي تريد منح الإذن لها
  3. انتقل إلى علامة التبويب Permissions
  4. ضمن “Permissions”، انقر على Grant access للهوية التي أُنشئت في الخطوات السابقة
  5. في حقل “New principals”، أدخل البريد الإلكتروني لحساب الخدمة
  6. حدِّد الدور المناسب:
  • Storage Object User للوصول للقراءة والكتابة
  • Storage Object Viewer للوصول للقراءة فقط
  1. انقر على Save
  2. كرر ذلك لأي حاويات تخزين إضافية

الخيار 2: منح الإذن على مستوى المشروع

  1. انتقل إلى IAM & AdminIAM
  2. انقر على Grant access
  3. أدخل البريد الإلكتروني لحساب الخدمة في حقل New principals
  4. حدِّد Storage Object User (أو Storage Object Viewer لوصول القراءة فقط)
  5. انقر على SAVE
أفضل ممارسات الأمانامنح الإذن فقط لحاويات التخزين المحددة التي يحتاج ClickHouse إلى الوصول إليها، بدلًا من منح أذونات على مستوى المشروع بالكامل.
3

أنشئ مفاتيح HMAC لحساب الخدمة

انتقل إلى Cloud StorageSettingsInteroperability:إذا لم يظهر قسم “Access keys”، فانقر على Enable interoperability accessضمن “Access keys for service accounts”، انقر على Create a key for a service account:حدّد حساب الخدمة الذي أنشأته سابقًا (على سبيل المثال clickhouse-gcs-access@your-project.iam.gserviceaccount.com)انقر على Create key:سيُعرَض مفتاح HMAC. احفظ كلاً من Access Key وSecret فورًا - فلن تتمكن من عرض الـ secret مرة أخرى.تظهر مفاتيح مثال أدناه:
مهمخزّن بيانات الاعتماد هذه في مكان آمن. لا يمكن استرداد السر بعد إغلاق هذه الشاشة. ستحتاج إلى إنشاء مفاتيح جديدة إذا فقدت السر.

استخدام HMAC keys مع ClickHouse Cloud

يمكنك الآن استخدام بيانات اعتماد HMAC للوصول إلى GCS من ClickHouse Cloud. ولهذا، استخدم table function الخاصة بـ GCS:
استخدم أحرف البدل مع ملفات متعددة:

مصادقة HMAC في ClickPipes for GCS

تستخدم ClickPipes مفاتيح HMAC ‏(Hash-based Message Authentication Code) للمصادقة مع Google Cloud Storage.عند إعداد ClickPipe لـ GCS:
  1. حدِّد Credentials ضمن Authentication method أثناء إعداد ClickPipe
  2. أدخِل بيانات اعتماد HMAC التي حصلت عليها في الخطوات السابقة
لا تتوفر حاليًا مصادقة حساب الخدمة — يجب استخدام مفاتيح HMAC يجب أن يكون عنوان URL لحاوية GCS بالتنسيق التالي: https://storage.googleapis.com/<bucket>/<path> (وليس gs://)
يجب أن تكون مفاتيح HMAC مرتبطة بحساب خدمة لديه الدور roles/storage.objectViewer، والذي يتضمن:
  • storage.objects.list: لسرد الكائنات في الحاوية
  • storage.objects.get: لجلب الكائنات/قراءتها

أفضل الممارسات

استخدم حسابات خدمة منفصلة لبيئات مختلفة

أنشئ حسابات خدمة منفصلة لبيئات التطوير وstaging والإنتاج. على سبيل المثال:
  • clickhouse-gcs-dev@project.iam.gserviceaccount.com
  • clickhouse-gcs-staging@project.iam.gserviceaccount.com
  • clickhouse-gcs-prod@project.iam.gserviceaccount.com
يتيح لك ذلك إلغاء الوصول بسهولة لبيئة محددة من دون التأثير على البيئات الأخرى.

طبّق مبدأ أقل الامتيازات

امنح فقط الحد الأدنى المطلوب من الأذونات:
  • استخدم Storage Object Viewer للوصول بنمط القراءة فقط
  • امنح حق الوصول إلى حاويات تخزين محددة بدلًا من منحه على مستوى المشروع بأكمله
  • فكّر في استخدام شروط على مستوى حاوية التخزين لتقييد الوصول إلى مسارات محددة

دوِّر مفاتيح HMAC بانتظام

نفِّذ جدولًا زمنيًا لتدوير المفاتيح:
  • أنشئ مفاتيح HMAC جديدة
  • حدِّث إعدادات ClickHouse بالمفاتيح الجديدة
  • تحقَّق من عملها باستخدام المفاتيح الجديدة
  • احذف مفاتيح HMAC القديمة
لا تفرض Google Cloud انتهاء صلاحية مفاتيح HMAC، لذا يجب عليك تطبيق سياسة تدوير خاصة بك.

راقب الوصول باستخدام Cloud Audit Logs

فعِّل Cloud Audit Logs وراقبها لـ Cloud Storage:
  1. انتقل إلى IAM & Admin → Audit Logs
  2. ابحث عن Cloud Storage في القائمة
  3. فعِّل Admin Read وData Read وData Write logs
  4. استخدم هذه السجلات لمراقبة أنماط الوصول واكتشاف الحالات غير المعتادة
آخر تعديل في ٢٩ يونيو ٢٠٢٦