الانتقال إلى المحتوى الرئيسي
يمكنك الانضمام إلى قائمة انتظار المعاينة الخاصة من هنا.
توضح هذه المقالة أذونات IAM في GCP التي يتطلبها ClickPipes للمصادقة مع Google Cloud Pub/Sub واستهلاك البيانات من موضوعاتك، كما تشرح كيفية إعداد حساب خدمة يمنح هذه الأذونات تحديدًا.

المتطلبات المسبقة

لمتابعة هذا الدليل، ستحتاج إلى:
  • خدمة ClickHouse Cloud نشطة
  • مشروع على GCP يحتوي على موضوع في Pub/Sub تريد إدخال البيانات منه
  • أذونات IAM في ذلك المشروع لإنشاء حسابات خدمة ومنح الأدوار

نموذج المصادقة

تُجري ClickPipes for Pub/Sub المصادقة مع GCP باستخدام مفتاح JSON لحساب خدمة. عند إنشاء pipe، ترفع ملف المفتاح؛ وتقوم ClickPipes بتشفيره أثناء السكون وتستخدمه وقت التشغيل من أجل:
  • سرد الموضوعات في مشروعك وقراءتها،
  • إنشاء الاشتراك المُدار الذي تستخدمه ClickPipes لاستهلاك الرسائل وحذفه،
  • استهلاك الرسائل من ذلك الاشتراك، و
  • (اختياريًا) قراءة مخططات Pub/Sub الأصلية من سجل المخططات.
لا يتوفر خيار Workload Identity أو لصق بيانات الاعتماد بشكل Inline — مفتاح JSON لحساب خدمة هو طريقة المصادقة الوحيدة المدعومة حاليًا.

الأذونات المطلوبة

يتطلب ClickPipes أذونات IAM التالية على مشروع GCP الذي يملك الموضوع. وهي تغطي دورة حياة الـ pipe بالكامل: الاكتشاف (إدراج الموضوع والتحقق منه وأخذ العينات)، وإدارة الاشتراك، وإدخال البيانات في حالة التشغيل المستقرة، والتنظيف.

الوصول إلى الموضوعات (الاكتشاف والتحقق)

دورة حياة الاشتراك (الاكتشاف والإدخال)

الوصول إلى المخطط (اختياري — فقط لموضوعات Avro/Protobuf الأصلية)

الأدوار المعرفة مسبقًا

الإعداد

أنشئ دورًا مخصصًا (موصى به)

لتطبيق مبدأ الحد الأدنى من الامتيازات، أنشئ دورًا مخصصًا يضم فقط الأذونات التي يحتاجها ClickPipes. يمكنك القيام بذلك باستخدام واجهة CLI ‏gcloud:
أو من خلال Console في GCP، انتقل إلى IAM & Admin → Roles → إنشاء دور وأضف الأذونات الواردة في الأذونات المطلوبة.
أذونات اختياريةأضِف pubsub.schemas.get إلى قائمة --permissions إذا كنت تُدخِل البيانات من موضوعات تستخدم مخططات Avro أو Protobuf الأصلية في Pub/Sub. وإلا، فاتركه خارج القائمة للإبقاء على الدور بأقل قدر ممكن من الأذونات.
إذا كنت تفضّل تجاوز الدور المخصّص، فيمكنك بدلاً من ذلك منح roles/pubsub.editor.

أنشئ حساب خدمة

أنشئ حساب خدمة مخصصًا لـ ClickPipe:

امنح الدور لحساب الخدمة

اربط الدور الذي أنشأته (أو roles/pubsub.editor) بحساب الخدمة على مستوى المشروع:

أنشئ ونزّل مفتاحًا لحساب الخدمة

أنشئ مفتاح JSON لحساب الخدمة ونزّله إلى جهازك المحلي:
ستحمّل ملف clickpipes-pubsub-key.json هذا في واجهة ClickPipes عند إنشاء pipe.
تعامل مع المفتاح كأنه سرتمنح مفاتيح حساب الخدمة حق الوصول إلى مشروعك على GCP. خزّن الملف بأمان، ولا تُضمّنه في نظام التحكم في الإصدارات، واستبدله دوريًا. يشفّر ClickPipes المفتاح في السكون بعد رفعه.

ملاحظات

  • يتطلب pubsub.topics.attachSubscription على مورد الموضوع، وليس على الاشتراك. وغالبًا ما يتم إغفال ذلك عند منح أذونات على مستوى الاشتراك فقط.
  • إذا كان الموضوع لديك لا يستخدم مخطط Pub/Sub أصليًا (Avro أو Protobuf)، فلن تحتاج إلى الإذن pubsub.schemas.get.
  • تُسمّى الاشتراكات المُدارة clickpipes-{pipeID}، مع ack deadline قدره 60 ثانية، والاحتفاظ بالرسائل لمدة 7 أيام، وتمكين ترتيب الرسائل.
  • تُسمّى اشتراكات الاكتشاف المؤقتة clickpipes-discovery-{uuid}، مع ack deadline قدره 10 ثوانٍ، والاحتفاظ لمدة 10 دقائق، وTTL لانتهاء الصلاحية تلقائيًا بعد 24 ساعة.
  • يتعامل ClickPipes مع الخطأين PermissionDenied وUnauthenticated على أنهما غير قابلين لإعادة المحاولة — فإذا كان هناك إذن مفقود، يفشل pipe فورًا بدلًا من الاستمرار في إعادة المحاولة إلى ما لا نهاية.
آخر تعديل في ٢ يوليو ٢٠٢٦