استخدام بروتوكول أمان طبقة النقل (TLS) لإجراء توقّعات آمنة على الإنترنت باستخدام Vertex AI

1- مقدمة

يمكنك الاستفادة من Private Service Connect‏ (PSC) لإنشاء وصول خاص وآمن للغاية إلى النماذج التي تم نشرها من مكتبة النماذج (Model Garden) في Vertex AI. بدلاً من عرض نقطة نهاية عامة، تتيح لك هذه الطريقة نشر نموذجك على نقطة نهاية خاصة على Vertex AI لا يمكن الوصول إليها إلا ضِمن سحابة Virtual Private Cloud‏ (VPC) الخاصة بك.

تنشئ خدمة Private Service Connect نقطة نهاية باستخدام عنوان IP داخلي ضِمن سحابة VPC، ما يؤدي إلى الاتصال مباشرةً بخدمة Vertex AI المُدارة من Google والتي تستضيف نموذجك. يتيح ذلك للتطبيقات في سحابة VPC والبيئات المحلية (عبر Cloud VPN أو Interconnect) إرسال طلبات الاستنتاج باستخدام عناوين IP خاصة.

الأهم من ذلك أنّ جميع زيارات الشبكة بين سحابة VPC ونقطة نهاية Vertex AI الخاصة تظل على شبكة Google المخصّصة، ما يعزلها تمامًا عن الإنترنت العام. بالإضافة إلى ذلك، يتم تأمين هذا الاتصال الخاص أثناء النقل باستخدام تشفير طبقة النقل الآمنة (TLS). يضمن هذا التشفير الشامل حماية طلبات التوقّع وردود النموذج، ما يعزّز سرية البيانات وسلامتها. يوفّر الجمع بين عزل الشبكة عبر خدمة PSC وتشفير طبقة النقل الآمنة (TLS) بيئة آمنة بشكل كبير للتوقّعات على الإنترنت، ما يقلّل من وقت الاستجابة ويعزّز بشكل كبير مستوى الأمان.

8bdac2f2d3dd88c9.png

ما ستنشئونه

في هذا البرنامج التعليمي، ستنزّلون Gemma 3 من مكتبة النماذج (Model Garden)، المستضافة في ميزة "الاستنتاج على الإنترنت" في Vertex AI كنقطة نهاية خاصة يمكن الوصول إليها عبر Private Service Connect. سيتضمّن الإعداد الشامل ما يلي:

  1. نموذج مكتبة النماذج (Model Garden): ستختارون Gemma 3 من مكتبة النماذج (Model Garden) في Vertex AI وتنشروه على نقطة نهاية Private Service Connect.
  2. ‫Private Service Connect: ستضبطون نقطة نهاية للمستهلك في سحابة Virtual Private Cloud‏ (VPC) تتألف من عنوان IP داخلي ضِمن شبكتكم.
  3. الاتصال الآمن بـ Vertex AI: ستستهدف نقطة نهاية PSC مرفق الخدمة الذي تم إنشاؤه تلقائيًا من قِبل Vertex AI لنشر النموذج الخاص بكم. يؤدي ذلك إلى إنشاء اتصال خاص، ما يضمن عدم انتقال الزيارات بين سحابة VPC ونقطة نهاية عرض النموذج عبر الإنترنت العام.
  4. إعداد العميل ضِمن سحابة VPC: ستضبطون عميلاً (مثل جهاز افتراضي على Compute Engine) ضِمن سحابة VPC لإرسال طلبات الاستنتاج إلى النموذج الذي تم نشره باستخدام عنوان IP الداخلي لنقطة نهاية PSC.
  5. التحقّق من تشفير طبقة النقل الآمنة (TLS): من الجهاز الافتراضي للعميل ضِمن سحابة VPC، ستستخدمون أدوات عادية ( openssl s_client) للاتصال بعنوان IP الداخلي لنقطة نهاية PSC. ستتيح لكم هذه الخطوة التأكّد من أنّ قناة الاتصال بخدمة Vertex AI مشفّرة بالفعل باستخدام طبقة النقل الآمنة (TLS) من خلال فحص تفاصيل عملية المصافحة وشهادة الخادم المعروضة.

في النهاية، سيكون لديكم مثال عملي لنموذج من مكتبة النماذج (Model Garden) يتم عرضه بشكل خاص، ولا يمكن الوصول إليه إلا من ضِمن شبكة VPC المحدّدة.

أهداف الدورة التعليمية

في هذا الدليل التعليمي، ستتعرّفون على كيفية تفعيل نموذج من مكتبة النماذج (Model Garden) في Vertex AI وإتاحته بشكل آمن من سحابة Virtual Private Cloud‏ (VPC) باستخدام Private Service Connect‏ (PSC). تتيح هذه الطريقة لتطبيقاتكم ضِمن سحابة VPC (المستهلك) الاتصال بشكل خاص بنقطة نهاية نموذج Vertex AI (خدمة المنتِج) بدون الانتقال عبر الإنترنت العام.

ستتعرّفون تحديدًا على ما يلي:

  1. فهم خدمة PSC في Vertex AI: كيفية تفعيل اتصالات خاصة وآمنة بين المستهلك والمنتِج. يمكن لسحابة VPC الوصول إلى نموذج مكتبة النماذج (Model Garden) الذي تم نشره باستخدام عناوين IP الداخلية.
  2. نشر نموذج مع وصول خاص: كيفية ضبط نقطة نهاية Vertex AI لنموذج مكتبة النماذج (Model Garden) لاستخدام خدمة PSC، ما يجعلها نقطة نهاية خاصة.
  3. دور مرفق الخدمة: عند نشر نموذج على نقطة نهاية خاصة على Vertex AI، تنشئ Google Cloud تلقائيًا مرفق خدمة في مشروع مستأجر مُدار من Google. يعرض مرفق الخدمة هذا خدمة عرض النموذج على شبكات المستهلك.
  4. إنشاء نقطة نهاية PSC في سحابة VPC:
  • كيفية الحصول على معرّف URI الفريد لمرفق الخدمة من تفاصيل نقطة نهاية Vertex AI التي تم نشرها.
  • كيفية حجز عنوان IP داخلي ضِمن الشبكة الفرعية التي تختارونها في سحابة VPC.
  • كيفية إنشاء قاعدة إعادة توجيه في سحابة VPC تعمل كنقطة نهاية PSC، وتستهدف مرفق خدمة Vertex AI. تتيح نقطة النهاية هذه الوصول إلى النموذج عبر عنوان IP الداخلي المحجوز.
  1. إنشاء اتصال خاص: كيفية اتصال نقطة نهاية PSC في سحابة VPC بمرفق الخدمة، ما يربط شبكتكم بخدمة Vertex AI بشكل آمن.
  2. إرسال طلبات الاستنتاج بشكل خاص: كيفية إرسال طلبات التوقّع من الموارد (مثل الأجهزة الافتراضية على Compute Engine) ضِمن سحابة VPC إلى عنوان IP الداخلي لنقطة نهاية PSC.
  3. التحقّق: خطوات اختبار والتأكّد من إمكانية إرسال طلبات الاستنتاج بنجاح من سحابة VPC إلى نموذج مكتبة النماذج (Model Garden) الذي تم نشره من خلال الاتصال الخاص.
  4. التحقّق من تشفير طبقة النقل الآمنة (TLS): كيفية استخدام الأدوات من ضِمن عميل سحابة VPC (مثل جهاز افتراضي على Compute Engine) للاتصال عبر طبقة النقل الآمنة (TLS) بعنوان IP الداخلي لنقطة نهاية PSC.

بعد إكمال هذه الخطوات، ستتمكنون من استضافة نماذج من مكتبة النماذج (Model Garden) لا يمكن الوصول إليها إلا من البنية الأساسية لشبكتكم الخاصة.

المتطلبات

مشروع Google Cloud

أذونات إدارة الهوية والوصول (IAM)

2. قبل البدء

تعديل المشروع لدعم البرنامج التعليمي

يستخدم هذا البرنامج التعليمي $variables للمساعدة في تنفيذ إعدادات gcloud في Cloud Shell.

داخل Cloud Shell، يُرجى تنفيذ ما يلي:

gcloud config list project
gcloud config set project [YOUR-PROJECT-ID]
projectid=[YOUR-PROJECT-ID]
echo $projectid

تفعيل واجهات برمجة التطبيقات

داخل Cloud Shell، يُرجى تنفيذ ما يلي:

gcloud services enable "compute.googleapis.com"
gcloud services enable "aiplatform.googleapis.com"
gcloud services enable "serviceusage.googleapis.com"
gcloud services enable dns.googleapis.com

3- نشر النموذج

اتّبِعوا الخطوات التالية لنشر نموذجكم من مكتبة النماذج (Model Garden).

في Google Cloud Console، انتقِلوا إلى مكتبة النماذج (Model Garden) وابحثوا عن Gemma 3 واختاروه.

47c724030a846b25.png

انقروا على "نشر النموذج" (Deploy model) واختاروا Vertex AI.

a9a9f4aef7e52356.png

انقروا على "تعديل الإعدادات" (Edit Settings) في أسفل قسم "إعدادات النشر" (Deployment Settings).

d5b449d2893ddf2f.png

في لوحة "النشر على Vertex AI" (Deploy on Vertex AI)، تأكّدوا من ضبط "إمكانية الوصول إلى نقطة النهاية" (Endpoint Access) على Private Service Connect، ثم اختاروا مشروعكم.

c679aa90c3638e31.png

اتركوا جميع الإعدادات التلقائية للخيارات الأخرى، ثم انقروا على "نشر" (Deploy) في الأسفل واطّلِعوا على الإشعارات لمعرفة حالة النشر.

d5eab71cbb43e2fe.png

في مكتبة النماذج (Model Garden)، اختاروا المنطقة us-central1 التي توفّر نموذج Gemma 3 ونقطة النهاية. يستغرق نشر النموذج 5 دقائق تقريبًا.

fce9d5c9152255f1.png

بعد اكتمال عملية النشر، ستنتقل نقطة النهاية إلى الحالة "نشطة" (Active) في غضون 30 دقيقة.

d6cc741415213e1a.png

احصلوا على رقم تعريف نقطة النهاية وسجّلوه من خلال النقر على نقطة النهاية.

87d1756fa534619d.png

انقروا على نقطة النهاية لاسترداد رقم تعريف نقطة النهاية وتعديل المتغيّر. في المثال الموضّح، رقم التعريف هو 1934769929467199488.

داخل Cloud Shell، يُرجى تنفيذ ما يلي:

endpointID=<Enter_Your_Endpoint_ID>
region=us-central1

نفِّذوا ما يلي للحصول على معرّف URI لمرفق خدمة Private Service Connect. يستخدم المستهلك سلسلة معرّف URI هذه عند نشر نقطة نهاية مستهلك PSC.

داخل Cloud Shell، استخدِموا متغيّر رقم تعريف نقطة النهاية/المنطقة، ثم نفِّذوا الأمر التالي:

gcloud ai endpoints describe $endpointID --region=$region  | grep -i serviceAttachment:

في ما يلي مثال:

user@cloudshell:$ gcloud ai endpoints describe 1934769929467199488 --region=us-central1 | grep -i serviceAttachment:

Using endpoint [https://us-central1-aiplatform.googleapis.com/]
    serviceAttachment: projects/o9457b320a852208e-tp/regions/us-central1/serviceAttachments/gkedpm-52065579567eaf39bfe24f25f7981d

انسخوا المحتوى بعد serviceAttachment في متغيّر باسم "Service_attachment"، وستحتاجون إليه لاحقًا عند إنشاء اتصال PSC.

user@cloudshell:$ Service_attachment=<Enter_Your_ServiceAttachment>

4. إعداد المستهلك

إنشاء سحابة VPC للمستهلك

داخل Cloud Shell، يُرجى تنفيذ ما يلي:

gcloud compute networks create consumer-vpc --project=$projectid --subnet-mode=custom

إنشاء الشبكة الفرعية للجهاز الافتراضي للمستهلك

داخل Cloud Shell، يُرجى تنفيذ ما يلي:

gcloud compute networks subnets create consumer-vm-subnet --project=$projectid --range=192.168.1.0/24 --network=consumer-vpc --region=$region --enable-private-ip-google-access

إنشاء الشبكة الفرعية لنقطة نهاية PSC، داخل Cloud Shell، يُرجى تنفيذ ما يلي**:**

gcloud compute networks subnets create pscendpoint-subnet --project=$projectid --range=10.10.10.0/28 --network=consumer-vpc --region=$region

5. تفعيل خدمة IAP

للسماح لخدمة IAP بالاتصال بأجهزة VM، أنشئوا قاعدة جدار حماية:

  • تنطبق على جميع أجهزة VM التي تريدون أن تكون متاحة باستخدام خدمة IAP.
  • تسمح بزيارات واردة من نطاق عناوين IP‏ 35.235.240.0/20. يحتوي هذا النطاق على جميع عناوين IP التي تستخدمها خدمة IAP لإعادة توجيه بروتوكول TCP.

داخل Cloud Shell، أنشئوا قاعدة جدار حماية IAP.

gcloud compute firewall-rules create ssh-iap-consumer \
    --network consumer-vpc \
    --allow tcp:22 \
    --source-ranges=35.235.240.0/20

6. إنشاء أجهزة VM للمستهلك

داخل Cloud Shell، أنشئوا جهاز VM للمستهلك، consumer-vm.

gcloud compute instances create consumer-vm \
    --project=$projectid \
    --machine-type=e2-micro \
    --image-family debian-11 \
    --no-address \
    --shielded-secure-boot \
    --image-project debian-cloud \
    --zone us-central1-a \
    --subnet=consumer-vm-subnet 

7. نقاط نهاية Private Service Connect

ينشئ المستهلك نقطة نهاية للمستهلك (قاعدة إعادة توجيه) باستخدام عنوان IP داخلي ضِمن سحابة VPC. تستهدف نقطة نهاية PSC هذه مرفق خدمة المنتِج. يمكن للعملاء ضِمن سحابة VPC للمستهلك أو الشبكة المختلطة إرسال زيارات إلى عنوان IP الداخلي هذا للوصول إلى خدمة المنتِج.

احجزوا عنوان IP لنقطة نهاية المستهلك.

داخل Cloud Shell، أنشئوا قاعدة إعادة التوجيه.

gcloud compute addresses create psc-address \
    --project=$projectid \
    --region=$region \
    --subnet=pscendpoint-subnet \
    --addresses=10.10.10.6

تأكّدوا من حجز عنوان IP.

داخل Cloud Shell، اعرضوا عنوان IP المحجوز.

gcloud compute addresses list 

يجب أن يظهر عنوان IP‏ 10.10.10.6 المحجوز.

3029e97ddc9c192d.png

أنشئوا نقطة نهاية المستهلك من خلال تحديد معرّف URI لمرفق الخدمة، target-service-attachment، الذي حصلتم عليه في الخطوة السابقة، قسم "نشر النموذج".

داخل Cloud Shell، صِفوا مرفق الشبكة.

 gcloud compute forwarding-rules create psc-consumer-ep \
    --network=consumer-vpc \
    --address=psc-address \
    --region=$region \
    --target-service-attachment=$Service_attachment \
    --project=$projectid

تأكّدوا من أنّ مرفق الخدمة يقبل نقطة النهاية.

داخل Cloud Shell، يُرجى تنفيذ ما يلي:

gcloud compute forwarding-rules describe psc-consumer-ep \
    --project=$projectid \
    --region=$region

في الردّ، تأكّدوا من ظهور الحالة "تم القبول" (ACCEPTED) في حقل pscConnectionStatus.

e1debc2bdb6a1a44.png

8. إعداد الاتصال بنقطة نهاية HTTPS في Vertex عبر طبقة النقل الآمنة (TLS)

أنشئوا منطقة DNS خاصة حتى تتمكنوا من الحصول على ميزة "الاستنتاج على الإنترنت" بدون الحاجة إلى تحديد عنوان IP.

داخل Cloud Shell، يُرجى تنفيذ ما يلي:

DNS_NAME_SUFFIX="prediction.p.vertexai.goog."  

gcloud dns managed-zones create vertex \
--project=$projectid \
--dns-name=$DNS_NAME_SUFFIX \
--networks=consumer-vpc \
--visibility=private \
--description="A DNS zone for Vertex AI endpoints using Private Service Connect."

أنشئوا سجلّ A لربط النطاق بعنوان IP لخدمة PSC.

داخل Cloud Shell، يُرجى تنفيذ ما يلي:

gcloud dns record-sets create "*.prediction.p.vertexai.goog." \
  --zone=vertex \
  --type=A \
  --ttl=300 \
  --rrdatas="10.10.10.6"

أنشئوا مثيل Cloud Router كشرط أساسي لمثيل NAT.

داخل Cloud Shell، يُرجى تنفيذ ما يلي:

gcloud compute routers create consumer-cr \
--region=$region --network=consumer-vpc \
--asn=65001 

أنشئوا مثيل Cloud NAT المستخدَم لتنزيل حزمتَي openssl وdnsutils.

داخل Cloud Shell، يُرجى تنفيذ ما يلي:

gcloud compute routers nats create consumer-nat-gw \
  --router=consumer-cr \
  --region=$region \
  --nat-all-subnet-ip-ranges \
  --auto-allocate-nat-external-ips 

اتصلوا بالجهاز الافتراضي للمستهلك عبر بروتوكول SSH (وحدة التحكّم). داخل Cloud Shell، يُرجى تنفيذ ما يلي:

gcloud compute ssh --zone "us-central1-a" "consumer-vm" --tunnel-through-iap --project "$projectid"

عدِّلوا الحزم أدناه، وثبِّتوا open-ssl وثبِّتوا أدوات DNS.

داخل Cloud Shell، يُرجى تنفيذ ما يلي:

sudo apt update 
sudo apt install openssl
sudo apt-get install -y dnsutils

ستحتاجون إلى رقم المشروع في الخطوة التالية. للحصول على رقم مشروعكم، نفِّذوا الأمر التالي من Cloud Shell وضعوه في متغيّر:

داخل Cloud Shell، يُرجى تنفيذ ما يلي:

gcloud projects describe $projectid --format="value(projectNumber)"
Example Output: 549538389202
projectNumber=549538389202

ستحتاجون إلى بعض المتغيّرات الأخرى المحدّدة في الخطوات القليلة التالية، حدِّدوا هذه المتغيّرات(ENDPOINT_ID وREGION وVERTEX_AI_PROJECT_ID) من خلال الحصول عليها من Cloud Shell أولاً ثم إنشاء المتغيّرات نفسها في الجهاز الافتراضي.

داخل Cloud Shell، يُرجى تنفيذ ما يلي:

echo $projectNumber
echo $projectid 
echo $region
echo $endpointID

في ما يلي مثال على الناتج:

549538389202
test4-473419
Us-central1
1934769929467199s

في جهاز VM للمستهلك، أضيفوا هذه المتغيّرات، كما هو موضّح في المثال أدناه:

projectNumber=1934769929467199488  
projectid=test4-473419
region=us-central1
endpointID=1934769929467199488

نزِّلوا شهادة Vertex AI من خلال تنفيذ الأمر التالي من دليلكم الرئيسي في جهاز VM. ينشئ هذا الأمر ملفًا باسم vertex_certificate.crt.

sudo openssl s_client -showcerts -connect $endpointID-$region-$projectNumber.prediction.p.vertexai.goog:443 </dev/null | openssl x509 -outform pem -out vertex_certificate.crt

Output should look like below, error is expected.

2f2899141dde1af2.png

انقلوا الشهادة إلى مخزن شهادات الجذر الموثوق بها في النظام.

sudo mv vertex_certificate.crt /usr/local/share/ca-certificates

عدِّلوا مدير الشهادات.

sudo update-ca-certificates

يجب أن يبدو على النحو التالي بعد تعديله.

user@linux-vm:~$ sudo update-ca-certificates

Updating certificates in /etc/ssl/certs...

1 added, 0 removed; done.

Running hooks in /etc/ca-certificates/update.d...

Done.

9- الاختبار النهائي من جهاز VM للمستهلك

على جهاز VM للمستهلك، أعيدوا المصادقة باستخدام بيانات الاعتماد التلقائية للتطبيق وحدِّدوا نطاقات Vertex AI:

gcloud auth application-default login
--scopes=https://www.googleapis.com/auth/cloud-platform 

على جهاز VM للمستهلك، نفِّذوا أمر curl التالي لاختبار التوقّع على نموذج Gemini باستخدام الطلب "ما هو الأثقل: رطل من الريش أم رطل من الصخور؟

curl -v -X POST -H "Authorization: Bearer $(gcloud auth application-default print-access-token)"   -H "Content-Type: application/json" https://$endpointID-$region-$projectNumber.prediction.p.vertexai.goog/v1/projects/$projectid/locations/$region/endpoints/$endpointID/chat/completions   -d '{"model": "google/gemma-3-12b-it", "messages": [{"role": "user","content": "What weighs more 1 pound of feathers or rocks?"}] }'

النتيجة النهائية: نجاح!!!

يجب أن تظهر لكم نتيجة التوقّع من Gemma 3 في أسفل الناتج، ما يشير إلى أنّكم تمكّنتم من الوصول إلى نقطة نهاية واجهة برمجة التطبيقات بشكل خاص من خلال نقطة نهاية PSC.

 Connection #0 to host 10.10.10.6 left intact
{"id":"chatcmpl-9e941821-65b3-44e4-876c-37d81baf62e0","object":"chat.completion","created":1759009221,"model":"google/gemma-3-12b-it","choices":[{"index":0,"message":{"role":"assistant","reasoning_content":null,"content":"This is a classic trick question! They weigh the same. One pound is one pound, regardless of the material. 😊\n\n\n\n","tool_calls":[]},"logprobs":null,"finish_reason":"stop","stop_reason":106}],"usage":{"prompt_tokens":20,"total_tokens":46,"completion_tokens":26,"prompt_tokens_details":null},"prompt_logprobs":null

10. إخلاء مساحة

من Cloud Shell، احذفوا مكوّنات البرنامج التعليمي.

Get Deployed Model ID first with this command, you will need it to delete the Endpoint ID:

gcloud ai endpoints describe $endpointID \
  --region=$region \
  --project=$projectid \
  --format="table[no-heading](deployedModels.id)"

Example Output: 7389140900875599872

Put it in a Variable:

deployedModelID=7389140900875599872

Run following Commands:

gcloud ai endpoints undeploy-model $endpointID --deployed-model-id=$deployedModelID --region=$region --quiet

gcloud ai endpoints delete $endpointID --project=$projectid --region=$region --quiet

Run Following command to get $MODEL_ID to delete Model:

gcloud ai models list --project=$projectid --region=$region

Example Output:

Using endpoint [https://us-central1-aiplatform.googleapis.com/]
MODEL_ID: gemma-3-12b-it-1768409471942
DISPLAY_NAME: gemma-3-12b-it-1768409471942

Put MODEL_ID value in a variable:

MODEL_ID=gemma-3-12b-it-1768409471942

Run the follow command to delete Model:

gcloud ai models delete $MODEL_ID --project=$projectid --region=$region --quiet

Clean up rest of the lab:
gcloud compute instances delete consumer-vm --zone=us-central1-a --quiet

gcloud compute forwarding-rules delete psc-consumer-ep --region=$region --project=$projectid --quiet

gcloud compute addresses delete psc-address --region=$region --project=$projectid --quiet

gcloud compute networks subnets delete pscendpoint-subnet consumer-vm-subnet --region=$region --quiet

gcloud compute firewall-rules delete ssh-iap-consumer --project=$projectid

gcloud compute routers delete consumer-cr --region=$region

gcloud compute networks delete consumer-vpc --project=$projectid --quiet

11. تهانينا

تهانينا، لقد نجحتم في ضبط والتحقّق من الوصول الخاص إلى واجهة برمجة التطبيقات Gemma 3 المستضافة على ميزة "التوقّع" في Vertex AI باستخدام نقطة نهاية Private Service Connect باستخدام شهادة موقَّعة ذاتيًا تم الحصول عليها من Vertex AI وتفعيلها في مخزن شهادات الجذر الموثوق بها للأجهزة الافتراضية.

لقد أنشأتم البنية الأساسية للمستهلك، بما في ذلك حجز عنوان IP داخلي، وضبط نقطة نهاية Private Service Connect (قاعدة إعادة توجيه) ضِمن سحابة VPC ونظام أسماء نطاقات خاص لمطابقة الشهادة الموقَّعة ذاتيًا *prediction.p.vertexai.goog. تتصل نقطة النهاية هذه بشكل آمن بخدمة Vertex AI من خلال استهداف مرفق الخدمة المرتبط بنموذج Gemma 3 الذي تم نشره.

يضمن هذا الإعداد إمكانية تفاعل تطبيقاتكم ضِمن سحابة VPC أو الشبكات المتصلة مع واجهة برمجة التطبيقات Gemma 3 بشكل خاص باستخدام عنوان IP داخلي باستخدام الشهادات، وتبقى جميع الزيارات ضِمن شبكة Google، ولا تنتقل أبدًا عبر الإنترنت العام.

ما هي الخطوات التالية؟

مزيد من القراءة والفيديوهات

المستندات المرجعية