1. مقدمة
يوضّح لك هذا الدرس التطبيقي حول الترميز كيفية إعداد بيئة Google Cloud لإعداد وكيل وبوابة وكيل باستخدام حدود عناصر التحكّم في خدمة سحابة VPC. يمكنك إنشاء حيّز VPC Service Controls، وإعداد الشبكات ونظام أسماء النطاقات، ونشر Agent Gateway مع تفويض طلب Identity-Aware Proxy (IAP)، واختبار الوكيل بشكل آمن.
ما ستنشئه
في هذا الدرس التطبيقي حول الترميز، ستنشئ بنية آمنة على Google Cloud لكل من Gemini Enterprise Agent Platform وAgent Gateway، وتنفّذ ما يلي:
- يستخدم عناصر التحكّم في خدمة سحابة VPC للمساعدة في تأمين موارد المشروع من استخراج البيانات غير المصرَّح به.
- تضبط هذه السمة الوصول الخاص إلى Google وPrivate Service Connect (PSC) ومناطق Cloud DNS الخاصة لتوجيه طلبات البيانات من واجهات برمجة التطبيقات الخاصة.
- توفّر بوابة وكيل مع توجيه مركزي لحركة البيانات، وقواعد خروج، وإعدادات البروتوكول.
- تفرض هذه السياسة سياسات منح الأذونات لطلبات Identity-Aware Proxy (IAP).
- ينشر وكيل Agent Engine ويختبره بأمان من خلال اتصال خاص.
ما ستتعلمه
- كيفية تفعيل واجهات برمجة التطبيقات المطلوبة من Google Cloud لمنصة Agent Platform والأمان
- كيفية ضبط حيّز "عناصر التحكّم في خدمة سحابة VPC" وقواعد الوصول إلى الدخول
- كيفية إعداد اتصال الشبكة الخاصة وسجلّات نظام أسماء النطاقات الخاص
- كيفية إنشاء "بوابة وكيل" ونماذج ربط الوكلاء
- كيفية ضبط إضافات وسياسات تفويض طلبات الشراء داخل التطبيق
- كيفية نشر وكيل Agent Engine واختباره بشكل آمن
المتطلبات
- تم تثبيت Google Cloud CLI وتحديثه إلى أحدث إصدار.
- يجب أن يكون لديك الإصدار 3 من Python مثبَّتًا على محطة العمل.
- يجب أن يكون Git مثبَّتًا على محطة العمل.
- يجب أن يكون لديك حساب مؤسسة نشط على Google Cloud وأذونات حساب فوترة.
2. المتطلبات الأساسية
يوضّح هذا القسم المتطلبات الأساسية لأداة سطر الأوامر وإعدادات البيئة اللازمة قبل تشغيل نصوص الإعداد.
- تأكَّد من تثبيت Google Cloud CLI وتحديثه إلى أحدث إصدار، ثمّ أثبِت ملكية حسابك على Google. حدِّث مكوّنات Google Cloud CLI للتأكّد من توفّر أحدث ميزات "خدمات الشبكة" و"عناصر التحكّم في خدمة سحابة VPC".
gcloud components update
gcloud auth login
gcloud config set account USER_EMAIL
- تأكَّد من تثبيت Python 3 لإعداد إطار عمل الوكيل المخصّص ونشره. للحصول على التعليمات، يُرجى الاطّلاع على تثبيت وحدات Python:
python3 --version
- تأكَّد من تثبيت Git لاستنساخ مستودع العيّنات الذي يحتوي على رمز الإعداد ونماذج الإعدادات. للحصول على التعليمات، يُرجى الاطّلاع على مقالة تثبيت Git.
3- إعداد مشروع على Google Cloud
يضمن إنشاء مشروع معزول داخل مؤسستك بقاء جميع الموارد والشبكات والأذونات المستخدَمة في هذا الدرس التطبيقي العملي محصورة وقابلة للإدارة. مزيد من المعلومات عن إنشاء المشاريع وإدارتها
ابدأ مشروعًا جديدًا على Google Cloud ضمن مؤسستك لاستضافة الموارد اللازمة لعملية الإعداد هذه. يمكنك أيضًا استخدام مشروعك الخاص باتّباع الخطوات التالية:
export PROJ_ID="YOUR_PROJECT_ID"
gcloud projects create ${PROJ_ID} --organization=YOUR_ORG_ID
gcloud config set project $PROJ_ID
gcloud auth application-default set-quota-project $PROJ_ID
احصل على بيانات الاعتماد التلقائية للتطبيق من خلال تسجيل الدخول:
gcloud auth application-default login
تأكَّد من الإعدادات:
gcloud config list
تفعيل الفوترة
اربط حساب فوترة نشطًا بالمشروع الذي تم إنشاؤه حديثًا لتفعيل استخدام الخدمة.
يُعدّ تفعيل الفوترة شرطًا أساسيًا لاستهلاك حصة واجهة برمجة التطبيقات وتوفير بنية Google Cloud الأساسية، مثل بوابات الوكيل والشبكات الخاصة الافتراضية وعُقد الحوسبة. للحصول على تفاصيل حول إعدادات الفوترة، يُرجى الرجوع إلى مستندات الفوترة في Google Cloud.
gcloud billing accounts list
# Copy the billing account to assign to your GCP project
gcloud billing projects link $PROJ_ID --billing-account=BILLING_ACCOUNT_ID
4. تمكين الخدمات
فعِّل جميع واجهات برمجة التطبيقات المطلوبة من Google Cloud لميزات "الوكيل" و"بوابة الوكيل" والشبكات والأمان والمراقبة.
يؤدي تفعيل واجهة برمجة التطبيقات إلى عرض خدمات السحابة الإلكترونية الخلفية لإدارة الموارد وإمكانية تتبّع البيانات وإمكانات إنشاء الشبكات اللازمة لتوفير إمكانية الاتصال الآمن بين الوكلاء. يمكنك الاطّلاع على مزيد من المعلومات في مستندات Service Usage API.
gcloud services enable \
agentregistry.googleapis.com \
aiplatform.googleapis.com \
apphub.googleapis.com \
apptopology.googleapis.com \
cloudapiregistry.googleapis.com \
cloudtrace.googleapis.com \
compute.googleapis.com \
dataform.googleapis.com \
iam.googleapis.com \
iap.googleapis.com \
logging.googleapis.com \
modelarmor.googleapis.com \
monitoring.googleapis.com \
networksecurity.googleapis.com \
networkservices.googleapis.com \
notebooks.googleapis.com \
observability.googleapis.com \
securitycenter.googleapis.com
gcloud services enable \
saasservicemgmt.googleapis.com \
storage.googleapis.com \
telemetry.googleapis.com \
texttospeech.googleapis.com \
run.googleapis.com \
artifactregistry.googleapis.com \
cloudbuild.googleapis.com \
dns.googleapis.com \
accesscontextmanager.googleapis.com \
discoveryengine.googleapis.com \
agentidentity.googleapis.com \
agentidentitycredentials.googleapis.com
5- تصدير متغيرات البيئة
حدِّد متغيّرات بيئة قابلة لإعادة الاستخدام للمنطقة ورقم تعريف المشروع ورقم المشروع ورقم تعريف المؤسسة وهوية المستخدم. يؤدي ضبط متغيرات shell إلى توحيد أوامر إعداد الموارد في جميع الخطوات، ما يقلّل من أخطاء الاستبدال اليدوي أثناء تنفيذ البرنامج النصي.
export REGION="us-central1"
export PROJ_ID=$(gcloud config list --format="value(core.project)")
export PROJ_NO=$(gcloud projects describe ${PROJ_ID} --format="value(projectNumber)")
export ORG_ID=$(gcloud projects get-ancestors ${PROJ_ID} --format="value(id)" | tail -n 1)
export USER_IDENTITY=$(gcloud config get-value account)
6. إنشاء حيّز عناصر التحكّم في خدمة سحابة VPC
أنشئ محيطًا لعناصر التحكّم في خدمة سحابة VPC لعزل موارد مشروعك والمساعدة في منع استخراج البيانات. لمزيد من المعلومات، يُرجى الاطّلاع على نظرة عامة على عناصر التحكّم في خدمة سحابة VPC.
استرجاع سياسة الوصول
استرداد معرّف سياسة Access Context Manager المرتبط بمؤسستك تحدّد سياسات Access Context Manager الحدود التنظيمية التي يتم ربط حدود عناصر التحكّم في خدمة VPC بها وتطبيقها.
gcloud access-context-manager policies list --organization=$ORG_ID
تصدير سياسة الوصول
اضبط سياسة الوصول في إعدادات gcloud CLI واجمع قائمة بالخدمات المحظورة المتوافقة. يسمح لك جمع كل الخدمات المتوافقة بإنشاء مجموعة قواعد محيطية مقيّدة تمنع الوصول غير المصرّح به إلى نقاط نهاية Google Cloud API.
export ACCESS_POLICY=ACCESS_POLICY_ID
gcloud config set access_context_manager/policy $ACCESS_POLICY
SUPPORTED_SERVICES=$(gcloud access-context-manager supported-services list --format="value(name)" | paste -sd, -)
إنشاء محيط
حدِّد اسم حدود الخدمة وفرض القيود على جميع خدمات Google Cloud المتوافقة ضِمن المشروع. يعمل المحيط كحدود تحيط بموارد المشروع، ما يقيّد حركة البيانات الواردة والصادرة المباشرة ما لم تسمح بها صراحةً قواعد الدخول والخروج.
export PERIMETER_NAME="perimeter_${PROJ_NO}"
gcloud access-context-manager perimeters create accessPolicies/${ACCESS_POLICY}/servicePerimeters/${PERIMETER_NAME} \
--title="${PERIMETER_NAME}" \
--perimeter-type=regular \
--resources=projects/${PROJ_NO} \
--restricted-services=${SUPPORTED_SERVICES}
إنشاء سياسة دخول
تحدّد سياسات الدخول شروطًا صريحة، مثل هويات مستخدمين محدّدة أو مستويات وصول، يتم بموجبها السماح بوصول الزيارات التي تنشأ خارج حدود الشبكة إلى الموارد المحظورة داخلها.
أنشئ ملف YAML يسمح بالوصول الصريح إلى هوية المستخدم في جميع الخدمات:
cat > ingress-policy.yaml << EOF
- ingressFrom:
identities:
- user:${USER_IDENTITY}
sources:
- accessLevel: '*'
ingressTo:
operations:
- serviceName: '*'
resources:
- '*'
EOF
gcloud access-context-manager perimeters update $PERIMETER_NAME --set-ingress-policies="ingress-policy.yaml"
يضبط هذا الدرس التطبيقي حول الترميز بيئتك لتجنُّب رفض الوصول إلى عناصر التحكّم في خدمة سحابة VPC تلقائيًا. ومع ذلك، لمساعدتك في تحديد المشاكل وحلّها أثناء الاختبار، توفّر "عناصر التحكّم في خدمة سحابة VPC" سجلّات تفصيلية لعمليات الرفض وأدوات ذكية للسياسات.
تحديد المشاكل المتعلّقة برفض الوصول من خلال عناصر التحكّم في خدمة سحابة VPC وحلّها
أثناء الاختبار، يُرجى الرجوع إلى نصائح تحديد المشاكل وحلّها التالية:
- فعِّل "لوحة بيانات الانتهاكات" لتتبُّع أحدث الانتهاكات في بيئتك.
- تتبُّع سجلّات Cloud Audit Logs الخاصة برفض الوصول إلى عناصر التحكّم في خدمة سحابة VPC (403)
- تشخيص الانتهاكات باستخدام المعرّف الفريد أو الرمز المميّز للانتهاك في أداة تحليل الانتهاكات
- شاهِد فيديو تحديد المشاكل المتعلّقة بعناصر التحكّم في خدمة VPC وحلّها للحصول على شرح تفصيلي.
7. إعداد الاتصال بالشبكات
اضبط إعدادات شبكة VPC لإتاحة الاتصال الخاص بواجهات Google APIs وخدماتها. يضمن الإعداد السليم للشبكة بقاء حركة بيانات الشبكة بين الوكلاء والبوابات وواجهات برمجة التطبيقات في Google Cloud على الشبكات الداخلية الخاصة. للاطّلاع على أنماط الشبكات التفصيلية، يُرجى الرجوع إلى مستندات شبكة VPC على Google Cloud.
تفعيل Private Google Access
فعِّل Private Google Access على الشبكة الفرعية التلقائية لكي تتمكّن مثيلات الأجهزة الافتراضية وأحمال العمل الداخلية من الوصول إلى Google APIs باستخدام عناوين IP الداخلية بدلاً من عناوين IP العامة.
export NETWORK_NAME="default"
export SUBNET_NAME="default"
gcloud compute networks subnets update $SUBNET_NAME --region=$REGION --enable-private-ip-google-access
إنشاء مرفق شبكة PSC
أنشئ مرفق شبكة Private Service Connect (PSC) لإتاحة الاتصال ببوابة الوكيل. توفّر عمليات ربط الشبكة واجهات Private Service Connect (PSC)، ما يسهّل الاتصال الآمن بين شبكات VPC المختلفة بين خدمة "بوابة الوكيل" وشبكتك الفرعية الداخلية.
gcloud compute network-attachments create psc-agw-${REGION} \
--region=${REGION} \
--subnets=${SUBNET_NAME} \
--connection-preference=ACCEPT_AUTOMATIC
التحقّق
استرداد وفحص معرّف الموارد المنتظم (URI) للرابط الذاتي الخاص بمرفق الشبكة الذي تم إنشاؤه حديثًا يضمن التحقّق من صحة معرّف الموارد المنتظم (URI) إنشاء مرفق الشبكة بنجاح وإمكانية الرجوع إليه في نماذج الاتصال.
export PSC_NA_URI=$(gcloud compute network-attachments describe psc-agw-${REGION} \
--region=${REGION} \
--format="value(selfLink.scope(v1))")
echo ${PSC_NA_URI}
إنشاء منطقة خاصة في Cloud DNS
إعداد منطقة خاصة في Cloud DNS لتوجيه حركة بيانات googleapis.com من خلال نطاقات عناوين IP الخاصة تتجاوز مناطق نظام أسماء النطاقات الخاص عمليات البحث عن النطاقات العامة في googleapis.com، ما يؤدي إلى توجيه جميع الزيارات الصادرة إلى عناوين IP افتراضية (VIP) داخلية خاصة ضمن شبكة السحابة الافتراضية الخاصة (VPC). يُرجى الرجوع إلى المناطق الخاصة في Cloud DNS لمزيد من التفاصيل.
export ZONE_NAME="gapis"
gcloud dns managed-zones create ${ZONE_NAME} \
--visibility=private \
--networks=https://www.googleapis.com/compute/v1/projects/${PROJ_ID}/global/networks/${NETWORK_NAME} \
--description="Privately reach Google APIs" \
--dns-name=googleapis.com
gcloud dns record-sets transaction start --zone=${ZONE_NAME}
اختَر أحد خيارات النطاق التالية للتوجيه الخاص (نفِّذ الأوامر الواردة في الخيار 1 أو الخيار 2 فقط قبل تنفيذ المعاملة) - يمكنك الاطّلاع على مزيد من المعلومات في خيارات إعداد Private Google Access:
الخيار 1: شبكة VIP خاصة [يُنصح بها]
gcloud dns record-sets transaction add --name="*.googleapis.com." \
--type=CNAME private.googleapis.com. \
--zone=${ZONE_NAME} \
--ttl=300
gcloud dns record-sets transaction add --name=private.googleapis.com. \
--type=A 199.36.153.8 199.36.153.9 199.36.153.10 199.36.153.11 \
--zone=${ZONE_NAME} \
--ttl=300
الخيار 2: الوصول إلى المحتوى المخصّص لكبار الشخصيات فقط
gcloud dns record-sets transaction add --name="*.googleapis.com." \
--type=CNAME restricted.googleapis.com. \
--zone=${ZONE_NAME} \
--ttl=300
gcloud dns record-sets transaction add --name=restricted.googleapis.com. \
--type=A 199.36.153.4 199.36.153.5 199.36.153.6 199.36.153.7 \
--zone=${ZONE_NAME} \
--ttl=300
إتمام معاملات نظام أسماء النطاقات:
gcloud dns record-sets transaction execute --zone=${ZONE_NAME}
8. إنشاء Agent Gateway
توفير Agent Gateway وتحديد نماذج الاتصال وقواعد التوجيه تعمل Agent Gateway كخادم وكيل مركزي لإدارة زيارات الوكيل وسياسات الخروج والتعامل مع البروتوكولات واكتشاف الخدمات الآمنة. للحصول على مراجع حول البنية، يُرجى الرجوع إلى نظرة عامة حول Agent Gateway.

export AGW_NAME="gateway-${USER_IDENTITY}"
export AGW_CONNECTIVITY_TEMPLATE="agw-connectivity-template-${USER_IDENTITY}"
إنشاء نموذج اتصال وكيل
تحدّد نماذج الاتصال إعدادات الشبكة وسياسات توجيه الخروج وإعدادات تبادل المعلومات بين شبكات نظام أسماء النطاقات ومعرّفات الموارد المنتظمة (URI) الخاصة بمرفقات الشبكة التي تحتاجها البوابة للتعامل مع الطلبات الصادرة.
cat > ${AGW_CONNECTIVITY_TEMPLATE}.yaml << EOF
name: projects/${PROJ_NO}/locations/${REGION}/agentConnectivityTemplates/${AGW_CONNECTIVITY_TEMPLATE}
accessPath: AGENT_TO_ANYWHERE
deploymentModel: CENTRALIZED
egressNetworkConfig:
networkAttachment: ${PSC_NA_URI}
dnsPeeringConfig:
domain: googleapis.com.
targetNetwork: projects/${PROJ_ID}/global/networks/${NETWORK_NAME}
vpcEgress: ALL_TRAFFIC
EOF
gcloud network-services agent-connectivity-templates import ${AGW_CONNECTIVITY_TEMPLATE} \
--source="${AGW_CONNECTIVITY_TEMPLATE}.yaml" \
--location=${REGION}
إنشاء Agent Gateway
cat > ${AGW_NAME}-config.yaml << EOF
name: ${AGW_NAME}
protocols:
- MCP
googleManaged:
governedAccessPath: AGENT_TO_ANYWHERE
agentConnectivityTemplate: projects/${PROJ_NO}/locations/${REGION}/agentConnectivityTemplates/${AGW_CONNECTIVITY_TEMPLATE}
registries:
- //agentregistry.googleapis.com/projects/${PROJ_NO}/locations/global
EOF
gcloud network-services agent-gateways import ${AGW_NAME} \
--source="${AGW_NAME}-config.yaml" \
--location=${REGION}
تأكيد عملية الإنشاء
تأكَّد من أنّه تم نشر مورد Agent Gateway وإعداده بنجاح. يؤكّد وصف بوابة الوكيل التي تم نشرها أنّ حالتها التشغيلية نشطة، ويتحقّق من أنّ نماذج الاتصال والسجلات المرتبطة بها مرفقة بشكل صحيح.
gcloud network-services agent-gateways describe ${AGW_NAME} \
--location=${REGION}
9. إنشاء تفويض من خلال ميزة "الشراء داخل التطبيق"
اضبط سياسات تفويض الطلبات وإضافات الخدمة في Identity-Aware Proxy (IAP) للتحقّق من بيانات اعتماد الطلبات قبل منح إذن الوصول إلى Agent Gateway. لمزيد من المعلومات، يُرجى الاطّلاع على مستندات الشراء داخل التطبيق.

export AUTHZ_EXT="iap-authz-extension-${USER_IDENTITY}"
export AUTHZ_POLICY="iap-authz-policy-${USER_IDENTITY}"
إنشاء إضافة AuthZ
cat > ${AUTHZ_EXT}.yaml << EOF
name: ${AUTHZ_EXT}
service: iap.googleapis.com
failOpen: false
timeout: 1s
metadata:
iapPolicyVersion: "V2"
EOF
gcloud service-extensions authz-extensions import ${AUTHZ_EXT} \
--source=${AUTHZ_EXT}.yaml \
--location=${REGION}
إنشاء سياسة AuthZ وربطها ببوابة الوكيل
cat > ${AUTHZ_POLICY}.yaml << EOF
name: ${AUTHZ_POLICY}
target:
resources:
- "projects/${PROJ_ID}/locations/${REGION}/agentGateways/${AGW_NAME}"
policyProfile: REQUEST_AUTHZ
action: CUSTOM
customProvider:
authzExtension:
resources:
- "projects/${PROJ_ID}/locations/${REGION}/authzExtensions/${AUTHZ_EXT}"
EOF
gcloud network-security authz-policies import ${AUTHZ_POLICY} \
--source=${AUTHZ_POLICY}.yaml \
--location=${REGION}
يضمن لك هذا الدرس التطبيقي حول الترميز عدم رفض الوصول إلى عمليات الشراء داخل التطبيق تلقائيًا. ومع ذلك، للمساعدة في الاختبار، توفّر "بوابة الوكيل" إمكانية مراقبة مفصّلة لعمليات رفض الوصول.
تحديد مشاكل رفض تفويض عمليات الشراء داخل التطبيق وتتبُّعها
- فعِّل "تحليلات السجلّات" في حزمة التسجيل التلقائية:
gcloud logging buckets update _Default --location=global --enable-analytics --async
- افتح لوحة بيانات إمكانية المراقبة لبوابة الوكيل:
- في Google Cloud Console، انتقِل إلى صفحة Agent Gateway.
- انقر على اسم البوابة (على سبيل المثال، gateway-xyz).
- انقر على علامة التبويب إمكانية المراقبة.
- راجِع لوحات بيانات "تعذُّر الحصول على إذن" و"عمليات الرفض 403".
10. إنشاء وكيل "محرك الوكيل"
إنشاء حزمة مرحلية
أنشئ حزمة Cloud Storage في منطقتك المستهدَفة لتخزين عناصر التحضير المؤقت والتبعيات وإعدادات النشر أثناء عملية الإعداد في وقت التشغيل.
#Staging bucket name needs to be globally unique
export STAGING_BUCKET="agent-temp-bucket-${PROJ_NO}-${USER_IDENTITY}"
gcloud storage buckets create gs://${STAGING_BUCKET} --location=${REGION}
تفعيل البيئة الافتراضية لـ Python
python3 -m venv .venv
source .venv/bin/activate
تنزيل رمز الوكيل
git clone https://github.com/gpratikab/gcp-vpcsc-agent.git
cd gcp-vpcsc-agent
تثبيت الحِزم التابعة
python3 -m pip install --upgrade -r requirements.txt
منح أدوار "إدارة الهوية وإمكانية الوصول" (IAM) لوكيل خدمة Agent Platform
gcloud projects add-iam-policy-binding ${PROJ_ID} \
--member="serviceAccount:service-${PROJ_NO}@gcp-sa-aiplatform.iam.gserviceaccount.com" \
--role="roles/agentgateway.serviceAgent"
gcloud projects add-iam-policy-binding ${PROJ_ID} \
--member="serviceAccount:service-${PROJ_NO}@gcp-sa-aiplatform.iam.gserviceaccount.com" \
--role="roles/ml.serviceAgent"
gcloud projects add-iam-policy-binding ${PROJ_ID} \
--member="serviceAccount:service-${PROJ_NO}@gcp-sa-aiplatform.iam.gserviceaccount.com" \
--role="roles/networkservices.viewer"
نشر الوكيل
python3 deploy_gcp_agent.py create
صدِّر هوية الوكيل المطبوعة في ناتج الأمر السابق كمتغيّر بيئة:
#Paste identity of your Agent, it will be printed as the output of the previous command
export AGENT_IDENTITY="principal://PRINCIPAL_ID"
echo $AGENT_IDENTITY
11. السماح بخروج الوكيل عبر البوابة
اسمح للوكيل الذي تم إنشاؤه حديثًا بإرسال حركة خروج إلى googleapis.com.
ملاحظة: يمكنك إدراج نقاط نهاية بشكل انتقائي في القائمة المسموح بها باستخدام ميزة مراقبة Agent Gateway. لتبسيط الأمر، يتيح هذا الدرس التطبيقي حول الترميز الوصول إلى جميع واجهات برمجة التطبيقات.
يؤدي ضبط قواعد سياسة الخروج الصريحة في خدمة "إدارة الهوية وإمكانية الوصول" إلى منح الوكيل الإذن بتوجيه طلبات البيانات من واجهة برمجة التطبيقات من خلال "بوابة الوكيل" وخادم وكيل IAP للوصول إلى خدمات Google Cloud الخارجية.
إنشاء سياسة "إدارة الهوية وإمكانية الوصول"
cat > agent-access-rules.json << EOF
{
"conditions": {
"iap.googleapis.com": {
"description": "Allow access to agent",
"expression": "(destination.agent_registry.location == 'global') || (destination.unregistered.host.endsWith('googleapis.com'))",
"title": "agenttogapis"
}
},
"description": "agenttogapis",
"effect": "ALLOW",
"excludedPrincipals": [],
"operation": {
"excludedPermissions": [],
"permissions": [
"iap.googleapis.com/resources.egressViaIAP"
]
},
"principals": [
"${AGENT_IDENTITY}"
]
}
EOF
تعديل سياسة الوصول
تحقَّق مما إذا كانت لديك سياسة وصول حالية:
gcloud iam access-policies list --project=${PROJ_ID} --location=global
ضبط اسم سياسة الوصول:
export IAM_ACCESS_POLICY="agent-access-policy"
لإنشاء سياسة جديدة:
gcloud iam access-policies create ${IAM_ACCESS_POLICY} \
--details-rules=agent-access-rules.json \
--project=${PROJ_ID} \
--location=global
أو يمكنك تعديل سياسة حالية باتّباع الخطوات التالية:
gcloud iam access-policies update ${IAM_ACCESS_POLICY} \
--add-details-rules=agent-access-rules.json \
--project=${PROJ_ID} \
--location=global
12. اختبار الوكيل
يؤدي التحقّق من صحة عملية الوكيل في "وحدة تحكّم Google Cloud" إلى التأكّد من أنّ الاتصال الشامل وسياسات إدارة الهوية وإمكانية الوصول (IAM) وحدود "عناصر التحكّم في الخدمة المستندة إلى شبكة VPC" تعمل بشكل صحيح. أنت الآن جاهز لاختبار الوكيل:
- في Google Cloud Console، انتقِل إلى صفحة عمليات نشر الوكيل.
- اختَر الوكيل الذي تم نشره (
gcp_agent_...). - افتح علامة التبويب ساحة التدريب.
- في حقل الطلب، أدخِل:
List storage buckets in the current project. - تأكَّد من أنّ الوكيل يعرض قائمة الحِزم بنجاح من خلال "بوابة الوكيل" الخاصة.
- تأكَّد من أنّ الوكيل لا يمكنه استرداد الحِزم من مشروع آخر بسبب رفض الوصول. يمكنك فحص الرفض في Cloud Audit Logs أو لوحة بيانات مخالفات عناصر التحكّم في خدمة VPC.
13. تَنظيم
لتجنُّب تحمّل رسوم في حسابك على Google Cloud مقابل الموارد المستخدَمة في هذا الدرس التطبيقي حول الترميز، احذف المشروع الذي أنشأته:
gcloud projects delete ${PROJ_ID}
14. تهانينا
تهانينا! لقد أعددت بنجاح وكيل وبوابة وكيل ضِمن حيّز آمن لعناصر التحكّم في خدمة سحابة VPC على Google Cloud.
ما هي الخطوات التالية؟
- استكشاف قواعد الدخول والخروج الدقيقة في "عناصر التحكّم في خدمة سحابة VPC"
- ضبط سياسات الوصول والدلالات باستخدام Agent Gateway
- دمج Model Armor لتوفير فلترة متقدّمة للأمان والحماية