แนวทางปฏิบัติแนะนําด้านความปลอดภัยของ API

จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ

แอปและโปรเจ็กต์ที่ใช้ API และ Google Maps Platform จําเป็นต้องใช้คีย์ API เพื่อความปลอดภัยสูงสุดและใช้ความพยายามเพียงเล็กน้อย ให้รักษาความปลอดภัยของคีย์ API เมื่อสร้างคีย์

แม้ว่าจะมีการรักษาความปลอดภัยให้กับคีย์ API หลังจากที่สร้างขึ้นและใช้งานอยู่แล้ว แต่ก็อาจมีข้อจํากัดที่แตกต่างกันตามการใช้งานคีย์ การอัปเดตหรือแทนที่คีย์ในแอปบนอุปกรณ์เคลื่อนที่ (Android และ iOS) มีความซับซ้อนที่สุด เนื่องจากแทนที่คีย์ทั้งหมดไม่ได้จนกว่าลูกค้าจะอัปเดตแอปของตนทั้งหมด การอัปเดตหรือแทนที่คีย์ในแอป JavaScript หรือ Web Service จะตรงไปตรงมากว่ามาก แต่การอัปเดตหรือการเปลี่ยนคีย์เหล่านี้อาจยังต้องใช้การวางแผนอย่างรอบคอบและต้องดําเนินการอย่างรวดเร็ว

แนวทางปฏิบัติด้านความปลอดภัยที่ใช้กับผลิตภัณฑ์ Google Maps Platform แต่ละรายการ เช่น Maps JavaScript API แสดงอยู่ในส่วนข้อมูลเพิ่มเติม

จํากัดคีย์ API

เมื่อสร้างคีย์ API เป็นครั้งแรก ให้จํากัดคีย์ด้วยข้อจํากัดของแอปพลิเคชันและข้อจํากัดด้าน API อย่างน้อย 1 รายการ

  • ข้อจํากัดแอปพลิเคชันจะจํากัดการใช้งานคีย์ API ในแพลตฟอร์มหนึ่งๆ (Android หรือ iOS) หรือเว็บไซต์ใดเว็บไซต์หนึ่ง (ที่อยู่ IP และเว็บไซต์สาธารณะ) คุณเพิ่มการจํากัดแอปพลิเคชันได้เพียงประเภทเดียวลงในคีย์ API แต่ละรายการ

  • การจํากัด API จํากัดการใช้คีย์ API สําหรับ Google Maps Platform API หรือ SDK อย่างน้อย 1 รายการ ระบบจะประมวลผลเฉพาะคําขอที่ใช้ API หรือ SDK ที่เชื่อมโยงกับคีย์ API เท่านั้น สําหรับคีย์ API ใดก็ตาม คุณสามารถระบุข้อจํากัด API ได้มากเท่าที่ต้องการ

หากไม่รักษาความปลอดภัยคีย์ API เมื่อสร้างคีย์ ให้สร้างคีย์ API เพิ่มเติมและจํากัดคีย์เหล่านั้น จากนั้นจึงอัปเดตแอปทั้งหมดด้วยคีย์ API ใหม่ แม้ว่าคีย์ 1 คีย์ต่อแอปพลิเคชันจะเหมาะกับวัตถุประสงค์ด้านความปลอดภัย แต่คุณสามารถใช้คีย์ที่จํากัดในหลายๆ แอปได้ ตราบใดที่ประเภทของข้อจํากัดของแอปบนคีย์ไม่ทําให้เกิดปัญหาความเข้ากันไม่ได้กับแอปที่แชร์คีย์

หากคุณจํากัดคีย์ API หลังจากที่สร้างขึ้นแล้ว ให้ตรวจสอบการใช้คีย์ API เพื่อให้มั่นใจว่าข้อจํากัดจะไม่รบกวนแอปที่มีอยู่

  1. ไปที่หน้าเมตริกของ Google Cloud Console

  2. เลือกแสดงตัวกรอง

  3. เลือกข้อมูลรับรองจากจัดกลุ่มตาม คุณจะเห็นคีย์ API ที่ใช้กับบริการ Google

  4. คลิกข้อมูลเข้าสู่ระบบ

  5. ยกเลิกการเลือกข้อมูลเข้าสู่ระบบทั้งหมด

  6. สําหรับคีย์แต่ละรายการที่แสดง ให้เลือกคีย์แล้วคลิกตกลง

  7. เลือก API จาก Grouped By คุณจะเห็นข้อจํากัดของ API ที่จะใช้กับคีย์

    การเลือกเมธอด API จากGrouped by อาจให้ข้อมูลเกี่ยวกับประเภทการจํากัดแอปพลิเคชันที่เหมาะกับคีย์มากที่สุด

กําหนดข้อจํากัดแอปพลิเคชันสําหรับคีย์ API

  1. ไปที่หน้าข้อมูลเข้าสู่ระบบ
  2. เลือกคีย์ API ที่ต้องการตั้งค่าข้อจํากัด หน้าคีย์คีย์ API จะปรากฏขึ้น

  3. เลือกการจํากัดแอปพลิเคชันในส่วนการจํากัดคีย์

    เลือกข้อจํากัดประเภทใดประเภทหนึ่งและ ให้ข้อมูลที่ขอตามรายการข้อจํากัด

    ประเภทข้อจํากัด คำอธิบาย
    ผู้อ้างอิง HTTP ระบุเว็บไซต์อ้างอิงอย่างน้อย 1 เว็บไซต์ อักขระไวลด์การ์ดยอมรับได้สําหรับการให้สิทธิ์โดเมนย่อยทั้งหมด (เช่น *.google.com ยอมรับทุกเว็บไซต์ที่ลงท้ายด้วย .google.com) ระบุ https:// และ http:// ตามเดิม คุณต้องใช้พิเศษแทนโปรโตคอล URL ผู้อ้างอิงประเภทอื่นๆ เช่น จัดรูปแบบ file:///path/to/ เป็น __file_url__//path/to/* หลังจากเปิดใช้ผู้อ้างอิงแล้ว โปรดตรวจสอบการใช้งานว่าเป็นไปตามความคาดหวังของคุณ ระบบรองรับโปรโตคอลผู้อ้างอิงต่อไปนี้: about://, app://, applewebdata://, asset://, chrome://, content://, file://, ftp://, ionic://, local://, ms-appx://, ms-appx-web://, ms-local-stream://, prism://, qrc://, res://, saphtmlp://
    ที่อยู่ IP ระบุที่อยู่ IPv4 หรือ IPv6 หรือซับเน็ตโดยใช้รูปแบบ CIDR เนื่องจากคําขอบริการทางเว็บของเว็บมีการตรวจสอบและเปรียบเทียบที่อยู่ IP ภายนอกกับข้อจํากัดของคีย์ API โปรดใช้ที่อยู่ IP สาธารณะของเซิร์ฟเวอร์
    แอป Android เพิ่มลายนิ้วมือสําหรับใบรับรองการลงนาม SHA-1 และชื่อแพ็กเกจ Android จากไฟล์ AndroidManifest.xml
    แอป iOS ใต้ประเภท ให้เลือกตัวระบุกลุ่ม iOS ที่เหมาะสมจากรายการ
  4. เลือกบันทึก

กําหนดข้อจํากัดของ API สําหรับคีย์ API

  1. ไปที่หน้าข้อมูลเข้าสู่ระบบ

  2. เลือกคีย์ API ที่ต้องการจํากัด หน้าจํากัดและเปลี่ยนชื่อคีย์ API จะปรากฏขึ้น

  3. ในส่วนข้อจํากัดของ API ให้ทําดังนี้

    • คลิกจํากัดคีย์

    • คลิกเมนูแบบเลื่อนลงเลือก API แล้วเลือก API หรือ SDK ที่คุณต้องการให้แอปพลิเคชันเข้าถึงโดยใช้คีย์ API

      (หากไม่มี API หรือ SDK อยู่ในรายการ คุณต้องเปิดใช้)

  4. คลิกบันทึก

    ข้อจํากัดนี้จะเป็นส่วนหนึ่งของคําจํากัดความของคีย์ API หลังจากขั้นตอนนี้ หากไม่ให้รายละเอียดที่เหมาะสมหรือไม่คลิก "บันทึก" ระบบจะไม่จํากัดคีย์ API (ดูข้อมูลเพิ่มเติมได้จากคู่มือรับคีย์ API สําหรับ API หรือ SDK เฉพาะที่คุณสนใจ)

ลบคีย์ API ที่ไม่ได้ใช้

ก่อนที่จะลบคีย์ API โปรดตรวจสอบว่าคีย์ไม่ได้ใช้ในเวอร์ชันที่ใช้งานจริง หากไม่มีการเข้าชมที่สําเร็จ ก็มีแนวโน้มที่จะลบคีย์ได้

วิธีลบคีย์ API

  1. ไปที่หน้าข้อมูลเข้าสู่ระบบ

  2. เลือกคีย์ API ที่ต้องการลบ

  3. เลือกปุ่มลบใกล้ด้านบนสุดของหน้า

  4. เมื่อกล่องโต้ตอบลบข้อมูลเข้าสู่ระบบปรากฏขึ้น ให้เลือกลบ

    การลบคีย์ API จะใช้เวลา 2-3 นาทีจึงจะมีผล หลังจากเผยแพร่แล้ว การรับส่งข้อมูลที่ใช้คีย์ API ที่ลบไปแล้วจะถูกปฏิเสธ

วิธีอื่นๆ ในการรักษาความปลอดภัย API ของคุณ

โปรดระมัดระวังเมื่อสร้างคีย์ API ใหม่

การสร้างคีย์ API ใหม่จะสร้างคีย์ใหม่ที่มีข้อจํากัดทั้งหมดของคีย์เก่า ซึ่งจะเป็นการเริ่มจับเวลา 24 ชั่วโมงเพื่อปิดใช้งานคีย์ API เก่าด้วย

ในช่วงเวลานี้ ระบบจะยอมรับทั้งคีย์เก่าและคีย์ใหม่เพื่อให้คุณมีโอกาสย้ายแอปไปใช้คีย์ใหม่ แต่แอปที่ยังคงใช้คีย์ API เดิมอยู่จะหยุดทํางานเมื่อผ่านช่วงเวลานี้ไป

  1. ไปที่หน้าคีย์ API

  2. เลือกเปลี่ยนกลับเป็นคีย์ก่อนหน้า

  3. ในกล่องโต้ตอบเปลี่ยนกลับ ให้คลิกเปลี่ยนกลับ

เมื่อย้อนกลับ คีย์เก่าและใหม่จะกลายเป็นเวอร์ชันก่อนหน้านี้ และระบบจะตั้งตัวจับเวลาการปิดใช้งานใหม่เป็นเวลา 24 ชั่วโมง คุณสลับค่าคีย์ 2 รายการนี้ได้จนกว่าคุณจะสร้างคีย์อีกครั้ง

การสร้างรูปแบบใหม่นี้เป็นการเขียนทับค่าคีย์เก่าที่ไม่มีการใช้งาน

ตรวจสอบการใช้งาน API

วิธีตรวจสอบการใช้งานคีย์ API

  1. ไปที่หน้าเมตริก

  2. คลิกแสดงตัวกรอง

  3. เลือกเมธอด API จากจัดกลุ่มตาม

  4. ในส่วน Response code ให้เลือก 2xx เพื่อดูคําขอที่สําเร็จสําหรับคีย์นี้

หากคุณตรวจพบการใช้งานที่ไม่ได้รับอนุญาต ให้ทําตามขั้นตอนต่อไปนี้

  1. จํากัดคีย์ของคุณ

    หากมีการใช้คีย์เดียวกันในหลายแอป ให้ย้ายข้อมูลไปยังคีย์ API หลายรายการ แนะนําให้ใช้คีย์ API ที่แยกกันสําหรับแต่ละแอป

  2. หากการใช้งานที่ไม่ได้รับอนุญาตยังคงเกิดขึ้น ให้สร้างใหม่หรือลบคีย์ที่ได้รับผลกระทบ

  3. ติดต่อทีมสนับสนุน

ใช้คีย์ API ที่แยกกันสําหรับแต่ละแอป

การดำเนินการนี้จะจำกัดขอบเขตของแต่ละคีย์ หากคีย์ API ถูกบุกรุก คุณจะลบหรือสร้างคีย์ที่ได้รับผลกระทบอีกครั้งได้โดยไม่ต้องอัปเดตคีย์ API อื่นๆ

ย้ายข้อมูลไปยังคีย์ API หลายรายการ

หากต้องการย้ายข้อมูลจากการใช้คีย์ API 1 รายการสําหรับแอปหลายรายการ ให้เปลี่ยนไปใช้คีย์ API ที่ไม่ซ้ํา 1 รายการของแอปแต่ละรายการ โดยทําตามขั้นตอนต่อไปนี้

  1. ระบุแอปที่จะต้องใช้คีย์ใหม่

    • เว็บแอปนั้นอัปเดตได้ง่ายที่สุด เนื่องจากคุณควบคุมโค้ดทั้งหมด วางแผนอัปเดตแอปบนเว็บทั้งหมดด้วยคีย์ #39
    • แอปบนอุปกรณ์เคลื่อนที่ยากขึ้นมาก เนื่องจากลูกค้าต้องอัปเดตแอปก่อน จึงจะใช้คีย์ใหม่ได้
  2. สร้างและจํากัดคีย์ใหม่

    • เพิ่มทั้งการจํากัดแอปพลิเคชันและการจํากัด API อย่างน้อย 1 รายการ
  3. เพิ่มคีย์ใหม่ลงในแอปต่างๆ

    • สําหรับแอปบนอุปกรณ์เคลื่อนที่ กระบวนการนี้อาจใช้เวลา 2-3 เดือนเพื่อให้ผู้ใช้ทั้งหมดอัปเดตเป็นแอปล่าสุดด้วยคีย์ API ใหม่

วิธีการปกป้องแอป Maps Web Service API หรือ Static Web API

  • จัดเก็บคีย์ API และข้อมูลลับในการลงชื่อภายนอกซอร์สโค้ดของแอปพลิเคชัน หากคุณใส่คีย์ API หรือข้อมูลส่วนตัวอื่นๆ ไว้ในตัวแปรสภาพแวดล้อม หรือรวมไฟล์ที่จัดเก็บแยกต่างหากแล้วแชร์โค้ด คีย์ API หรือข้อมูลลับในการลงนามจะไม่รวมอยู่ในไฟล์ที่แชร์

  • จัดเก็บคีย์ API หรือลงชื่อข้อมูลลับในไฟล์นอกโครงสร้างแอปพลิเคชันของคุณ หากคุณจัดเก็บคีย์ API หรือข้อมูลส่วนตัวอื่นๆ ไว้ในไฟล์ ให้เก็บไฟล์ไว้นอกโครงสร้างต้นทางของแอปพลิเคชันเพื่อป้องกันไม่ให้คีย์ออกจากระบบการควบคุมซอร์สโค้ด ข้อมูลนี้สําคัญอย่างยิ่งหากคุณใช้ระบบจัดการซอร์สโค้ดสาธารณะ เช่น GitHub

API บริการเว็บ API แบบคงที่หรือ API เว็บบนอุปกรณ์เคลื่อนที่แบบคงที่

  • ใช้พร็อกซีเซิร์ฟเวอร์ พร็อกซีเซิร์ฟเวอร์เป็นแหล่งข้อมูลที่มั่นคงสําหรับการโต้ตอบกับ Google Maps Platform API ที่เหมาะสม ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้พร็อกซีเซิร์ฟเวอร์ได้ที่การใช้ชีวิตอย่างมีชีวิตชีวา: การใช้พร็อกซีเซิร์ฟเวอร์กับไคลเอ็นต์ Google Data API

  • สร้างความสับสนหรือเข้ารหัสคีย์ API หรือลงชื่อในข้อมูลลับ ซึ่งทําให้การคัดลอกคีย์ API และข้อมูลส่วนตัวอื่นๆ โดยตรงจากแอปพลิเคชันทําได้ยากขึ้น

ข้อมูลเพิ่มเติม

ตารางเหล่านี้แสดงข้อจํากัดคีย์ API ที่เหมาะสม และแนวทางปฏิบัติแนะนําด้านความปลอดภัยของ API สําหรับ Google Maps Platform API, SDK หรือบริการแต่ละอย่าง

เว็บไซต์ที่มี Maps JavaScript, ฝังหรือ API แบบคงที่

API/SDK/บริการ ข้อจํากัดแอปพลิเคชัน (1) การจํากัด API (1) แนวทางปฏิบัติแนะนำ
Maps JavaScript API (2) ข้อจํากัดผู้อ้างอิง HTTP Maps JavaScript API
บริการเส้นทาง, Maps JavaScript API ข้อจํากัดผู้อ้างอิง HTTP Directions API, Maps JavaScript API
บริการเมทริกซ์ระยะทาง, Maps JavaScript API ข้อจํากัดผู้อ้างอิง HTTP API เมทริกซ์ระยะทาง, Maps JavaScript API
บริการระดับความสูง, Maps JavaScript API ข้อจํากัดผู้อ้างอิง HTTP Elevation API, Maps JavaScript API
บริการการเข้ารหัสพิกัดภูมิศาสตร์, Maps JavaScript API ข้อจํากัดผู้อ้างอิง HTTP Geocoding API, Maps JavaScript API
Places Library, Maps JavaScript API ข้อจํากัดผู้อ้างอิง HTTP Places API, Maps JavaScript API
Maps ฝัง API ข้อจํากัดผู้อ้างอิง HTTP Maps Embed API
Maps Static API ข้อจํากัดผู้อ้างอิง HTTP Maps Static API
API แบบคงที่ของ Street View ข้อจํากัดผู้อ้างอิง HTTP Street View Static API

แอปและเซิร์ฟเวอร์ที่ใช้บริการเว็บ

API/SDK/บริการ ข้อจํากัดแอปพลิเคชัน (1) การจํากัด API (1) แนวทางปฏิบัติแนะนำ
Directions API การจํากัดที่อยู่ IP(4) Directions API
API เมทริกซ์ระยะทาง การจํากัดที่อยู่ IP(4) Distance Matrix API
Elevation API การจํากัดที่อยู่ IP(4) Elevation API
API การระบุพิกัดทางภูมิศาสตร์ การจํากัดที่อยู่ IP(4) Geocoding API
API ตําแหน่งทางภูมิศาสตร์ การจํากัดที่อยู่ IP(4) Geolocation API
Places API (5) การจํากัดที่อยู่ IP(4) Places API
Roads API การจํากัดที่อยู่ IP(4) Roads API
API เขตเวลา การจํากัดที่อยู่ IP(4) Time Zone API

แอป Android

API/SDK/บริการ ข้อจํากัดแอปพลิเคชัน (1) การจํากัด API (1) แนวทางปฏิบัติแนะนำ
Maps SDK สําหรับ Android ข้อจํากัดของ Android Maps SDK สำหรับ Android
SDK ของ Places สําหรับ Android ข้อจํากัดของ Android Places API

แอป iOS

API/SDK/บริการ ข้อจํากัดแอปพลิเคชัน (1) การจํากัด API (1) แนวทางปฏิบัติแนะนำ
Maps SDK สําหรับ iOS ข้อจํากัดสําหรับ iOS Maps SDK สำหรับ iOS
Places สําหรับ iOS ข้อจํากัดสําหรับ iOS Places API

1 คุณสามารถใช้คีย์ API ที่ไม่จํากัด กับ Google Maps Platform API หรือ SDK ใดก็ได้ อย่างไรก็ตาม เราขอแนะนําให้คุณจํากัดคีย์ API โดยเฉพาะในกรณีต่อไปนี้

  • สภาพแวดล้อมการทดสอบจะเปิดเผยต่อสาธารณะ

  • แอปพลิเคชันที่ใช้คีย์ API พร้อมใช้งานในสภาพแวดล้อมการใช้งานจริง

2 สําหรับแอปพลิเคชันบนอุปกรณ์เคลื่อนที่ ให้ลองใช้ Maps SDK สําหรับ Android โดยเฉพาะและ Maps SDK สําหรับ iOS

3 สําหรับคีย์ Maps Static API และ Street View Static API นอกเหนือจากคีย์ API คุณต้องระบุลายเซ็นดิจิทัลเพื่อให้เกินโควต้ารายวันของการโหลดแผนที่ 25,000 ครั้ง

หากคุณลงนามในคําขอ ให้ตรวจสอบจํานวนคําขอที่ไม่ได้ลงนามซึ่งต้องการอนุญาตต่อวัน แล้วปรับโควต้าคําขอที่ไม่ได้ลงนามให้สอดคล้องกัน

4 การจํากัด IP อาจไม่สามารถทําได้ในบางสถานการณ์ เช่น ในแอปพลิเคชันบนอุปกรณ์เคลื่อนที่และสภาพแวดล้อมในระบบคลาวด์ที่อาศัยที่อยู่ IP แบบไดนามิก เมื่อใช้ Maps Web Service API ในฉากเหล่านี้ ให้รักษาความปลอดภัยของแอปโดยใช้พร็อกซีเซิร์ฟเวอร์หรือการสร้างความสับสน

5 สําหรับแอปพลิเคชันบนอุปกรณ์เคลื่อนที่ ให้พิจารณาใช้ Places SDK สําหรับ Android และ Places SDK สําหรับ iOS