المقدمة
- تنشئ حساب خدمة في Google Cloud مع أذونات GCS المناسبة
- تُنشئ مفاتيح HMAC لحساب الخدمة هذا
- تزوّد ClickHouse Cloud ببيانات اعتماد HMAC هذه
- يستخدم ClickHouse Cloud بيانات الاعتماد هذه للوصول إلى حاويات تخزين GCS الخاصة بك
المتطلبات الأساسية
- خدمة ClickHouse Cloud نشطة
- مشروع Google Cloud مع تفعيل Cloud Storage
- أذونات لإنشاء حسابات خدمة وإنشاء مفاتيح HMAC في مشروع GCP الخاص بك
الإعداد
1
إنشاء حساب خدمة في Google Cloud
- في Google Cloud Console، انتقل إلى IAM & Admin → Service Accounts
- انقر على
Service accountsفي القائمة الجانبية اليسرى، ثم انقر علىCreate service account:
Create and continueامنح حساب الخدمة دور Storage Object User:يوفّر هذا الدور إذن القراءة والكتابة لكائنات GCSانقر على Continue، ثم Doneدوّن عنوان البريد الإلكتروني الخاص بحساب الخدمة:2
منح حساب الخدمة إذن الوصول إلى حاوية التخزين
يمكنك منح الإذن إمّا على مستوى المشروع أو على مستوى حاوية تخزين فردية.الخيار 1: منح الإذن إلى حاويات تخزين محددة (موصى به)
- انتقل إلى
Cloud Storage→Buckets - انقر على حاوية التخزين التي تريد منح الإذن لها
- انتقل إلى علامة التبويب
Permissions - ضمن “Permissions”، انقر على
Grant accessللهوية التي أُنشئت في الخطوات السابقة - في حقل “New principals”، أدخل البريد الإلكتروني لحساب الخدمة
- حدِّد الدور المناسب:
- Storage Object User للوصول للقراءة والكتابة
- Storage Object Viewer للوصول للقراءة فقط
- انقر على
Save - كرر ذلك لأي حاويات تخزين إضافية
الخيار 2: منح الإذن على مستوى المشروع
- انتقل إلى
IAM & Admin→IAM - انقر على
Grant access - أدخل البريد الإلكتروني لحساب الخدمة في حقل
New principals - حدِّد Storage Object User (أو Storage Object Viewer لوصول القراءة فقط)
- انقر على SAVE
3
أنشئ مفاتيح HMAC لحساب الخدمة
انتقل إلىCloud Storage → Settings → Interoperability:إذا لم يظهر قسم “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:- حدِّد
CredentialsضمنAuthentication methodأثناء إعداد ClickPipe - أدخِل بيانات اعتماد HMAC التي حصلت عليها في الخطوات السابقة
لا تتوفر حاليًا مصادقة حساب الخدمة — يجب استخدام مفاتيح HMAC
يجب أن يكون عنوان URL لحاوية GCS بالتنسيق التالي:
https://storage.googleapis.com/<bucket>/<path> (وليس gs://)roles/storage.objectViewer، والذي يتضمن:storage.objects.list: لسرد الكائنات في الحاويةstorage.objects.get: لجلب الكائنات/قراءتها
أفضل الممارسات
استخدم حسابات خدمة منفصلة لبيئات مختلفة
clickhouse-gcs-dev@project.iam.gserviceaccount.comclickhouse-gcs-staging@project.iam.gserviceaccount.comclickhouse-gcs-prod@project.iam.gserviceaccount.com
طبّق مبدأ أقل الامتيازات
- استخدم Storage Object Viewer للوصول بنمط القراءة فقط
- امنح حق الوصول إلى حاويات تخزين محددة بدلًا من منحه على مستوى المشروع بأكمله
- فكّر في استخدام شروط على مستوى حاوية التخزين لتقييد الوصول إلى مسارات محددة
دوِّر مفاتيح HMAC بانتظام
- أنشئ مفاتيح HMAC جديدة
- حدِّث إعدادات ClickHouse بالمفاتيح الجديدة
- تحقَّق من عملها باستخدام المفاتيح الجديدة
- احذف مفاتيح HMAC القديمة
راقب الوصول باستخدام Cloud Audit Logs
- انتقل إلى IAM & Admin → Audit Logs
- ابحث عن Cloud Storage في القائمة
- فعِّل
Admin ReadوData ReadوData Write logs - استخدم هذه السجلات لمراقبة أنماط الوصول واكتشاف الحالات غير المعتادة