סקירה כללית על אבטחה

במסמך הזה מוסבר איך Fleet Engine מאבטח את חילופי המידע בין שלושת הסביבות העיקריות של מערכת Fleet Engine: שרת הקצה העורפי, שרת Fleet Engine והאפליקציות והאתרים של הלקוח.

‫Fleet Engine מנהל את האבטחה בשתי דרכים בסיסיות, באמצעות העיקרון של הרשאות מינימליות:

  • Application Default Credentials (ADC): לסביבות עם הרשאות גבוהות, כמו תקשורת בין שרתים. השימוש הוא כששרת הקצה העורפי יוצר כלי רכב ונסיעות ומנהל אותם ב-Fleet Engine. פרטים נוספים זמינים במאמר בנושא Application Default Credentials.

  • JSON Web Tokens (JWT): לסביבות עם רמת אמון נמוכה, כמו אפליקציות לקוח שפועלות בסמארטפונים ובדפדפנים. השירות משמש לביצוע פעולות עם הרשאות נמוכות יותר, כמו עדכון המיקום של הרכב ב-Fleet Engine.

    אסימוני ה-JWT שנדרשים בסביבות עם רמת אמון נמוכה נוצרים ומונפקים על ידי שרת הקצה העורפי שלכם כדי להגן על מפתחות סודיים של חשבונות שירות, והם כוללים טענות נוספות שספציפיות ל-Fleet Engine. פרטים נוספים זמינים במאמר בנושא אסימוני אינטרנט מסוג JSON.

    לדוגמה, אם יש לכם אפליקציית נהגים, הנהגים ניגשים לנתונים מ-Fleet Engine דרך האפליקציה. האימות של האפליקציה מתבצע באמצעות אסימוני JWT שהיא מקבלת משרת הקצה העורפי שלכם. התביעות שכלולות ב-JWT, יחד עם התפקיד של חשבון השירות, קובעות לאילו חלקים במערכת יש לאפליקציית הנהג גישה, ולאילו פעולות היא יכולה לבצע. הגישה מוגבלת רק לנתונים שנדרשים להשלמת משימות הנהיגה.

‫Fleet Engine משתמש בגישות האבטחה האלה כדי לספק את הדברים הבאים:

  • אימות מאמת את הזהות של הגורם ששולח את הבקשה. ‫Fleet Engine משתמש ב-ADC בסביבות עם רמת אמון גבוהה וב-JWT בסביבות עם רמת אמון נמוכה.

  • הרשאה מציינת לאילו משאבים יש לישות מאומתת גישה. ‫Fleet Engine משתמש בחשבונות שירות עם תפקידי IAM ב-Google Cloud, בנוסף לטענות JWT שמוודאות לישויות מאומתות יש הרשאות לראות או לשנות את הנתונים שהן מבקשות.

הגדרת אבטחה של השרת והלקוח

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

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

תרשים של זרימת האבטחה במהלך ההגדרה של אימות שרת ואפליקציית לקוח

בסעיפים הבאים יש מידע נוסף בנושא.

הגדרת אבטחה של שרת קצה עורפי

אדמין של צי רכבים צריך לפעול לפי השלבים הבאים:

  1. יצירה והגדרה של חשבונות שירות:

    1. יוצרים חשבונות שירות במסוף Google Cloud.

    2. מקצים לחשבונות השירות תפקידים ספציפיים ב-IAM.

    3. מגדירים את שרת הקצה העורפי באמצעות חשבונות השירות שנוצרו. לפרטים נוספים על תפקידים בחשבונות שירות

  2. הגדרת תקשורת מאובטחת עם Fleet Engine‏ (ADC): מגדירים את ה-Backend כך שיתקשר עם מופע Fleet Engine באמצעות Application Default Credentials עם חשבון השירות המתאים מסוג *Admin. מידע נוסף זמין במאמר בנושא Application Default Credentials.

  3. הגדרת תקשורת מאובטחת עם אפליקציות לקוח (JWT): יוצרים מחולל JSON Web Token כדי ליצור אסימוני JWT עם טענות מתאימות לאפליקציות לקוח ולאתרים למעקב. פרטים נוספים זמינים במאמר בנושא הנפקת אסימוני JWT.

הגדרת אבטחת אפליקציות

מפתחי אפליקציות צריכים לכלול דרך לאחזור אסימוני אינטרנט מסוג JSON שנוצרו על ידי שרת הקצה העורפי באפליקציות או באתרים של הלקוח, ולהשתמש בהם כדי לתקשר בצורה מאובטחת עם Fleet Engine. פרטים נוספים זמינים בהוראות ההגדרה במסמכי חוויית הנהג או חוויית הצרכן של האפליקציות שאתם צריכים.

תהליך האבטחה של אפליקציית הלקוח והשרת

תרשים הרצף הבא מדגים את תהליך האימות וההרשאה של אפליקציית הלקוח והשרת באמצעות Fleet Engine עם ADC בשרת העורפי, ואסימוני JWT באפליקציות ובאתרים של הלקוח.

תרשים של זרימת האבטחה במהלך הפעולה לאימות של אפליקציית שרת ואפליקציית לקוח

  • השרת העורפי שלכם יוצר כלי רכב ונסיעות או משימות ב-Fleet Engine.

  • השרת העורפי שלכם שולח נסיעה או משימה לרכב: אפליקציית הנהג, כשהיא פעילה, מאחזרת את ההקצאה.

  • השרת העורפי: חותם על JWT ומוציא אותו לחשבון השירות הרלוונטי עם תפקיד ה-IAM המתאים למשימה או לנסיעה שהוקצו.

  • אפליקציית הלקוח: אפליקציית הלקוח משתמשת ב-JWT שהתקבל כדי לשלוח עדכונים לגבי מיקום כלי הרכב ל-Fleet Engine.

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