เอกสารนี้อธิบายวิธีที่ Fleet Engine รักษาความปลอดภัยในการแลกเปลี่ยนข้อมูลระหว่างสภาพแวดล้อมหลัก 3 รายการของระบบ Fleet Engine ได้แก่ เซิร์ฟเวอร์แบ็กเอนด์ เซิร์ฟเวอร์ Fleet Engine และแอปพลิเคชันและเว็บไซต์ไคลเอ็นต์
Fleet Engine จัดการความปลอดภัยด้วยวิธีพื้นฐาน 2 วิธี โดยใช้หลักการของสิทธิ์ระดับต่ำสุด ดังนี้
ข้อมูลเข้าสู่ระบบเริ่มต้นของแอปพลิเคชัน (ADC): สําหรับสภาพแวดล้อมที่มีสิทธิ์สูง เช่น การสื่อสารระหว่างเซิร์ฟเวอร์ ใช้เมื่อเซิร์ฟเวอร์แบ็กเอนด์สร้างยานพาหนะและการเดินทาง รวมถึงจัดการยานพาหนะและการเดินทางใน Fleet Engine โปรดดูรายละเอียดที่หัวข้อข้อมูลเข้าสู่ระบบเริ่มต้นของแอปพลิเคชัน
JSON Web Token (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 ให้ตั้งค่าบัญชีและการรักษาความปลอดภัยที่จำเป็นในเซิร์ฟเวอร์แบ็กเอนด์ และแอปพลิเคชันและเว็บไซต์ของลูกค้า
แผนภาพต่อไปนี้แสดงภาพรวมของขั้นตอนในการตั้งค่าความปลอดภัยในเซิร์ฟเวอร์แบ็กเอนด์และแอปพลิเคชันไคลเอ็นต์
โปรดดูรายละเอียดเพิ่มเติมที่หัวข้อด้านล่าง
การตั้งค่าความปลอดภัยของเซิร์ฟเวอร์แบ็กเอนด์
ผู้ดูแลระบบของกลุ่มรถต้องทําตามขั้นตอนต่อไปนี้
สร้างและกำหนดค่าบัญชีบริการ
สร้างบัญชีบริการในคอนโซล Google Cloud
มอบหมายบทบาท IAM ที่เจาะจงให้กับบัญชีบริการ
กำหนดค่าเซิร์ฟเวอร์แบ็กเอนด์ด้วยบัญชีบริการที่สร้างไว้ โปรดดูรายละเอียดที่หัวข้อบทบาทของบัญชีบริการ
กำหนดค่าการสื่อสารที่ปลอดภัยกับ Fleet Engine (ADC): กำหนดค่าแบ็กเอนด์เพื่อสื่อสารกับอินสแตนซ์ Fleet Engine โดยใช้ข้อมูลเข้าสู่ระบบเริ่มต้นของแอปพลิเคชันด้วย *บัญชีบริการของผู้ดูแลระบบที่เหมาะสม โปรดดูรายละเอียดที่ข้อมูลเข้าสู่ระบบเริ่มต้นของแอปพลิเคชัน
กําหนดค่าการสื่อสารที่ปลอดภัยกับแอปไคลเอ็นต์ (JWT): สร้างเครื่องมือสร้างโทเค็นเว็บ JSON เพื่อสร้าง JWT ที่มีการอ้างสิทธิ์ที่เหมาะสมสําหรับแอปพลิเคชันไคลเอ็นต์และเว็บไซต์ตรวจสอบ โปรดดูรายละเอียดที่หัวข้อออกโทเค็นเว็บ JSON
การตั้งค่าความปลอดภัยของแอปพลิเคชัน
นักพัฒนาแอปพลิเคชันต้องระบุวิธีดึงข้อมูลโทเค็นเว็บ JSON ที่เซิร์ฟเวอร์แบ็กเอนด์สร้างขึ้นในแอปหรือเว็บไซต์ไคลเอ็นต์ และใช้โทเค็นดังกล่าวเพื่อสื่อสารกับ Fleet Engine อย่างปลอดภัย โปรดดูรายละเอียดในวิธีการตั้งค่าในเอกสารประสบการณ์การใช้งานของไดรเวอร์หรือประสบการณ์การใช้งานของผู้บริโภคสำหรับแอปพลิเคชันที่ต้องการ
ขั้นตอนความปลอดภัยของแอปเซิร์ฟเวอร์และไคลเอ็นต์
แผนภาพลำดับขั้นต่อไปนี้แสดงขั้นตอนการตรวจสอบสิทธิ์และการให้สิทธิ์ของเซิร์ฟเวอร์และแอปไคลเอ็นต์ด้วย Fleet Engine โดยใช้ ADC กับเซิร์ฟเวอร์แบ็กเอนด์และ JWT กับแอปพลิเคชันและเว็บไซต์ไคลเอ็นต์
เซิร์ฟเวอร์แบ็กเอนด์จะสร้างยานพาหนะและการเดินทางหรืองานใน Fleet Engine
เซิร์ฟเวอร์แบ็กเอนด์ส่งการเดินทางหรืองานไปยังยานพาหนะ แอปคนขับจะดึงข้อมูลงานเมื่อแอปทำงานอยู่
เซิร์ฟเวอร์แบ็กเอนด์ของคุณ: ลงนามและออก JWT สําหรับบัญชีบริการที่เกี่ยวข้องซึ่งมีบทบาท IAM ที่เหมาะสมสําหรับงานหรือการเดินทางที่ได้รับมอบหมาย
แอปไคลเอ็นต์: แอปไคลเอ็นต์ใช้ JWT ที่ได้รับเพื่อส่งการอัปเดตตำแหน่งของยานพาหนะไปยัง Fleet Engine
ขั้นตอนถัดไป
- สร้างโปรเจ็กต์ Fleet Engine
- ดูวิธีออก JSON Web Token จากเซิร์ฟเวอร์
- ดูข้อมูลเพิ่มเติมเกี่ยวกับบทบาทของบัญชีบริการ
- ดูข้อมูลเพิ่มเติมเกี่ยวกับ JWTs