הגדרת תוסף ל-Secure Web Proxy

התוספים של Service Extensions מאפשרים לתוספים של Secure Web Proxy לשלוח קריאות לשירותי הרשאה כדי להוסיף עיבוד מותאם אישית לנתיב העיבוד של התנועה. בדף הזה מוסבר איך להגדיר תוספים של Secure Web Proxy באמצעות כללי מדיניות הרשאות.

תוספי Secure Web Proxy מוגדרים עם מדיניות הרשאה לבקשות ולתוכן כתוספי הרשאה. תוספים שמבוססים על מדיניות הרשאות לבקשות מוגדרים לפעול לפני תוספים שמבוססים על מדיניות הרשאות לתוכן.

מידע על אופן הפעולה של תוספי Secure Web Proxy זמין במאמר סקירה כללית על תוספי Secure Web Proxy.

מידע על המגבלות שקשורות לתוספי הרשאות זמין בדף מכסות ומגבלות.

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

  1. יוצרים, מגדירים ופורסים מופע של Secure Web Proxy בשם swp-instance1 במיקום שבו רוצים להשתמש בתוסף – למשל, us-west1.

    צריך לפרוס את ה-proxy עם מדיניות אבטחה של שער שבה מופעלת בדיקה של Transport Layer Security‏ (TLS).

  2. מגדירים את שירותי הדוגמה הבאים:

    תוספים של Secure Web Proxy יכולים לטרגט רק שמות דומיין שמוגדרים במלואם (FQDN). כשמשתמשים ביעדי FQDN לתוספים, מישור הנתונים משתמש בפרוטוקול HTTP2 עם הצפנת TLS כדי לתקשר עם נקודות הקצה ביציאה 443. עם זאת, מישור הנתונים לא מאמת את אישור השרת. מטעמי אבטחה, חשוב לוודא שנקודות הקצה שנפתרו נמצאות ב-VPC.

הגדרת תוסף למדיניות הרשאות לבקשות

בדוגמה הבאה מוצג אופן ההגדרה של תוסף הרשאות שמחיל מדיניות הרשאות לבקשות על מופע Secure Web Proxy ב-us-west1. המדיניות דורשת שהתנועה תעבור אימות TLS בו-זמני (mTLS) ממנהל ראשי ספציפי לפני שתורשה להגיע ליעד, example.com/mcp.

gcloud

  1. מגדירים את תוסף ההרשאות.

    1. מגדירים את התוסף בקובץ YAML שמקשר את התוסף אל request-authz.com. משתמשים בערכים לדוגמה שצוינו.

      cat >swp-request-authz-extension.yaml <<EOF
      name: my-swp-request-authz-ext
      authority: ext11.com
      loadBalancingScheme: INTERNAL_MANAGED
      service: "request-authz.com"
      forwardHeaders:
        - Authorization
      failOpen: false
      timeout: "0.1s"
      wireFormat: EXT_AUTHZ_GRPC
      EOF
      

      תוספים של Secure Web Proxy הם משאבים אזוריים, והם צריכים להיות באותו אזור כמו מופע Secure Web Proxy.

      במדיניות הרשאות לבקשות, הערך של wireFormat יכול להיות EXT_AUTHZ_GRPC, כך שההפניה החיצונית תשתמש בפרוטוקול ext_authz, למרות שגם פרוטוקול ext_proc נתמך.

      כברירת מחדל, failOpen מוגדר כ-false. אם חלף הזמן הקצוב לתגובה של התוסף או שהוא נכשל, עיבוד הבקשה נפסק. אפשרות ברירת המחדל הזו מועדפת כשנותנים עדיפות לאבטחה או לשלמות על פני זמינות.

    2. מייבאים את תוסף ההרשאה. משתמשים בgcloud beta service-extensions authz-extensions import עם ערכי הדוגמה הבאים.

      gcloud beta service-extensions authz-extensions import my-swp-request-authz-ext \
          --source=swp-request-authz-extension.yaml \
          --location=us-west1
      
  2. באותו פרויקט, מגדירים מדיניות הרשאות עם התוסף.

    לכל בקשה אל example.com/mcp, המדיניות דורשת אימות TLS הדדי מחשבון משתמש ספציפי, ומעבירה את החלטת ההרשאה אל תוסף ההרשאות, my-swp-authz-request-ext.

    1. מגדירים מדיניות הרשאה שמקשרת את התוסף my-swp-authz-request-ext לשרת ה-proxy של Secure Web Proxy, ‏ swp-instance1. משתמשים בערכים לדוגמה שצוינו.

      cat >swp-request-authz-policy.yaml <<EOF
      name: my-swp-request-authz-policy
      target:
        resources:
          - "projects/PROJECT_ID/locations/us-west1/gateways/swp-instance1"
      policyProfile: REQUEST_AUTHZ
      httpRules:
      - to:
          operations:
          - hosts:
            - exact: "example.com"
          - paths:
            - prefix: "/mcp"
        from:
          sources:
          - principals:
            - principal_selector: CLIENT_CERT_DNS_NAME_SANS
              principal:
                exact: "spiffe://p.global.123.workload.id.goog/ns/ns1/sa/hellomcp"
      action: CUSTOM
      customProvider:
        authzExtension:
          resources:
            - "projects/PROJECT_ID/locations/us-west1/authzExtensions/my-swp-request-authz-ext"
      EOF
      

      מחליפים את PROJECT_ID במזהה הפרויקט.

      במדיניות הרשאות לבקשות, הערך של policyProfile חייב להיות REQUEST_AUTHZ.

      הפעולה CUSTOM מציינת שתוסף משויך לשרת ה-proxy.

      מידע נוסף על משאב של מדיניות הרשאות מופיע בauthzPolicyמאמרי העזרה.

    2. מייבאים את מדיניות ההרשאות לפרויקט. משתמשים בgcloud beta network-security authz-policies importפקודה עם הערכים לדוגמה הבאים.

      gcloud beta network-security authz-policies import my-swp-request-authz-policy \
          --source=swp-request-authz-policy.yaml \
          --location=us-west1
      

הגדרת תוסף למדיניות הרשאות גישה לתוכן

בדוגמה הבאה מוצג אופן ההגדרה של תוסף הרשאות שמחיל מדיניות הרשאות לתוכן על מופע Secure Web Proxy ב-us-west1. המדיניות מחייבת ששירות לניקוי תוכן יבצע בדיקה מעמיקה של נתוני הבקשות באפליקציה כדי לאשר או לדחות בקשות, או לשנות את הבקשות והתגובות לפי הצורך.

gcloud

  1. מגדירים את תוסף ההרשאות.

    1. מגדירים את התוסף בקובץ YAML שמקשר את התוסף אל content-sdp.com. משתמשים בערכים לדוגמה שצוינו.

      cat >swp-authz-content-extension.yaml <<EOF
      name: my-swp-content-authz-ext
      authority: ext11.com
      loadBalancingScheme: INTERNAL_MANAGED
      service: "content-sdp.com"
      failOpen: false
      timeout: "0.1s"
      EOF
      

      במדיניות הרשאת תוכן, הערך של policyProfile צריך להיות CONTENT_AUTHZ.

      במדיניות CONTENT_AUTHZ, לא צריך להגדיר את הערך wireFormat במפורש כ-EXT_PROC_GRPC. כברירת מחדל, הבועה משתמשת בפרוטוקול ext_proc.

    2. מייבאים את תוסף ההרשאה. משתמשים בgcloud beta service-extensions authz-extensions import עם ערכי הדוגמה הבאים.

      gcloud beta service-extensions authz-extensions import my-swp-content-authz-ext \
          --source=swp-content-authz-extension.yaml \
          --location=us-west1
      
  2. הגדרת מדיניות הרשאות באמצעות התוסף.

    1. מגדירים מדיניות הרשאות שמקשרת את התוסף my-swp-content-authz-ext לשרת ה-proxy של Secure Web Proxy‏, swp-instance1. משתמשים בערכים לדוגמה שצוינו.

      cat >swp-content-authz-policy.yaml <<EOF
      name: my-swp-content-authz-policy
      target:
        resources:
          - "projects/PROJECT_ID/locations/us-west1/gateways/swp-instance1"
      policyProfile: CONTENT_AUTHZ
      httpRules:
      - to:
          operations:
          - hosts:
            - exact: "example.com"
          - paths:
            - prefix: "/sensitive-stuff"
      action: CUSTOM
      customProvider:
        authzExtension:
          resources:
            - "projects/PROJECT_ID/locations/us-west1/authzExtensions/my-swp-content-authz-ext"
      EOF
      

      במדיניות הרשאת גישה לתוכן, הערך של policyProfile מוגדר כ-CONTENT_AUTHZ. הערך הזה מציין שספק המדיניות המותאמת אישית מעבד את התנועה של הבקשות והתגובות, כולל עיבוד הגוף.

    2. מייבאים את מדיניות ההרשאות לפרויקט. משתמשים בgcloud beta network-security authz-policies importפקודה עם הערכים לדוגמה הבאים.

      gcloud beta network-security authz-policies import my-swp-content-authz-policy \
          --source=swp-content-authz-policy.yaml \
          --location=us-west1
      

המגבלות של תוספי Secure Web Proxy

בקטעים הבאים מפורטות המגבלות של תוספי Secure Web Proxy:

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