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

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

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

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

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

จํากัดคีย์ API

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

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

  • ข้อจํากัด API จํากัดการใช้คีย์ API ไม่เกิน API หรือ SDK ของ Google Maps Platform อย่างน้อย 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 คุณจะเห็นข้อจํากัด API ที่จะใช้กับคีย์

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

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

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

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

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

    ประเภทการจํากัด คำอธิบาย
    URL ที่มา HTTP ระบุเว็บไซต์อ้างอิงอย่างน้อย 1 เว็บไซต์ อักขระไวลด์การ์ดยอมรับการให้สิทธิ์โดเมนย่อยทั้งหมด (เช่น *.google.com ยอมรับทุกเว็บไซต์ที่ลงท้ายด้วย .google.com) ระบุ https:// และ http:// ตามเดิม คุณต้องใช้การนําเสนอพิเศษสําหรับโปรโตคอล URL ผู้อ้างอิงประเภทอื่นๆ เช่น จัดรูปแบบ file:///path/to/ เป็น __file_url__//path/to/* หลังจากที่เปิดใช้ URL ที่มาแล้ว อย่าลืมตรวจสอบการใช้งานเพื่อให้มั่นใจว่าตรงกับความคาดหวังของคุณ ระบบรองรับโปรโตคอลผู้อ้างอิงต่อไปนี้ 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 จะต้องเปิดใช้ API)

  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 รายการนี้ได้จนกว่าคุณจะสร้างคีย์อีกครั้ง

การสร้างรายการที่ 2 นี้จะแทนที่ค่าคีย์เก่าที่ไม่มีการใช้งาน

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

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

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

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

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

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

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

  1. จํากัดคีย์

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Web Service API หรือ Static Web API สําหรับแอปบนอุปกรณ์เคลื่อนที่

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

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

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

API/SDK/บริการ ข้อจํากัดแอปพลิเคชัน (1) การจํากัด API (1) แนวทางปฏิบัติแนะนำ
Maps JavaScript API (2) ข้อจํากัดการอ้างอิง HTTP Maps JavaScript API
บริการเส้นทาง, Maps JavaScript API ข้อจํากัดการอ้างอิง HTTP 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 API การเข้ารหัสภูมิศาสตร์, Maps JavaScript API
สถานที่ใน Maps, Maps JavaScript API ข้อจํากัดการอ้างอิง HTTP Places API, Maps JavaScript API
Maps ฝัง API ข้อจํากัดการอ้างอิง HTTP Maps Embed API
Maps Static API ข้อจํากัดการอ้างอิง HTTP Maps Static API
Street View Static API ข้อจํากัดการอ้างอิง HTTP Street View Static API

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

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

แอป Android

API/SDK/บริการ ข้อจํากัดแอปพลิเคชัน (1) การจํากัด API (1) แนวทางปฏิบัติแนะนำ
Maps SDK สําหรับ Android ข้อจํากัดของ Android Maps SDK สำหรับ Android
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 API แบบคงที่และ Street View Static นอกเหนือจากคีย์ API คุณยังต้องระบุลายเซ็นดิจิทัลเพื่อให้เกินโควต้ารายวันของการโหลดแผนที่ 25,000 ครั้ง

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

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

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