إدارة مفاتيح واجهة برمجة التطبيقات وأمانها

1- مقدمة

في السابق، كان يتم استخدام مفاتيح Google API للوصول إلى Google APIs عندما لا تتوفّر طرق أخرى أو عندما تكون غير ملائمة. وكانت حالات الاستخدام الشائعة هي الوصول إلى Google Maps API وGoogle APIs التي يعرضها Firebase. مع طرح نماذج الذكاء الاصطناعي، ووكلاء الذكاء الاصطناعي مثل Gemini، وأُطر تطوير الذكاء الاصطناعي مثل AI Studio وAgent Development Kit، أصبحت مفاتيح واجهة برمجة التطبيقات طريقة أساسية للوصول إلى نماذج اللغة الكبيرة من Google.

توفّر مفاتيح واجهة برمجة التطبيقات مستوى منخفضًا من الحماية. على الرغم من أنّ Google Cloud توفّر عدة طرق لمنع إساءة استخدام المفاتيح، فإنّ امتلاك مفتاح واجهة برمجة تطبيقات نشط يتيح الوصول إلى Google APIs بدون أي عمليات تحقّق إضافية من المصادقة أو التفويض. تم وصف طرق تقييد استخدام مفاتيح واجهة برمجة التطبيقات في المستندات. تقدّم مشاركة تأمين مفاتيح Gemini وGoogle API في مدونة Cloud اقتراحات إضافية بشأن صيانة مفاتيح واجهة برمجة التطبيقات. في هذا الدرس التطبيقي حول الترميز، ستطبّق هذه الاقتراحات.

الإجراءات التي ستنفذّها

  • مراجعة القيود المفروضة عند إنشاء مفاتيح واجهة برمجة تطبيقات جديدة على Google Cloud
  • تصنيف جميع مفاتيح واجهة برمجة التطبيقات والعثور على المفاتيح التي لا تتضمّن حماية أمان
  • فرض قيود على مفاتيح واجهة برمجة التطبيقات الحالية استنادًا إلى استخدامها
  • تحديد عملية تشغيل آلي تحذف المفتاح في حال الاستخدام غير الطبيعي

المتطلبات

  • متصفّح ويب حديث (مثل Chrome)
  • حساب Google

2. الإعداد

تفترض التعليمات الواردة في هذا الدرس التطبيقي حول الترميز أنّك تنفّذ الأوامر في Cloud Shell في Google Cloud Console. إذا كان لديك gcloud CLI في بيئتك المحلية، يمكنك تنفيذ الأوامر هناك.

على الرغم من إمكانية تنفيذ العمليات في الخطوات باستخدام واجهة مستخدم Cloud Console، فإنّ الطرق مختلفة. يستخدم هذا الدرس التطبيقي حول الترميز واجهة سطر الأوامر لتبسيط التفاعلات وتسهيل التكامل مع وكلاء الذكاء الاصطناعي الحديثين (مثل Antigravity CLI).

بدء محطة Cloud Shell

  1. افتح Google Cloud Console باستخدام https://console.cloud.google.com/ في نافذة متصفّح جديدة. ننصحك باستخدام Chrome للحصول على أفضل تجربة مستخدم.
  2. سجِّل الدخول إلى حساب Google في Google Cloud.
  3. انقر على تفعيل Cloud Shell رمز تفعيل Cloud Shell في أعلى Google Cloud Console.
    إذا ظهرت لك النوافذ التالية، انقر عليها:
    • انقر على "متابعة" في نافذة معلومات Cloud Shell.
    • امنح Cloud Shell إذن استخدام بيانات الاعتماد لطلب بيانات من Google Cloud APIs.

اختيار مشروع على السحابة الإلكترونية من Google Cloud

بعد فتح Cloud Console، يتم التحقّق من هويتك، وعادةً ما يكون هناك خيار لاختيار مشروع لعملك. رقم تعريف المشروع هو سلسلة تتراوح بين 6 و30 حرفًا من الأحرف الصغيرة والأرقام والواصلات، مثلاً qwiklabs-gcp-04-3075fc9fd77f. تضبط محطة Cloud Shell أداة gcloud CLI باستخدام المشروع الذي تم اختياره. سيظهر لك ناتج مشابه لما يلي:

Your Cloud Platform project in this session is set to qwiklabs-gcp-04-3075fc9fd77f

يعني ذلك أنّ الأوامر الإضافية التي ستنفّذها على gcloud ستستخدم رقم تعريف المشروع qwiklabs-gcp-04-3075fc9fd77f.

اضبط رقم تعريف المشروع كمتغيّر بيئة PROJECT_ID. يمكنك الاطّلاع على قائمة بجميع مشاريعك باستخدام الأمر التالي:

gcloud projects list
  • استبدِل your-project-id ونفِّذ الأمر إذا كنت تريد استخدام رقم تعريف مشروع مختلف عن رقم تعريف المشروع الذي تم ضبطه في gcloud.
    export PROJECT_ID="your-project-id"
    
    على سبيل المثال:
    export PROJECT_ID="qwiklabs-gcp-04-3075fc9fd77f"
    
  • نفِّذ الأمر التالي إذا كنت تريد استخدام رقم تعريف المشروع الذي تم اختياره:
    export PROJECT_ID=$(gcloud config get project)
    

3. تقييد مفتاح واجهة برمجة تطبيقات جديد

في السابق، كان بإمكان المستخدمين إنشاء مفاتيح واجهة برمجة تطبيقات غير مقيّدة تمامًا. يمكن استخدام المفاتيح غير المقيّدة لطلب بيانات من أي Google API مفعّلة في المشروع الذي تم إنشاء المفتاح فيه. على الرغم من أنّ Google Cloud Console يمنع المستخدمين من إنشاء مفاتيح غير مقيّدة، لا يزال من الممكن إنشاء هذه المفاتيح باستخدام gcloud CLI أو باستخدام طلبات بيانات مباشرة من واجهة برمجة التطبيقات.

توضّح الخطوات التالية كيفية إنشاء مفتاح واجهة برمجة تطبيقات مقيّد يقتصر استخدامه على واجهة برمجة تطبيقات معيّنة وموقع إلكتروني محدّد.

  1. لإنشاء مفتاح واجهة برمجة تطبيقات جديد يقتصر استخدامه على Google Map geolocation API فقط، نفِّذ الأمر التالي في محطة Shell:
    gcloud services api-keys create --key-id=restricted-api-key \
      --display-name="restricted api key" \
      --api-target=service=geolocation.googleapis.com \
      --project=${PROJECT_ID}
    
    ينشئ هذا الأمر مفتاح واجهة برمجة تطبيقات جديدًا لا يمكن استخدامه إلا لطلب بيانات من خدمة تحديد الموقع الجغرافي في "خرائط Google".
  2. عزِّز أمان المفتاح من خلال إضافة قيد على التطبيق. اقتصر على استخدام المفتاح في جميع المسارات ضمن الموقع الإلكتروني example.com فقط. نفِّذ الأمر التالي لإضافة قيد التطبيق إلى المفتاح:
    gcloud services api-keys update restricted-api-key \
      --location=global \
      --allowed-referrers="example.com/*" \
      --project=${PROJECT_ID}
    
    بدلاً من السماح باستخدام المفتاح لمواقع إلكترونية معيّنة، يمكنك استخدام --allowed-application لتحديد تطبيق Android مسموح به أوallowed-ips لتحديد عناوين IP مسموح بها.

تَنظيم

احذف مفتاح واجهة برمجة التطبيقات الذي أنشأته ما لم تكن تخطط لاستخدامه:

gcloud services api-keys delete --key-id=restricted-api-key \
  --project=${PROJECT_ID}

4. تصنيف مفاتيح واجهة برمجة التطبيقات

في هذه الخطوة، ستستخدم gcloud CLI للحصول على قائمة بمفاتيح واجهة برمجة التطبيقات. تعرض القائمة الناتجة جميع مفاتيح واجهة برمجة التطبيقات النشطة (غير المحذوفة) التي يمكنك الوصول إليها.

  1. نفِّذ الأمر التالي للاطّلاع على جميع أسماء المفاتيح وأرقام تعريفها وتواريخ إنشائها:
    gcloud services api-keys list --project=${PROJECT_ID} \
      --format='value(displayName,name.basename(),createTime.date())'
    
    سيعرض الناتج الاسم الذي يمكن للمستخدم قراءته للمفتاح ورقم تعريف المفتاح وتاريخ إنشاء المفتاح. سيكون مشابهًا لما يلي:
    api key 1	api-key-1	2024-05-10T07:53:24
    api key 2	api-key-2	2025-06-12T14:47:57
    
  2. اختَر أحد أرقام تعريف المفاتيح والصِق الأمر التالي للتحقّق مما إذا كان المفتاح يتضمّن أي قيود. استبدِل your-key-id بقيمة رقم تعريف المفتاح الذي تم اختياره:
    gcloud services api-keys describe "your-key-id" --project=${PROJECT_ID}
    

سيحتوي الناتج (بتنسيق YAML) على قائمة بالقيود ضمن restrictions.

createTime: '2024-05-10T07:53:24.986528Z'
displayName: api key 1
etag: W/"u1WuY41K2tPKUZd7cfLoKg=="
name: projects/123456789012/locations/global/keys/api-key-1
restrictions:
  apiTargets:
  - service: geolocation.googleapis.com
  browserKeyRestrictions:
    allowedReferrers:
    - https://example.com/*
uid: 1a2b3c4d-1234-abcd-1234-a1b2c3d4e5f6
updateTime: '2024-05-10T07:53:24.071228Z'

يُرجى العِلم أنّه إذا لم يتم تعديل المفتاح مطلقًا، سيحتوي الحقلان createTime وupdateTime على الطابع الزمني نفسه.

  1. نزِّل النص البرمجي الذي يتنقّل بين جميع مشاريعك ويشغِّله ويطبع جميع مفاتيح واجهة برمجة التطبيقات التي لا تتضمّن أي قيود:
    curl -fsSL -o unrestricted_api_keys.sh \
      "https://github.com/GoogleCloudPlatform/devrel-demos/blob/main/security/api-key-audit/unrestricted_api_keys.sh"
    chmod +x unrestricted_api_keys.sh
    ./unrestricted_api_keys.sh
    
    بعد تشغيل النص البرمجي، سيظهر لك ناتج بالتنسيق التالي:
    DISPLAY NAME    KEY ID    PROJECT ID    CREATION DATE
    Key 1    1a2b3c4d-1234-abcd-1234-a1b2c3d4e5f6    my-project-1    2024-05-10T07:53:24.071228Z
    
    يمكنك العثور على جميع النصوص البرمجية المستخدَمة في هذا الدرس التطبيقي حول الترميز في مجلد Security في مستودع devrel-demos على GitHub.

5. اكتشاف استخدام مفتاح واجهة برمجة تطبيقات

في هذه الخطوة، ستستعلم عن مقاييس Google Cloud التي تساعدك في العثور على واجهات برمجة التطبيقات التي تم طلب بيانات منها باستخدام مفتاح واجهة برمجة التطبيقات. باستخدام هذه المعلومات، يمكنك مراجعة الاستخدام الحالي للمفاتيح وتطبيق قيود واجهة برمجة التطبيقات على المفتاح استنادًا إلى المعلومات الفعلية بدلاً من التخمين.

  1. استخدِم رقم تعريف المفتاح نفسه الذي استخدمته في الخطوة السابقة أو اختَر رقم تعريف مفتاح آخر. استبدِل your-key-id برقم تعريف المفتاح الذي تم اختياره في الأمر التالي:
    export KEY_UID=$(
       gcloud services api-keys describe "your-key-id" \
       --format='value(uid)' \
       --project=${PROJECT_ID})
    
  2. اضبط البحث على عرض سجلّ الاستخدام لمدة عام واحد. إذا كنت تريد البحث عن فترة زمنية أطول أو أقصر، استبدِل 365 (عدد الأيام) برقم موجب آخر.
    export DAYS=365
    
  3. أعِد تحميل بيانات الاعتماد التلقائية للتطبيق (ADC) لتفعيل الطلب المباشر من Cloud Monitoring API. نفِّذ الأمر التالي واتّبِع التعليمات في المحطة:
    gcloud auth application-default login
    
  4. نفِّذ الأمر التالي لإرسال طلب بيانات مقياس استخدام الخدمة إلى Cloud Monitoring API:
curl -s -G -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
  --data-urlencode "filter=metric.type=\"serviceruntime.googleapis.com/api/request_count\" AND resource.labels.credential_id=\"apikey:${KEY_UID}\"" \
  --data-urlencode "interval.startTime=$(date -u -d "${DAYS} days ago" +%Y-%m-%dT%H:%M:%SZ)" \
  --data-urlencode "interval.endTime=$(date -u +%Y-%m-%dT%H:%M:%SZ)" \
  "https://monitoring.googleapis.com/v3/projects/${PROJECT_ID}/timeSeries" \
  | jq -r '.timeSeries[]?.resource.labels.service' | sort -u

يستعلم الأمر عن المقياس المضمّن serviceruntime/api/request_count عن نقاط البيانات التي تحمل التصنيف credential_id الذي يطابق رقم التعريف الفريد لمفتاح واجهة برمجة التطبيقات الذي تم اختياره. بعد ذلك، يستردّ قيم التصنيف service ويطبع القيم مع إزالة التكرارات.

تعزيز أمان مفتاح واجهة برمجة التطبيقات

في هذه الخطوة، ستستخدم المعلومات التي تم جمعها في الخطوات السابقة لتعديل إعدادات القيود لمفتاح واجهة برمجة التطبيقات استنادًا إلى معلومات الاستخدام.

ستستخدم مفتاح واجهة برمجة التطبيقات نفسه الذي تم استخدامه في الخطوة السابقة. إذا لزم الأمر، أعِد تنفيذ التعليمات من الخطوات السابقة للتأكّد من ضبط متغيّرات البيئة PROJECT_ID وKEY_UID وDAYS.

  1. نفِّذ الأمر التالي لاسترداد قائمة Google APIs التي تم طلب بيانات منها باستخدام مفتاح واجهة برمجة التطبيقات:

SERVICES=$(curl -s -G -H "Authorization: Bearer $(gcloud auth application-default print-access-token)"
–data-urlencode "filter=metric.type="serviceruntime.googleapis.com/api/request_count" AND resource.labels.credential_id="apikey:${KEY_UID}""
–data-urlencode "interval.startTime=$(date -u -d "${DAYS} days ago" +%Y-%m-%dT%H:%M:%SZ)"
–data-urlencode "interval.endTime=$(date -u +%Y-%m-%dT%H:%M:%SZ)"
"https://monitoring.googleapis.com/v3/projects/${PROJECT_ID}/timeSeries"
| jq -r ‘.timeSeries[]?.resource.labels.service' | sort -u)

1. Build the list of arguments to restrict the API usage for the API key based
on the retrieved list.

```shell
API_TARGET_ARGS=()
for SERVICE in $SERVICES; do
  API_TARGET_ARGS+=("--api-target=service=${SERVICE}")
done
  1. استبدِل قائمة واجهات برمجة التطبيقات المحظورة بالقائمة غير الفارغة:
    if [ ${#API_TARGET_ARGS[@]} -gt 0 ]; then
        gcloud services api-keys update "projects/${PROJECT_ID}/locations/global/keys/${KEY_UID}" \
        ${API_TARGET_ARGS}
    fi
    

6. تحديد رصد الاستخدام غير الطبيعي

أوضحت الخطوات السابقة كيفية استكشاف مفاتيح واجهة برمجة التطبيقات وتعزيز أمانها. توضّح هذه الخطوة كيفية تشغيل رد آلي على الارتفاع غير المتوقّع في استخدام المفتاح بمساعدة تنبيهات Monitoring.

تنشئ التعليمات التالية تنبيهًا يتم إطلاقه عندما يزيد معدّل طلبات البيانات من واجهة برمجة التطبيقات التي تستخدم مفتاح واجهة برمجة تطبيقات بأكثر من% 10 خلال آخر 5 دقائق. تم ضبط التنبيه لتشغيل نص برمجي في Cloud Build يحذف مفتاح واجهة برمجة التطبيقات لمنع استخدامه أكثر من ذلك. يمكن استعادة المفتاح خلال الأيام الـ 30 التالية. راجِع المستندات للتعرّف على كيفية استعادة المفتاح.

تعيد التعليمات استخدام المتغيّرات PROJECT_ID وKEY_UID التي استخدمتها في الخطوات السابقة. إذا كنت تريد اختيار مفتاح و/أو مشروع مختلفَين، اضبط القيم الجديدة لهذَين المتغيّرَين كما هو موضّح في الخطوتَين الإعداد واكتشاف استخدام مفتاح واجهة برمجة تطبيقات.

  1. نفِّذ النص البرمجي التالي لإنشاء ملف سياسة تنبيه:
    cat <<EOF > alert_policy.json
    {
      "displayName": "Credential API Request Count Increase Alert (Project: ${PROJECT_ID})",
      "combiner": "OR",
      "conditions": [
        {
          "displayName": "API Request Count Increase > 10% in 5m with Min Volume",
          "conditionPrometheusQueryLanguage": {
            "query": "(sum(increase(serviceruntime_googleapis_com:api_request_count{metric_label_credential_id=\\"apikey:${KEY_UID}\\"}[5m])) / (sum(increase(serviceruntime_googleapis_com:api_request_count{metric_label_credential_id=\\"apikey:${KEY_UID}\\"}[5m] offset 5m)) or on() vector(1)) > 1.10) and (sum(increase(serviceruntime_googleapis_com:api_request_count{metric_label_credential_id=\\"apikey:${KEY_UID}\\"}[5m])) > 50)",
            "duration": "0s",
            "evaluationInterval": "60s"
          }
        }
      ],
      "enabled": true
    }
    EOF
    
    تستخدم سياسة التنبيه فلتر PromQL التالي لتشغيل التنبيه:
     (sum(
       increase(
         serviceruntime_googleapis_com:api_request_count{metric_label_credential_id="API_KEY_UID"}[5m])
     ) /
     (sum(
       increase(
         serviceruntime_googleapis_com:api_request_count{metric_label_credential_id="API_KEY_UID"}[5m] offset 5m)
     ) or on() vector(1)) > 1.10)
    and
     (sum(
       increase(
         serviceruntime_googleapis_com:api_request_count{metric_label_credential_id=\"YOUR_CREDENTIAL_ID_HERE\"}[5m])) > 50)
    
    يحسب معدّل الزيادة ويقارنه بفترة سابقة. ويشغِّل التنبيه فقط إذا كان أكبر من% 10. لتجنُّب تشغيل التنبيه عندما يكون العدد الإجمالي للطلبات غير مهم، يشترط تشغيله أن يكون هناك أكثر من 50 طلب بيانات من واجهة برمجة التطبيقات في الفترة. لتجنُّب عملية حساب NaN (الحذف بالقسمة على صفر) عندما يكون المعدّل في آخر 5 دقائق السابقة هو 0، يتم استبدال المقام بـ 1 إذا كان المعدّل في الفترة السابقة صفرًا.يمكنك تغيير مَعلمات التنبيه، مثل طول الفترة (5m) أو الحد الأدنى (50) أو حد الزيادة بنسبة% 10 (1.10).تحدّد مَعلمات السياسة الإضافية أنّه بمجرد استيفاء الشرط، يجب إطلاق التنبيه (duration) وأنّه يجب فحص الشرط كل 60 ثانية (evaluationInterval).
  2. نفِّذ الأمر التالي لإنشاء موضوع Pub/Sub سيتم استخدامه لنشر إشعارات التنبيهات:
    gcloud pubsub topics create api-key-alert-notifications --project=$PROJECT_ID
    
  3. نفِّذ الأمر التالي لإنشاء قنوات إشعارات للتنبيهات التي تستخدم Pub/Sub.
    CHANNEL_NAME=$(gcloud beta monitoring channels create \
      --display-name="Pub/Sub Alert Channel" \
      --type="pubsub" \
      --channel-labels="topic=projects/$PROJECT_ID/topics/api-key-alert-notifications" \
      --format='value(name)' \
      --project=$PROJECT_ID)
    
    ستستخدم متغيّر البيئة CHANNEL_NAME في خطوة التنظيف.
  4. نفِّذ الأمر التالي لإنشاء تنبيه جديد في Monitoring:
    gcloud monitoring policies create --policy-from-file=alert_policy.json \
      --project=$PROJECT_ID
    
  5. نفِّذ الأمر التالي لمنح خدمة Cloud Build أذونات حذف مفاتيح واجهة برمجة التطبيقات في المشروع.
    PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")
    gcloud projects add-iam-policy-binding $PROJECT_ID \
      --member="serviceAccount:${PROJECT_NUMBER}@cloudbuild.gserviceaccount.com" \
      --role="roles/apikeys.admin"
    
    من الممكن حصر دور apikeys.admin في تعديل مثيل معيّن فقط من مفاتيح واجهة برمجة التطبيقات. راجِع شروط إدارة الهوية وإمكانية الوصول لمزيد من التفاصيل.
  6. نفِّذ النص البرمجي التالي لإنشاء مشغّل Cloud Build يحذف مفتاح واجهة برمجة التطبيقات.
    cat <<EOF > trigger_config.yaml
    name: "delete-compromised-api-key"
    description: "Triggered by Pub/Sub alert to automatically delete the leaking API Key"
    pubsubConfig:
      topic: "projects/${PROJECT_ID}/topics/api-key-alert-notifications"
    build:
      steps:
      - name: "gcr.io/google.com/cloudsdktool/cloud-sdk:slim"
        args:
        - "gcloud"
        - "services"
        - "api-keys"
        - "delete"
        - "${KEY_UID}"
        - "--quiet"
    EOF
    
  7. نفِّذ الأمر التالي لإنشاء مشغّل تنبيه جديد في Monitoring:
    gcloud builds triggers create pubsub \
      --trigger-config=trigger_config.yaml \
      --project=$PROJECT_ID
    

يمكنك الآن حذف ملفات سياسة التنبيه وإعداد مشغّل Cloud Build:

rm alert_policy.json trigger_config.yaml

بدلاً من ذلك، يمكنك إعداد عملية التشغيل الآلي هذه باستخدام خطة Terraform. نزِّل ملفات Terraform من مجلد abnormal-usage-detection في مستودع Google Cloud DevRel repository. تقبل الخطة رقم تعريف مشروع ورقم تعريف فريد لمفتاح واجهة برمجة تطبيقات كمعلَمات إدخال وتضبط الموارد والإعدادات التي رأيتها في هذه الخطوة.

7. تَنظيف

لتجنُّب تكبّد رسوم غير متوقّعة على حسابك على Google Cloud، احرص على حذف موضوع Pub/Sub ومشغّل Cloud Build وسياسات التنبيهات التي تم إنشاؤها خلال هذا التمرين.

نفِّذ الأوامر التالية لحذف جميع الموارد التي أنشأتها:

gcloud builds triggers delete delete-compromised-api-key \
  --project=$PROJECT_ID
gcloud beta monitoring channels delete $CHANNEL_NAME \
  --project=$PROJECT_ID \
  --quiet
gcloud pubsub topics delete api-key-alert-notifications \
  --project=$PROJECT_ID
gcloud projects remove-iam-policy-binding $PROJECT_ID \
  --member="serviceAccount:${PROJECT_NUMBER}@cloudbuild.gserviceaccount.com" \
  --role="roles/apikeys.admin"

8. ملخّص

في هذا الدرس التطبيقي حول الترميز، نفّذت إطار عمل قويًا وشاملاً للأمان والتشغيل الآلي لمفاتيح Google Cloud API:

  1. الإعدادات التلقائية المحسّنة: أنشأت مفاتيح واجهة برمجة تطبيقات وقيدتها لحصر الوصول على واجهات برمجة التطبيقات الضرورية والأنظمة الأساسية الموثوق بها (مثل برامج الإحالة المستنِدة إلى HTTP معيّنة) فقط.
  2. تدقيق قائمة المفاتيح: فحصت بيئات مشروعك لرصد المفاتيح غير المقيّدة التي تمثّل خطرًا أمنيًا فوريًا وعزلها.
  3. تحليل بيانات الاستخدام: استعلمت آليًا عن بيانات مقياس Cloud Monitoring لإنشاء ملف تعريف لاستخدام المفتاح السابق، ما يتيح لك تقييد المفاتيح استنادًا إلى آثار الاستخدام التي تم التحقّق منها.
  4. التخفيف الآلي من المخاطر: أنشأت "قاطع دائرة" تفاعليًا من خلال ربط سياسة تنبيه في Cloud Monitoring بموضوع Pub/Sub ومشغّل Cloud Build، ما يتيح لك حذف المفاتيح التي تم اختراقها تلقائيًا أثناء الارتفاعات غير الطبيعية في عدد الزيارات.

الخطوات التالية

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