הגדרת אימות של מקור פרטי

בדף הזה מופיעה סקירה כללית של אימות מקור פרטי והוראות לשימוש בו עם Cloud CDN.

אימות מקור פרטי מעניק ל-Cloud CDN גישה לטווח ארוך למשאבים בקטגוריות פרטיות של Amazon S3 או במאגרי אובייקטים תואמים אחרים. שימוש במקורות פרטיים מונע מלקוחות לעקוף את Cloud CDN ולגשת ישירות למקור שלכם.

התכונה הזו נתמכת ב-Cloud CDN עם מאזן עומסים חיצוני גלובלי של אפליקציות (ALB) או עם מאזן עומסים קלאסי של אפליקציות.

אימות מקור פרטי פונה למקור, בעוד שכתובות URL חתומות וקובצי Cookie חתומים פונים ללקוח. אפשר להפעיל את שניהם לאותו תוכן. אימות מקור פרטי מגביל את הגישה למקורות ולתוכן שלכם שלא דרך CDN. כתובות URL חתומות וקובצי Cookie מאפשרים לקבוע אילו משתמשים יכולים לגשת ל-Cloud CDN.

לפני שמתחילים

הגדרת אימות למקורות פרטיים

כדי להגדיר אימות של מקור פרטי, פועלים לפי ההוראות הבאות:

המסוף

  1. נכנסים לדף Cloud CDN במסוף Google Cloud .

    מעבר אל Cloud CDN

  2. לוחצים על שם המקור שרוצים להגדיר. המקור חייב להיות מסוג מקור בהתאמה אישית.

  3. בדף פרטי המקור, לוחצים על הכפתור עריכה.

  4. כדי לעבור לקטע Host and path rules, לוחצים על Next.

  5. כדי לעבור לקטע ביצועי מטמון, לוחצים על הבא.

  6. בקטע Private origin authentication (אימות מקור פרטי), בוחרים באפשרות Authenticate requests to this origin with AWS Signature Version 4 (אימות בקשות למקור הזה באמצעות חתימה בגרסה 4 של AWS). לאחר מכן, מציינים את הפרטים הבאים:

    • מזהה מפתח: מפתח גישה לקטגוריה של Amazon S3 או למאגר אובייקטים תואם אחר.
    • Key: המפתח הסודי שמשמש לאימות בחנות האובייקטים. אם אתם משתמשים בקטגוריה פרטית של Cloud Storage, צריך לציין את מפתח ה-HMAC.
    • גרסת מפתח: שם ייחודי שמייצג את גרסת המפתח.
    • אזור: האזור שבו נמצא מאגר האובייקטים, לדוגמה us-east-1.
  7. לוחצים על סיום.

gcloud

  1. מייצאים את הגדרות ה-backend של המקור הפרטי לקובץ YAML באמצעות הפקודה gcloud compute backend-services export:

    gcloud compute backend-services export BACKEND_SERVICE_NAME \
       [--destination=DESTINATION]
    

    מחליפים את DESTINATION בשם של קובץ ה-YAML – לדוגמה, my-private-origin.yaml.

  2. כדי לאמת את בקשות ה-Backend באמצעות מפתח ה-HMAC, צריך לציין את אפשרויות ההגדרה הנוספות האלה בקטע securitySettings של backendServices:

    securitySettings:
      awsV4Authentication:
        accessKeyId: ACCESS_KEY_ID
        accessKey: ACCESS_KEY
        [accessKeyVersion: ACCESS_KEY_VERSION]
        originRegion: REGION
    …]
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ACCESS_KEY_ID: מזהה מפתח הגישה של HMAC
    • ACCESS_KEY: מפתח הגישה של HMAC
    • ACCESS_KEY_VERSION (אופציונלי): שם ייחודי שאפשר להגדיר כדי לייצג את גרסת המפתח
    • REGION: אזור תקין של ספק האחסון. ב-Amazon S3, הערך לא מציין אזור Google Cloud.

    בקטע הקוד הבא מוצג התוכן של קובץ my-private-origin.yaml לדוגמה:

     name: shopping-cart-services
     backends:
       - description: cart-backend-1
         group: 'https://www.googleapis.com/compute/v1/projects/my-project-id/global/networkEndpointGroups/my-network-origin-group'
     securitySettings:
       awsV4Authentication:
         accessKeyId: AKIDEXAMPLE
         accessKey: c4afb1cc5771d871763a393e44b703571b55cc28424d1a5e86da6ed3c154a4b9
         accessKeyVersion: prod-access-key-v1.2
         originRegion: us-east-2
    
  3. כדי לעדכן את המקור הפרטי, מייבאים את ההגדרה לשירות הקצה העורפי באמצעות הפקודה gcloud compute backend-services import:

    gcloud compute backend-services import BACKEND_SERVICE_NAME \
       [--source=SOURCE]
    

    מחליפים את SOURCE בשם של קובץ ה-YAML.

API

כדי לאמת את בקשות ה-Backend באמצעות מפתח ה-HMAC, מציינים את אפשרויות ההגדרה הנוספות האלה בקטע securitySettings של backendServices.

משתמשים בקריאה ל-API‏ Method: backendServices.insert או Method: backendServices.update.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices
PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE

מוסיפים את הקטע הבא לגוף בקשת ה-JSON:

securitySettings: {
  awsV4Authentication: {
    accessKeyId: ACCESS_KEY_ID,
    accessKey: ACCESS_KEY,
    [accessKeyVersion: ACCESS_KEY_VERSION],
    originRegion: REGION
  }
}

מחליפים את מה שכתוב בשדות הבאים:

  • ACCESS_KEY_ID: מזהה מפתח הגישה של HMAC
  • ACCESS_KEY: מפתח הגישה של HMAC
  • ACCESS_KEY_VERSION (אופציונלי): שם ייחודי שאפשר להגדיר כדי לייצג את גרסת המפתח
  • REGION: אזור תקין של ספק האחסון. ב-Amazon S3, הערך לא מציין אזור Google Cloud.

בקטע הקוד הבא מוצג התוכן של גוף בקשת JSON לדוגמה:

securitySettings: {
  awsV4Authentication: {
    accessKeyId: "AKIDEXAMPLE",
    accessKey: "c4afb1cc5771d871763a393e44b703571b55cc28424d1a5e86da6ed3c154a4b9",
    accessKeyVersion: "prod-access-key-v1.2",
    originRegion: "us-east-2"
  }
}

שם השירות מוגדר אוטומטית ל-s3 לצורך יצירת החתימה. אחרי שמבצעים את ההגדרות האלה, Cloud CDN יוצר כותרת הרשאה של HTTP לכל הבקשות למקור.

שמירת תשובות מאומתות במטמון באופן פרטי

יכול להיות שתרצו לוודא שתוכן שעבר אימות פרטי נשמר במטמון על ידי Cloud CDN.

כדי לעשות זאת, מגדירים את מצב המטמון לשמירה של כל התוכן במטמון ומציינים TTL, כך שכל התוכן שמוצג מהמקור יישמר במטמון.

לחלופין, אם אתם לא רוצים לאלץ את כל התוכן להיכנס למטמון באותו אופן, אתם יכולים לשנות את מצב המטמון לUse origin setting based on Cache-Control headers (שימוש בהגדרת המקור על סמך כותרות Cache-Control) או לCache static content (שמירת תוכן סטטי במטמון), ולוודא שהכותרת Cache-Control מוגדרת בצורה נכונה בתוכן שמוצג מהמקור.

המאמרים הבאים