מדריך למתחילים: אבטחת תעבורת נתונים לשירות באמצעות Google Cloud המסוף
בדף הזה מוסבר איך לפרוס API ב-API Gateway כדי לאבטח את תעבורת הנתונים לשירות לקצה העורפי.
פועלים לפי השלבים כדי לפרוס API חדש לגישה לשירות לקצה העורפי בפונקציות Cloud Run באמצעות מסוף Google Cloud . במדריך למתחילים הזה מוסבר גם איך להשתמש במפתח API כדי להגן על הבק-אנד מפני גישה לא מורשית.
לפני שמתחילים
נכנסים לדף API Gateway במסוף Google Cloud .
כדי להשתמש ב-API Gateway, צריך להפעיל את שירותי Google הבאים:
שם כותרת apigateway.googleapis.comAPI Gateway API servicemanagement.googleapis.comService Management API servicecontrol.googleapis.comService Control API אם לא הפעלתם בעבר את השירותים האלה בפרויקט שבחרתם, תתבקשו לעשות זאת.
מוודאים שהחיוב מופעל בפרויקט.
פריסת קצה עורפי של API
API Gateway נמצא לפני שירות קצה עורפי שמוטמע ומטפל בכל הבקשות הנכנסות. במדריך למתחילים הזה, API Gateway מעביר קריאות נכנסות אל קצה עורפי של פונקציית Cloud Run בשם helloGET, שמכיל את פונקציית Node.js שמוצגת בהמשך.
const functions = require('@google-cloud/functions-framework'); // Register an HTTP function with the Functions Framework that will be executed // when you make an HTTP request to the deployed function's endpoint. functions.http('helloGET', (req, res) => { res.send('Hello World!'); });
פועלים לפי השלבים במאמר מדריך למתחילים: שימוש ב-Google Cloud CLI כדי להוריד את קוד הדוגמה של פונקציות Cloud Run ולפרוס את שירות לקצה העורפי של פונקציית Cloud Run.
פועלים לפי השלבים במאמר מדריך למתחילים: שימוש ב-Google Cloud CLI כדי להוריד את קוד הדוגמה של פונקציות Cloud Run ולפרוס את שירות לקצה העורפי של פונקציית Cloud Run. האדמין יצטרך להעניק תפקידים נוספים לחשבון שלכם ולחשבון השירות של Cloud Build, כמו ��מתואר בתחילת העבודה המהירה הזו.
מעתיקים את כתובת ה-URL של השירות שמוצגת כשפורסים את פונקציית Cloud Run. תצטרכו אותו בשלב הבא, כשתיצרו את הגדרות ה-API.
יצירת הגדרת API
API Gateway משתמש בהגדרת API כדי לנתב קריאות לשירות לקצה העורפי. אפשר להשתמש במפרט OpenAPI שמכיל תוספים מיוחדים כדי להגדיר את ההתנהגות של API Gateway. פרטים נוספים על תוספי OpenAPI נתמכים זמינים במאמרים הבאים:
מפרט OpenAPI במדריך למתחילים הזה כולל הוראות ניתוב ל-backend של פונקציית Cloud Run:
OpenAPI 2.0
# openapi-functions.yaml swagger: '2.0' info: title: API_ID optional-string description: Sample API on API Gateway with a Google Cloud Functions backend version: 1.0.0 schemes: - https produces: - application/json paths: /hello: get: summary: Greet a user operationId: hello x-google-backend: address: SERVICE_URL/helloGET responses: '200': description: A successful response schema: type: string
OpenAPI 3.x
# openapi-functions.yaml openapi: 3.0.4 info: title: API_ID optional-string description: Sample API on API Gateway with a Google Cloud Functions backend version: 1.0.0 # Define reusable components in x-google-api-management x-google-api-management: backends: functions_backend: address: SERVICE_URL/helloGET pathTranslation: APPEND_PATH_TO_ADDRESS protocol: "http/1.1" # Apply the backend configuration by referencing it by name. Set at the root so this applies to all operations unless overridden. x-google-backend: functions_backend paths: /hello: get: summary: Greet a user operationId: hello responses: '200': description: A successful response content: application/json: schema: type: string
משתמשים במפרט הזה של OpenAPI כדי להגדיר את ה-API:
משורת הפקודה, יוצרים קובץ חדש בשם
openapi-functions.yaml.מעתיקים את התוכן של מפרט OpenAPI שמוצג בדוגמה הקודמת ומדביקים אותו בקובץ החדש שיצרתם.
עורכים את הקובץ באופן הבא:
- בשדה
title, מחליפים את API_ID בשם של ה-API (שיוצרים בשלב הבא) ואת optional-string בתיאור קצר לפי בחירתכם. הערך של השדה הזה משמש ליצירת מפתחות API שמעניקים גישה ל-API ה��ה. הנחיות למתן שמות למזהי API מפורטות במאמר בנושא דרישות למזהי API. - בשדה
address, מחליפים את SERVICE_URL בכתובת ה-URL שבה פועל שירות לקצה העורפי של פונקציית Cloud Run, שהעתקתם בשלב הקודם.
- בשדה
יצירת שער
עכשיו אפשר ליצור ולפרוס שער ב-API Gateway.
פותחים את הדף API Gateway במסוף Google Cloud .
לוחצים על יצירת שער.
בקטע API:
- בתפריט הנפתח Select an API (בחירת API), בוחרים ליצור API חדש או בוחרים API קיים. במדריך הזה, בוחרים באפשרות Create a new API (יצירת API חדש).
- מזינים את שם התצוגה של ה-API.
- מזינים את מזהה ה-API של ה-API.
- (אופציונלי) מוסיפים תוויות ל-API בפורמט key:value. כדי להוסיף יותר מתווית אחת, לוחצים על הוספת תווית ומזינים ערכים נוספים.
בקטע API Config (הגדרת API):
- בוחרים ליצור הגדרת API חדשה או בוחרים הגדרת API קיימת מהתפריט הנפתח Select a Config (בחירת הגדרה). במדריך הזה, בוחרים באפשרות Create a new API config (יצירת הגדרת API חדשה).
- משתמשים בדפדפן הקבצים כדי להעלות את
openapi-functions.yamlשמשמש להגדרת ה-API. - מזינים שם תצוגה להגדרת ה-API.
בוחרים חשבון שירות מהרשימה הנפתחת. חשבון השירות שתבחרו ישמש כזהות עבור API Gateway. אם חשבון השירות לא מופיע בתפריט הנפתח, כדאי לעיין במאמר הגדרת חשבון שירות כדי לוודא שחשבון השירות מופעל בפרויקט.
(אופציונלי) מוסיפים תוויות להגדרת ה-API בפורמט key:value. כדי להוסיף יותר מתווית אחת, לוחצים על הוספת תווית ומזינים ערכים נוספים.
בקטע פרטי השער:
- מזינים את השם המוצג של השער. כתובת ה-URL לשער נוצרת באופן אוטומטי.
- בוחרים את המיקום של השער מהתפריט הנפתח.
- (אופציונלי) מוסיפים תוויות לשער בפורמט מפתח:ערך. כדי להוסיף יותר מתווית אחת, לוחצים על הוספת תווית ומזינים ערכים נוספים.
לוחצים על יצירת שער.
הפעולה הזו פורסת את הגדרות ה-API בשער חדש שנוצר. פריסת הגדרת API בשער מגדירה כתובת URL חיצונית שלקוחות API יכולים להשתמש בה כדי לגשת ל-API.
השלמת הפעולה עשויה להימשך כמה דקות. כדי לבדוק את הסטטוס של תהליך היצירה והפריסה, לוחצים על סמל ההתראה בסרגל הניווט הראשי כדי להציג התראה על הסטטוס, כמו שמוצג בתמונה הבאה:

אחרי שההגדרה תושלם בהצלחה, תוכלו לראות את הפרטים של שער ��תשלום בדף הנחיתה של שער התשלום.
רושמים את כתובת ה-URL של השער. תשתמשו בו כדי לבדוק את הפריסה בשלב הבא.
בדיקת פריסת ה-API
עכשיו אפשר לשלוח בקשות ל-API באמצעות כתובת ה-URL שנוצרה כשפרסתם את השער.
בדפדפן, מזינים את כתובת ה-URL הבאה, כאשר:
- GATEWAY_URL מציין את כתובת ה-URL של השער שפרסתם.
-
helloהוא הנתיב שצוין בהגדרת ה-API.
https://GATEWAY_URL/hello
לדוגמה:
https://my-gateway-a12bcd345e67f89g0h.uc.gateway.dev/hello
ההודעה Hello World! אמורה להופיע בדפדפן.
יצרתם ופרסתם בהצלחה API Gateway.
אבטחת הגישה באמצעות מפתח API
כדי לאבטח את הגישה לקצה העורפי של ה-API באמצעות מפתח API:
- יוצרים מפתח API שמשויך לפרויקט.
- יוצרים ומפעילים הגדרת API חדשה כדי לאבטח את הגישה ל-API באמצעות מפתחות API.
- בדיקת מפתח ה-API
אפשר לעיין גם במאמר בנושא הגבלת הגישה ל-API באמצעות מפתחות API.
יצירה של מפתח API
אם עדיין אין לכם מפתח API שמשויך לפרויקט Google Cloud שבו אתם משתמשים במדריך הזה, תוכלו להוסיף אותו כמו שמתואר במאמר יצירת מפתח API.
מעתיקים את מחרוזת המפתח שמוחזרת ומוודאים שהיא מאובטחת. זהו ערך המפתח שבו תשתמשו כשבודקים את מפתח ה-API.
יצירה ופריסה של הגדרת API חדשה
כדי ליצור ולפרוס הגדרת API חדשה שמאבטחת את הגישה ל-API באמצעות מפתחות API:
- מפעילים את השירות:
- במסוף Google Cloud , נכנסים אל APIs & Services > Library.
- בסרגל החיפוש, מזינים את שם השירות המנוהל של ה-API שיצרתם. אפשר למצוא את הערך הזה בעמודת Managed Service של ה-API בדף הנחיתה של ממשקי ה-API. לדוגמה:
my-api-123abc456def1.apigateway.my-project.cloud.goog
- בדף הנחיתה של השירות, לוחצים על הפעלה.
- משנים את מפרט ה-OpenAPI שמשמש ליצירת הגדרות ה-API כך שיכלול הוראות לאכיפת מדיניות אבטחה של אימות מפתח API על כל התנועה. מוסיפים את
securitytype ואתsecuritySchemesכמו שמוצג:OpenAPI 2.0
# openapi2-functions.yaml swagger: '2.0' info: title: API_ID optional-string description: Sample API on API Gateway with a Google Cloud Functions backend version: 1.0.0 schemes: - https produces: - application/json paths: /hello: get: summary: Greet a user operationId: hello x-google-backend: address: SERVICE_URL/helloGET security: - api_key: [] responses: '200': description: A successful response schema: type: string securityDefinitions: # This section configures basic authentication with an API key. api_key: type: "apiKey" name: "key" in: "query"
ההגדרה
securityDefinitionקובעת שמפתח API נדרש כדי לגשת ל-API, ושהמפתח מועבר כפרמטר של שאילתה בשםkeyכשמבקשים גישה לכל הנתיבים שמוגדרים במפרט.OpenAPI 3.x
# openapi-functions.yaml openapi: 3.0.4 info: title: API_ID optional-string description: Sample API on API Gateway with a Google Cloud Functions backend version: 1.0.0 # Define reusable components in x-google-api-management x-google-api-management: backends: functions_backend: address: SERVICE_URL/helloGET pathTranslation: APPEND_PATH_TO_ADDRESS protocol: "http/1.1" # Apply the backend configuration by referencing it by name. Set at the root so this applies to all operations unless overridden. x-google-backend: functions_backend components: # This section configures basic authentication with an API key. securitySchemes: google_api_key: type: apiKey name: x-api-key in: header security: - google_api_key: [] paths: /hello: get: summary: Greet a user operationId: hello responses: '200': description: A successful response content: application/json: schema: type: string
ההגדרה
securitySchemesקובעת שמפתח API נדרש כדי לגשת ל-API, ושהמפתח מועבר כפרמטר של שאילתה בשםkeyכשמבקשים גישה לכל הנתיבים שמוגדרים במפרט. - יוצרים ומפעילים הגדרת API חדשה בשער הקיים:
- עוברים לדף הנחיתה של שערים.
- בוחרים את השער מהרשימה כדי לראות את הפרטים.
- לוחצים על עריכה כדי לפתוח את חלונית ההגדרות של השער.
- בקטע API config (הגדרת ה-API):
- בתפריט הנפתח שזמין, בוחרים בא��שרות Create a new API config (יצירת הגדרת API חדשה).
- מעלים את מפרט OpenAPI ששיניתם באמצעות דפדפן הקבצים.
- מזינים את השם המוצג של הגדרת ה-API החדשה.
- בוחרים חשבון שירות מהרשימה הנפתחת. חשבון השירות שתבחרו ישמש כזהות של API Gateway.
- (אופציונלי) מוסיפים תוויות להגדרת ה-API באמצעות פורמט של מפתח/ערך. כדי להוסיף יותר מתווית אחת, לוחצים על הוספת תווית ומזינים ערכים נוספים.
- לוחצים על עדכון.
בדיקת מפתח ה-API
אחרי שיוצרים את ה-API ששונה ומפעילים אותו, מנסים לשלוח אליו בקשה.
בדפדפן, מזינים את כתובת ה-URL הבאה, כאשר:
- GATEWAY_URL מציין את כתובת ה-URL של השער שפרסתם.
-
helloהוא הנתיב שצוין בהגדרת ה-API.
https://GATEWAY_URL/hello
אמורה להופיע השגיאה הבאה:
UNAUTHENTICATED:Method doesn't allow unregistered callers (callers without established identity). Please use API Key or other form of API consumer identity to call this API.
עכשיו, בדפדפן, מזינים את כתובת ה-URL הבאה, כאשר:
- GATEWAY_URL מציין את כתובת ה-URL של השער שפרסתם.
-
helloהוא הנתיב שצוין בהגדרת ה-API. - API_KEY מציין את הערך של מפתח ה-API שיצרתם בקטע יצירת מפתח API.
https://GATEWAY_URL/hello?key=API_KEY
עכשיו אמור להופיע הסמל Hello World! בדפדפן.
כל הכבוד! הצלחתם להגן על קצה העורפי של ה-API באמצעות API Gateway. עכשיו אפשר להתחיל לצרף לקוחות API חדשים על ידי יצירת מפתחות API נוספים.
מעקב אחר פעילות API
אפשר לראות את הגרפים של הפעילות ב-API בדף API Gateway במסוףGoogle Cloud . לוחצים על ה-API כדי לראות את תרשימי הפעילות שלו בדף סקירה כללית. יכול להיות שיעברו כמה דקות עד שהבקשות יופיעו בתרשימים.
מעיינים ביומני הבקשות של ה-API בדף Logs Explorer. קישור לדף Logs Explorer נמצא בדף API Gateway API במסוףGoogle Cloud .
בדף API Gateway APIs:
- בוחרים את ה-API שרוצים לראות.
- לוחצים על הכרטיסייה פרטים.
- לוחצים על הקישור בקטע יומנים.
הסרת המשאבים
כדי להימנע מחיובים בחשבון על המשאבים שבהם השתמשתם במדריך למתחילים הזה, אתם יכולים: Google Cloud
אפשר גם למחוק את Google Cloud הפרויקט שבו השתמשתם במדריך הזה.