แอปและโปรเจ็กต์ที่ใช้ API และ SDK ของ Google Maps Platform ต้องใช้คีย์ API หรือ OAuth 2.0 (หากรองรับ) เพื่อตรวจสอบสิทธิ์
แนวทางปฏิบัติแนะนำเหล่านี้จะแสดงวิธีรักษาความปลอดภัยในการเข้าถึง Maps Platform
หากต้องการใช้ OAuth 2.0 เพื่อให้สิทธิ์การเข้าชมแบบเซิร์ฟเวอร์ต่อเซิร์ฟเวอร์ ให้มองหาหัวข้อ OAuth ในเอกสารประกอบของ API ดูรายละเอียดเพิ่มเติมได้ที่ใช้ OAuth สำหรับแอปฝั่งเซิร์ฟเวอร์
นอกเหนือจากการใช้ข้อจำกัดของแอปพลิเคชันและคีย์ API แล้ว ให้ปฏิบัติตามแนวทางปฏิบัติด้านความปลอดภัยที่ใช้กับผลิตภัณฑ์ Google Maps Platform ที่เฉพาะเจาะจง ตัวอย่างเช่น ดู Maps JavaScript API ด้านล่างในข้อจำกัดของแอปพลิเคชันและ API ที่แนะนำ
หากมีการใช้คีย์ API อยู่แล้ว โปรดอ่านคำแนะนำด้านล่างในส่วนหากคุณจำกัดคีย์ API ที่ใช้งานอยู่
ดูรายละเอียดเพิ่มเติมเกี่ยวกับลายเซ็นดิจิทัลที่ Maps Static API และ Street View Static API รองรับได้ที่คู่มือลายเซ็นดิจิทัล
แนวทางปฏิบัติแนะนำ
เพื่อเพิ่มความปลอดภัยและหลีกเลี่ยงการเรียกเก็บเงินสำหรับการใช้งานที่ไม่ได้รับอนุญาต ให้ทำตามแนวทางปฏิบัติแนะนำด้านความปลอดภัยของ API ต่อไปนี้สำหรับ API, SDK หรือบริการทั้งหมดของ Google Maps Platform
แนะนำสำหรับการใช้คีย์ API ทั้งหมด
ใช้คีย์ API แยกกันสำหรับแต่ละแอป
โปรดระมัดระวังเมื่อหมุนเวียนคีย์ API
แยกการใช้งานฝั่งไคลเอ็นต์และฝั่งเซิร์ฟเวอร์ออกเป็นโปรเจ็กต์แยกต่างหาก
คำแนะนำเพิ่มเติมสำหรับแอปฝั่งไคลเอ็นต์
การเรียกใช้เว็บเซอร์วิสฝั่งไคลเอ็นต์ที่ปลอดภัย
คำแนะนำเพิ่มเติมสำหรับเว็บไซต์หรือแอปฝั่งไคลเอ็นต์ที่ใช้ Static Web API
ปกป้องการใช้งาน Static Web API
คำแนะนำเพิ่มเติมสำหรับแอปฝั่งเซิร์ฟเวอร์ที่ใช้บริการบนเว็บ
ปกป้องคีย์ API ของบริการบนเว็บ
ใช้ OAuth สำหรับแอปฝั่งเซิร์ฟเวอร์
หากคุณกำลังจำกัดหรือหมุนเวียนคีย์ API ที่ใช้งานอยู่
ก่อนเปลี่ยนคีย์ API ให้ตรวจสอบการใช้งานคีย์ API ขั้นตอนนี้สำคัญอย่างยิ่งหากคุณกำลังเพิ่มข้อจำกัดสำหรับคีย์ที่ใช้งานอยู่แล้วในแอปพลิเคชันเวอร์ชันที่ใช้งานจริง
หลังจากเปลี่ยนคีย์แล้ว ให้อัปเดตแอปทั้งหมดด้วยคีย์ API ใหม่ตามความจำเป็น
หากคีย์ API ของคุณไม่ถูกบุกรุกและไม่ได้ถูกละเมิดอย่างต่อเนื่อง คุณสามารถย้ายข้อมูลแอปไปยังคีย์ API ใหม่หลายคีย์ได้ตามต้องการ โดยปล่อยคีย์ API เดิมไว้โดยไม่ต้องแตะต้องจนกว่าคุณจะสังเกตเห็นการเข้าชมเพียงประเภทเดียว และคีย์ API จะถูกจำกัดอย่างปลอดภัยด้วยการจำกัดแอปพลิเคชันประเภทเดียวโดยไม่ทำให้เกิดการหยุดชะงักของบริการโดยไม่ตั้งใจ
ดูวิธีการเพิ่มเติมได้ที่หัวข้อย้ายข้อมูลไปยังคีย์ API หลายรายการ
ตรวจสอบการใช้งานเมื่อเวลาผ่านไป และดูว่า API, ประเภทแพลตฟอร์ม และโดเมนที่เฉพาะเจาะจงย้ายออกจากคีย์ API เก่าเมื่อใดก่อนที่คุณจะเลือกจำกัดหรือลบคีย์เก่า ดูข้อมูลเพิ่มเติมได้ที่การรายงานและการตรวจสอบและเมตริก
หากคีย์ API ของคุณถูกบุกรุก คุณควรดำเนินการอย่างรวดเร็วเพื่อรักษาความปลอดภัยของคีย์ API และหยุดการละเมิด ในแอป Android และแอป iOS ระบบจะไม่แทนที่คีย์จนกว่าลูกค้าจะอัปเดตแอป การอัปเดตหรือแทนที่คีย์ในหน้าเว็บหรือในแอปฝั่งเซิร์ฟเวอร์นั้นตรงไปตรงมามากกว่า แต่ก็ยังอาจต้องมีการวางแผนอย่างรอบคอบและการทำงานที่รวดเร็ว
ดูข้อมูลเพิ่มเติมได้ที่จัดการการใช้คีย์ API โดยไม่ได้รับอนุญาต
ข้อมูลเพิ่มเติม
ข้อจำกัดของแอปพลิเคชันและ API ที่แนะนำ
จำกัดคีย์ API
แนวทางปฏิบัติแนะนำคือจำกัดคีย์ API ด้วยข้อจำกัดของแอปพลิเคชัน 1 ประเภทและข้อจำกัด API อย่างน้อย 1 รายการเสมอ ดูข้อจำกัดที่แนะนำตาม API, SDK หรือบริการ JavaScript ได้ที่ข้อจำกัดของแอปพลิเคชันและ API ที่แนะนำด้านล่าง
ข้อจำกัดของแอปพลิเคชัน คุณสามารถจำกัดการใช้คีย์ API ไว้เฉพาะบางแพลตฟอร์มได้ เช่น แอปพลิเคชัน Android หรือ iOS หรือเว็บไซต์ที่เฉพาะเจาะจงสำหรับแอปพลิเคชันฝั่งไคลเอ็นต์ หรือที่อยู่ IP หรือเครือข่ายย่อย CIDR ที่เฉพาะเจาะจงสำหรับแอปฝั่งเซิร์ฟเวอร์ที่ทำการเรียก REST API ของบริการบนเว็บ
คุณจำกัดคีย์ได้โดยเพิ่มข้อจำกัดของแอปพลิเคชันอย่างน้อย 1 รายการในประเภทที่ต้องการให้สิทธิ์ หลังจากนั้นจะอนุญาตเฉพาะคำขอที่มาจากแหล่งที่มาเหล่านี้เท่านั้น
ข้อจำกัดของ API คุณสามารถจำกัด API, SDK หรือบริการของ Google Maps Platform ที่ใช้คีย์ API ของคุณได้ ข้อจำกัดของ API จะอนุญาตเฉพาะคำขอไปยัง API และ SDK ที่คุณระบุเท่านั้น คุณสามารถระบุข้อจำกัด API ได้มากเท่าที่ต้องการสำหรับคีย์ API หนึ่งๆ รายการ API ที่ใช้ได้จะรวม API ทั้งหมดที่เปิดใช้ในโปรเจ็กต์
ตั้งค่าข้อจำกัดของแอปพลิเคชันสำหรับคีย์ API
เปิดหน้าข้อมูลเข้าสู่ระบบ Google Maps Platform ในคอนโซล Google Cloud
เลือกคีย์ API ที่ต้องการจำกัด
ในหน้าแก้ไขคีย์ API ให้เลือกตั้งค่าข้อจำกัดของแอปพลิเคชันในส่วนข้อจำกัดของคีย์

เลือกประเภทข้อจำกัดอย่างใดอย่างหนึ่งและระบุข้อมูลที่ขอตามรายการข้อจำกัด
ประเภทข้อจำกัด คำอธิบาย เว็บไซต์ ระบุเว็บไซต์ที่มาอย่างน้อย 1 เว็บไซต์ - สคีม URI ของ URL ที่มาซึ่งรองรับโดยทั่วไปคือ
httpsและhttpส่วนรูปแบบอื่นๆ ไม่รับประกันว่าจะทำงานได้อย่างถูกต้อง เนื่องจากเว็บเบราว์เซอร์สมัยใหม่จะไม่ส่งส่วนหัว `Referer` ในคำขอขาออกด้วยเหตุผลด้านความเป็นส่วนตัว - ระบุสตริง URL ที่มาทั้งหมดเสมอ ซึ่งรวมถึงรูปแบบโปรโตคอล ชื่อโฮสต์ และพอร์ตที่ไม่บังคับ (เช่น
https://google.com) - คุณสามารถใช้อักขระไวลด์การ์ดเพื่อให้สิทธิ์โดเมนย่อยทั้งหมดได้ เช่น
https://*.google.comยอมรับเว็บไซต์ทั้งหมดที่ลงท้ายด้วย.google.com - โปรดระมัดระวังเมื่อให้สิทธิ์ผู้แนะนำแบบเส้นทางเต็ม เช่น
https://google.com/some/pathเนื่องจากเว็บเบราว์เซอร์ส่วนใหญ่จะตัดเส้นทางออกจากคำขอแบบข้ามต้นทางด้วยเหตุผลด้านความเป็นส่วนตัว
ที่อยู่ IP ระบุที่อยู่ IPv4 หรือ IPv6 อย่างน้อย 1 รายการ หรือซับเน็ตโดยใช้รูปแบบ CIDR ที่อยู่ IP ต้องตรงกับที่อยู่ต้นทางที่เซิร์ฟเวอร์ Google Maps Platform ตรวจพบ หากคุณใช้การเปลี่ยนค่าที่อยู่เครือข่าย (NAT) โดยทั่วไปที่อยู่นี้จะตรงกับที่อยู่ IP สาธารณะของเครื่อง แอป Android เพิ่มชื่อแพ็กเกจ Android (จากไฟล์
AndroidManifest.xml) และลายนิ้วมือของใบรับรองการลงนาม SHA-1 ของแอปพลิเคชัน Android แต่ละรายการที่คุณต้องการให้สิทธิ์- เลือกแอป Android
- คลิก + เพิ่ม
- ป้อนชื่อแพ็กเกจและลายนิ้วมือของใบรับรอง SHA-1 เช่น
com.example.android.mapexample
BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:91:AF:A1:66:6E:44:5D:75
- คลิกบันทึก
ใบรับรองมี 2 ประเภท ได้แก่
- ใบรับรองสำหรับการแก้ไขข้อบกพร่อง: ใช้ใบรับรองประเภทนี้กับแอปที่คุณกำลังทดสอบและโค้ดอื่นๆ ที่ไม่ใช่เวอร์ชันที่ใช้งานจริงเท่านั้น อย่าพยายามเผยแพร่แอปที่ลงนามด้วยใบรับรองสำหรับการแก้ไขข้อบกพร่อง เครื่องมือ Android SDK จะสร้างใบรับรองนี้โดยอัตโนมัติเมื่อคุณเรียกใช้บิลด์การแก้ไขข้อบกพร่อง
- ใบรับรองสำหรับการเผยแพร่: ใช้ใบรับรองนี้เมื่อคุณพร้อมที่จะเผยแพร่แอปไปยัง App Store เครื่องมือ Android SDK จะสร้างใบรับรองนี้เมื่อคุณเรียกใช้บิลด์ที่เผยแพร่
ดูข้อมูลเพิ่มเติมเกี่ยวกับการรับรองและใบรับรองแอปพลิเคชัน Android ได้ที่คู่มือการรับรองแอป
หากใช้ Play App Signing ให้ดูหัวข้อการทำงานร่วมกับผู้ให้บริการ API เพื่อดึงข้อมูลลายนิ้วมือของใบรับรองการรับรอง หากคุณจัดการคีย์ Signing ของตนเอง โปรดดูหัวข้อการรับรองแอปพลิเคชันด้วยตนเองหรือดูวิธีการสำหรับสภาพแวดล้อมของบิลด์
แอป iOS เพิ่มรหัสชุดซอฟต์แวร์ของแอปพลิเคชัน iOS แต่ละแอปที่คุณต้องการให้สิทธิ์
- เลือกแอป iOS
- คลิก + เพิ่ม
- เพิ่มรหัสชุดเพื่อยอมรับคำขอจากแอป iOS ที่มีรหัสดังกล่าว
- คลิกบันทึก
ดูคำแนะนำเกี่ยวกับข้อจำกัดของแอปพลิเคชันได้ที่หัวข้อข้อจำกัดของแอปพลิเคชันที่แนะนำ
- สคีม URI ของ URL ที่มาซึ่งรองรับโดยทั่วไปคือ
เลือกบันทึก
ตั้งค่าข้อจำกัด API สำหรับคีย์ API
เปิดหน้าข้อมูลเข้าสู่ระบบ Google Maps Platform ในคอนโซล Google Cloud
เลือกคีย์ API ที่ต้องการจำกัด
ในหน้าแก้ไขคีย์ API ในส่วนข้อจำกัดของ API ให้ทำดังนี้
เลือกจำกัดคีย์
เปิดเลือก API แล้วเลือก API หรือ SDK ที่ต้องการให้แอปพลิเคชันเข้าถึงโดยใช้คีย์ API
หาก API หรือ SDK ไม่อยู่ในรายการ คุณต้องเปิดใช้ โปรดดูรายละเอียดที่หัวข้อวิธีเปิดใช้ API หรือ SDK อย่างน้อย 1 รายการ

เลือกบันทึก
ข้อจำกัดจะกลายเป็นส่วนหนึ่งของคำจำกัดความคีย์ API หลังจากขั้นตอนนี้ ตรวจสอบว่าคุณได้ระบุรายละเอียดที่เหมาะสม แล้วเลือกบันทึกเพื่อบันทึกข้อจำกัดของคีย์ API ดูข้อมูลเพิ่มเติมได้ที่คู่มือรับคีย์ API ในเอกสารประกอบสำหรับ API หรือ SDK ที่คุณสนใจ
ดูข้อจำกัด API ที่แนะนำได้ที่ข้อจำกัด API ที่แนะนำ
ตรวจสอบการใช้งานคีย์ API
หากคุณจำกัดคีย์ API หลังจากสร้างคีย์แล้ว หรือต้องการดูว่าคีย์ใช้ API ใดอยู่เพื่อจำกัดคีย์เหล่านั้น คุณจะต้องตรวจสอบการใช้งานคีย์ API ขั้นตอนเหล่านี้จะแสดงบริการและเมธอด API ที่มีการใช้คีย์ API หากคุณเห็นการใช้งานนอกเหนือจากบริการของ Google Maps Platform ให้ตรวจสอบเพื่อพิจารณาว่าคุณจำเป็นต้องเพิ่มข้อจำกัดเพื่อหลีกเลี่ยงการใช้งานที่ไม่พึงประสงค์หรือไม่ คุณสามารถใช้เครื่องมือสำรวจเมตริกใน Cloud Console ของ Google Maps Platform เพื่อช่วยพิจารณาว่าจะใช้ข้อจำกัด API และแอปพลิเคชันใดกับคีย์ API ของคุณ
ระบุ API ที่ใช้คีย์ API ของคุณ
รายงานเมตริกต่อไปนี้ช่วยให้คุณระบุได้ว่า API ใดใช้คีย์ API ของคุณอยู่ ใช้รายงานเหล่านี้เพื่อทำสิ่งต่อไปนี้
- ดูวิธีใช้คีย์ API
- ตรวจหาการใช้งานที่ไม่คาดคิด
- ช่วยยืนยันว่าคีย์ที่ไม่ได้ใช้ปลอดภัยที่จะลบหรือไม่ ดูข้อมูลเกี่ยวกับการลบคีย์ API ได้ที่หัวข้อลบคีย์ API ที่ไม่ได้ใช้
เมื่อใช้ข้อจำกัด API ให้ใช้รายงานเหล่านี้เพื่อสร้างรายการ API ที่จะให้สิทธิ์ หรือเพื่อตรวจสอบคำแนะนำข้อจำกัดของคีย์ API ที่สร้างขึ้นโดยอัตโนมัติ ดูข้อมูลเพิ่มเติมเกี่ยวกับข้อจำกัดที่แนะนำได้ที่ใช้ข้อจำกัดที่แนะนำ ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้เครื่องมือสำรวจเมตริกได้ที่สร้างแผนภูมิด้วยเครื่องมือสำรวจเมตริก
ไปที่ Metrics Explorer ของคอนโซล Google Cloud
ลงชื่อเข้าใช้และเลือกโปรเจ็กต์สำหรับคีย์ API ที่ต้องการตรวจสอบ
ไปที่หน้าเครื่องมือสำรวจเมตริกสำหรับประเภท API ของคุณ
สำหรับคีย์ API ที่ใช้ API ใดก็ตามยกเว้น Maps Embed API: ไปที่หน้าเครื่องมือสำรวจเมตริก
สำหรับคีย์ API ที่ใช้ Maps Embed API: ไปที่เครื่องมือสำรวจเมตริก
ตรวจสอบคีย์ API แต่ละรายการโดยทำดังนี้
เลือกเพิ่มตัวกรอง
เลือกป้ายกำกับ
credential_idเลือกค่าที่สอดคล้องกับคีย์ที่ต้องการตรวจสอบ
โปรดสังเกตว่ามีการใช้คีย์ API นี้กับ API ใด และยืนยันว่าการใช้งานเป็นไปตามที่คาดไว้
เมื่อเสร็จแล้ว ให้เลือกนำตัวกรองออก ที่ท้ายบรรทัดตัวกรองที่ใช้งานอยู่เพื่อลบตัวกรองเพิ่มเติม
ทำซ้ำสำหรับคีย์ที่เหลือ
จำกัดคีย์ API ให้ใช้ได้เฉพาะกับ API ที่กำลังใช้งานอยู่
หากพบการใช้งานที่ไม่ได้รับอนุญาต โปรดดูหัวข้อจัดการการใช้งานคีย์ API ที่ไม่ได้รับอนุญาต
เลือกประเภทข้อจำกัดของแอปพลิเคชันที่ถูกต้องโดยใช้เครื่องมือสำรวจเมตริก
หลังจากยืนยันและดำเนินการที่จำเป็นเพื่อให้แน่ใจว่าคีย์ API ของคุณใช้สำหรับบริการ Google Maps Platform ที่ใช้อยู่เท่านั้น ให้ยืนยันด้วยว่าคีย์ API มีข้อจำกัดของแอปพลิเคชันที่ถูกต้อง
หากคีย์ API มีข้อจำกัดคีย์ API ที่แนะนำ ให้ใช้ข้อจำกัดดังกล่าว ดูข้อมูลเพิ่มเติมได้ที่ใช้ข้อจำกัดคีย์ API ที่แนะนำ
หากคีย์ API ไม่มีคำแนะนำเกี่ยวกับข้อจำกัด ให้พิจารณาประเภทข้อจำกัดของแอปพลิเคชันที่จะใช้ โดยอิงตาม platform_type ที่รายงานโดยใช้เครื่องมือสำรวจเมตริก ดังนี้
ไปที่ Metrics Explorer ของคอนโซล Google Cloud
ลงชื่อเข้าใช้และเลือกโปรเจ็กต์สำหรับ API ที่ต้องการตรวจสอบ
ไปที่หน้า Metrics explorer นี้: Metrics explorer
ตรวจสอบคีย์ API แต่ละรายการโดยทำดังนี้
เลือกเพิ่มตัวกรอง
เลือกป้ายกำกับ
credential_idเลือกค่าที่สอดคล้องกับคีย์ที่ต้องการตรวจสอบ
เมื่อเสร็จแล้ว ให้เลือกนำตัวกรองออก ที่ท้ายบรรทัดตัวกรองที่ใช้งานอยู่เพื่อลบตัวกรองเพิ่มเติม
ทำซ้ำสำหรับคีย์ที่เหลือ
เมื่อคุณมีประเภทแพลตฟอร์มสำหรับคีย์ API แล้ว ให้ใช้ข้อจำกัดของแอปพลิเคชันสำหรับ
platform_typeดังกล่าวPLATFORM_TYPE_JS: ใช้ข้อจำกัดเว็บไซต์กับคีย์PLATFORM_TYPE_ANDROID: ใช้ข้อจำกัดของแอปพลิเคชัน Android กับคีย์PLATFORM_TYPE_IOS: ใช้ข้อจำกัดของแอปพลิเคชัน iOS กับคีย์PLATFORM_TYPE_WEBSERVICE: คุณอาจต้องใช้การจำกัดที่อยู่ IP ในคีย์เพื่อจำกัดคีย์อย่างเหมาะสมดูคำแนะนำสำหรับ Maps Static API และ Street View Static API ได้ที่ปกป้องการใช้งาน Static Web API
ดูคำแนะนำเกี่ยวกับ Maps Embed API ได้ที่เว็บไซต์ที่มี Maps Embed API
คีย์ API ของฉันใช้แพลตฟอร์มหลายประเภท: การเข้าชมของคุณจะไม่ได้รับการรักษาความปลอดภัยอย่างเหมาะสมด้วยคีย์ API เพียงคีย์เดียว คุณต้องย้ายข้อมูลไปยังคีย์ API หลายรายการ ดูข้อมูลเพิ่มเติมได้ที่ย้ายข้อมูลไปยังคีย์ API หลายรายการ
ใช้คีย์ API แยกกันสำหรับแต่ละแอป
แนวทางปฏิบัตินี้จะจำกัดขอบเขตของคีย์แต่ละรายการ หากคีย์ API รายการหนึ่งถูกบุกรุก คุณสามารถลบหรือหมุนเวียนคีย์ที่ได้รับผลกระทบได้โดยไม่ต้องอัปเดตคีย์ API อื่นๆ คุณสร้างคีย์ API ได้สูงสุด 300 คีย์ต่อโปรเจ็กต์ ดูข้อมูลเพิ่มเติมได้ที่ขีดจำกัดของคีย์ API
แม้ว่าคีย์ API 1 คีย์ต่อแอปพลิเคชันจะเหมาะอย่างยิ่งเพื่อวัตถุประสงค์ด้านความปลอดภัย แต่คุณสามารถใช้คีย์ที่จำกัดกับแอปหลายแอปได้ ตราบใดที่แอปเหล่านั้นใช้ข้อจำกัดของแอปพลิเคชันประเภทเดียวกัน
ใช้ข้อจำกัดคีย์ API ที่แนะนำ
สำหรับเจ้าของโปรเจ็กต์ ผู้แก้ไข และผู้ดูแลระบบคีย์ API บางราย คอนโซล Google Cloud จะแนะนำข้อจำกัดคีย์ API ที่เฉพาะเจาะจงสำหรับคีย์ API ที่ไม่จำกัด โดยอิงตามการใช้งานและกิจกรรมใน Google Maps Platform
หากมี คำแนะนำจะปรากฏเป็นตัวเลือกที่กรอกข้อมูลล่วงหน้าในหน้าข้อมูลเข้าสู่ระบบ Google Maps Platform
API และ SDK ของ Google Maps Platform ที่รองรับคำแนะนำอัตโนมัติ
Maps JavaScript API ซึ่งรวมถึง บริการเส้นทาง (เดิม) บริการเมทริกซ์ระยะทาง (เดิม) บริการระดับความสูง บริการการเข้ารหัสพิกัดภูมิศาสตร์ คลาส Place วิดเจ็ต Place Autocomplete (ใหม่) Data API สำหรับ Place Autocomplete Places Library บริการ Places วิดเจ็ต Place Autocomplete และ Places UI Kit
Maps Static API และ Street View Static API
Maps Embed API
Maps SDK สำหรับ Android, Navigation SDK สำหรับ Android, Places SDK สำหรับ Android และ Places UI Kit บน Android
Maps SDK สำหรับ iOS, Navigation SDK สำหรับ iOS, Places SDK สำหรับ iOS, Places Swift SDK สำหรับ iOS และ Places UI Kit บน iOS
สาเหตุที่คุณอาจไม่เห็นคำแนะนำหรือเห็นคำแนะนำที่ไม่สมบูรณ์
สาเหตุที่ไม่เห็นวิดีโอแนะนำ
คุณกำลังใช้คีย์ API ในบริการอื่นนอกเหนือจาก Google Maps Platform หรือบริการของ Maps Platform ที่ยังไม่รองรับคำแนะนำอัตโนมัติ
หากเห็นการใช้งานในบริการอื่นๆ อย่าใช้คำแนะนำโดยที่ยังไม่ได้ทำสิ่งต่อไปนี้
ยืนยันว่าการใช้งาน API ที่คุณเห็นใน Metrics Explorer ของคอนโซล Google Cloud นั้นถูกต้องตามกฎหมาย
เพิ่มบริการที่ขาดหายไปลงในรายการ API ที่จะให้สิทธิ์ด้วยตนเอง
เพิ่มข้อจำกัดของแอปพลิเคชันที่ขาดหายไปสำหรับบริการที่เพิ่มลงในรายการ API ด้วยตนเอง หากคีย์อื่นๆ ที่เพิ่มเข้ามาต้องใช้ข้อจำกัดแอปพลิเคชันประเภทอื่น โปรดดูหัวข้อย้ายข้อมูลไปยังคีย์ API หลายรายการ
ไม่มีการใช้คีย์ API ใน SDK หรือ API ฝั่งไคลเอ็นต์
คุณใช้คีย์ API ในแอปหรือเว็บไซต์ที่มีปริมาณการใช้งานต่ำซึ่งไม่มีการใช้งานในช่วง 60 วันที่ผ่านมา
คุณเพิ่งสร้างคีย์ใหม่เมื่อเร็วๆ นี้ หรือเพิ่งติดตั้งใช้งานคีย์ที่มีอยู่ในแอปใหม่ หากเป็นกรณีนี้ ให้รออีก 2-3 วันเพื่อให้ระบบอัปเดตคำแนะนำ
คุณกำลังใช้คีย์ API ในแอปพลิเคชันหลายรายการที่ต้องใช้ข้อจำกัดของแอปพลิเคชันประเภทที่ขัดแย้งกัน หรือคุณกำลังใช้คีย์ API เดียวกันในแอปหรือเว็บไซต์ที่แตกต่างกันมากเกินไป ไม่ว่าในกรณีใด แนวทางปฏิบัติแนะนำคือคุณควรย้ายข้อมูลไปยังคีย์หลายรายการ ดูรายละเอียดเพิ่มเติมได้ที่หัวข้อย้ายข้อมูลไปยังคีย์ API หลายรายการ
สาเหตุที่เห็นคำแนะนำที่ไม่สมบูรณ์
คุณใช้คีย์ API ในแอปหรือเว็บไซต์ที่มีปริมาณการใช้งานต่ำซึ่งไม่มีการใช้งานในช่วง 60 วันที่ผ่านมา
คุณเพิ่งเริ่มใช้คีย์ที่มีอยู่กับ API หรือบริการใหม่เมื่อไม่นานมานี้ และไปป์ไลน์คำแนะนำการจำกัดคีย์ API อัตโนมัติยังไม่ได้ประมวลผลเมตริกการใช้งานที่อัปเดต การเผยแพร่เมตริกการใช้งานอาจใช้เวลา 2-3 วัน
หากเห็นการใช้งานในบริการอื่นๆ อย่าใช้คำแนะนำโดยที่ยังไม่ได้ทำสิ่งต่อไปนี้
ยืนยันว่าการใช้งาน API ที่คุณเห็นใน Metrics Explorer ของคอนโซล Google Cloud นั้นถูกต้องตามกฎหมาย
เพิ่มบริการที่ขาดหายไปลงในรายการ API ที่จะให้สิทธิ์ด้วยตนเอง
เพิ่มข้อจำกัดของแอปพลิเคชันที่ขาดหายไปสำหรับบริการที่เพิ่มลงในรายการ API ด้วยตนเอง หากคีย์อื่นๆ ที่เพิ่มเข้ามาต้องใช้ข้อจำกัดแอปพลิเคชันประเภทอื่น โปรดดูหัวข้อย้ายข้อมูลไปยังคีย์ API หลายรายการ
คุณอาจรอ 1-2 วันเพื่อให้คำแนะนำอัปเดต เว้นแต่ว่าคุณจำเป็นต้องจำกัดคีย์อย่างเร่งด่วน เช่น เนื่องจากมีการใช้งานโดยไม่ได้รับอนุญาต
สาเหตุที่คุณอาจเห็นคำแนะนำที่ไม่ปรากฏในแผนภูมิ
แอปหรือเว็บไซต์ของคุณส่งการเข้าชมที่เพิ่มขึ้นอย่างรวดเร็วในระยะเวลาสั้นๆ เท่านั้น ในกรณีนี้ ให้เปลี่ยนจากมุมมองแผนภูมิเพื่อแสดงตารางหรือทั้ง 2 อย่าง เนื่องจากการใช้งานจะยังคงปรากฏในคำอธิบาย ดูข้อมูลเพิ่มเติมได้ที่การสลับคำอธิบายแผนภูมิแบบเต็ม
การเข้าชมของคุณมาจาก Maps Embed API ดูวิธีการได้ที่หัวข้อระบุ API ที่ใช้คีย์ API ของคุณ
การเข้าชมจากแอปหรือเว็บไซต์อยู่นอกช่วงวันที่ที่ใช้ได้ในเครื่องมือสำรวจเมตริกของคอนโซล Google Cloud
วิธีใช้ข้อจำกัดที่แนะนำ
เปิดหน้าข้อมูลเข้าสู่ระบบ Google Maps Platform ในคอนโซล Google Cloud
หากมี ให้เลือกใช้ข้อจำกัดที่แนะนำ

เลือกตรวจสอบการใช้งาน API เพื่อยืนยันว่ามีการใช้คีย์ API กับบริการใดบ้าง หากเห็นบริการอื่นนอกเหนือจากบริการของ Google Maps Platform ให้หยุดชั่วคราวเพื่อตรวจสอบขั้นตอนการแนะนำข้างต้นด้วยตนเอง ดูขั้นตอนการแก้ปัญหาที่ตอนต้นของส่วนใช้ข้อจำกัดคีย์ API ที่แนะนำ
ตรวจสอบอีกครั้งว่าข้อจำกัดที่กรอกข้อมูลล่วงหน้าตรงกับเว็บไซต์และแอปที่คุณคาดว่าจะใช้คีย์ API
แนวทางปฏิบัติแนะนำ: บันทึกและนำข้อจำกัดของแอปพลิเคชันหรือ API ที่ไม่เกี่ยวข้องกับบริการของคุณออก หากมีสิ่งใดเสียหายเนื่องจากการขึ้นต่อกันที่ไม่คาดคิด คุณสามารถเพิ่มแอปหรือ API ที่จำเป็นกลับเข้าไปได้
หากคุณทราบว่าแอป เว็บไซต์ หรือ API ใดหายไปจากคำแนะนำอย่างชัดเจน ให้เพิ่มด้วยตนเองหรือรอ 2-3 วันเพื่อให้คำแนะนำอัปเดต
หากต้องการความช่วยเหลือเพิ่มเติมเกี่ยวกับคำแนะนำที่ได้รับ โปรดติดต่อทีมสนับสนุน
เลือกใช้
สิ่งที่ควรทำหากใบสมัครถูกปฏิเสธหลังจากใช้คำแนะนำ
หากสังเกตเห็นว่าแอปหรือเว็บไซต์ถูกปฏิเสธหลังจากใช้ข้อจำกัด ให้มองหาข้อจำกัดของแอปพลิเคชันที่คุณต้องเพิ่มในข้อความแสดงข้อผิดพลาดในการตอบกลับจาก API
SDK และ API ฝั่งไคลเอ็นต์
- แอปที่ใช้เบราว์เซอร์และ WebView
โดยทั่วไปแล้ว เบราว์เซอร์ที่ทันสมัยจะปกปิดส่วนหัว
Refererในคำขอแบบข้ามต้นทางเนื่องจากเหตุผลด้านความเป็นส่วนตัว โดยมักจะตัดส่วนหัวดังกล่าวออกให้เหลือเพียงOriginอย่างไรก็ตาม ลักษณะการทำงานที่แน่นอนจะขึ้นอยู่กับreferrer-policyที่ใช้ของเว็บไซต์ที่โฮสต์ และอาจแตกต่างกันไปตามเบราว์เซอร์และเวอร์ชันของผู้ใช้โดยทั่วไปแล้ว เว็บแอปพลิเคชันที่ใช้สคีม URI แบบทึบหรือแบบภายในเครื่องเพื่อโหลดเนื้อหาจะทำให้เบราว์เซอร์หรือ WebView ที่แสดงผลปกปิดส่วนหัว
Refererจากสายโทรออกทั้งหมด ซึ่งอาจทำให้คำขอไม่สำเร็จเมื่อใช้คีย์ API ที่มีข้อจำกัดของเว็บไซต์ดูคำแนะนำเพิ่มเติมได้ที่โฮสต์แอปที่ใช้เบราว์เซอร์บนเซิร์ฟเวอร์
วิธีการแก้ปัญหาสำหรับแอปที่ใช้เบราว์เซอร์และ WebView
สำหรับ Maps JavaScript API โปรดดูรายละเอียดเกี่ยวกับวิธีให้สิทธิ์แอปพลิเคชันในคอนโซลดีบักของเบราว์เซอร์
ระบบรองรับสคีม URI ที่ไม่ค่อยพบเห็นบางส่วน หากบางส่วนของแอปพลิเคชันไม่ทำงานในสคีม URI ที่ไม่คุ้นเคย แม้ว่าจะให้สิทธิ์ผู้แนะนำที่จำเป็นแล้วก็ตาม คุณอาจต้องโฮสต์แอปพลิเคชันจากระยะไกลบนเซิร์ฟเวอร์และโหลดผ่าน HTTPS (หรือ HTTP)
หากต้องการความช่วยเหลือเกี่ยวกับสคีม URI ที่ไม่คุ้นเคย โปรดติดต่อทีมสนับสนุน
โดยทั่วไปแล้ว Maps Platform API อื่นๆ จะแสดง URL ที่มาซึ่งคุณต้องให้สิทธิ์ในการตอบกลับข้อผิดพลาดของ API โดยถือว่าไคลเอ็นต์ส่งข้อมูลนี้พร้อมกับคำขอที่ถูกปฏิเสธ
ไม่รองรับสคีม URI ที่ไม่เป็นที่รู้จัก
- แอป Android
ใช้ Android Debug Bridge (adb) หรือ Logcat
- แอป iOS
แอปที่เรียกใช้บริการบนเว็บโดยตรง
สำหรับแอปพลิเคชันที่เรียกใช้ HTTPS REST API ของ Maps Platform หรือปลายทาง gRPC โดยตรงโดยไม่มี SDK ของ Google Maps Platform ฝั่งไคลเอ็นต์ โปรดดูด้านล่าง
- แอป Android และ iOS
หากแอปพลิเคชัน Android หรือ iOS เรียกใช้บริการ Maps Platform โดยตรงโดยไม่ใช้ SDK ของไคลเอ็นต์ Google Maps Platform ที่มีอยู่ โปรดดูเคล็ดลับการแก้ปัญหาเพิ่มเติมที่หัวข้อแอป Android และแอป iOS รวมถึงการเรียกใช้บริการเว็บฝั่งไคลเอ็นต์ที่ปลอดภัยเพื่อดูแนวทางปฏิบัติแนะนำด้านความปลอดภัยในปัจจุบันสำหรับกรณีการใช้งานบนอุปกรณ์เคลื่อนที่
หากแอปบันทึกการตอบกลับข้อผิดพลาดของ Maps Platform API วิธีการข้างต้นสำหรับ SDK ฝั่งไคลเอ็นต์อาจเป็นประโยชน์ในการแก้ปัญหาการตรวจสอบสิทธิ์ด้วย
- แอปฝั่งเซิร์ฟเวอร์
แอปพลิเคชันฝั่งเซิร์ฟเวอร์ที่ใช้คีย์ API จะปลอดภัยที่สุดเมื่อใช้การจำกัดที่อยู่ IP หากคุณใช้การจำกัดที่อยู่ IP กับคีย์ และบันทึกบริการของคุณบันทึกการตอบกลับข้อผิดพลาดของ Maps Platform API ให้ตรวจสอบบันทึกของระบบเพื่อดูข้อมูลเพิ่มเติม การตอบกลับข้อผิดพลาดจะมีที่อยู่ IP ของเซิร์ฟเวอร์ที่คุณต้องให้สิทธิ์
- แอปที่ใช้เบราว์เซอร์หรือ WebView
แม้ว่า Maps Static API, Street View Static API และ API อื่นๆ ที่ใหม่กว่าของ Google Maps Platform จะรองรับข้อจำกัดเกี่ยวกับ URL ที่มาด้วย แต่โปรดทราบว่าเว็บเบราว์เซอร์หรือ WebView มีแนวโน้มที่จะจำกัดส่วนหัว
Refererไว้ที่Originสำหรับคำขอแบบข้ามต้นทาง และมีแนวโน้มที่จะไม่ส่งส่วนหัวดังกล่าวเลย เช่น สำหรับทรัพยากรที่เข้าถึงในเครื่อง หรือสำหรับทรัพยากรที่แสดงผ่านโปรโตคอลอื่นที่ไม่ใช่ HTTP หรือ HTTPSหากคุณใช้ Maps JavaScript API ในแอปพลิเคชันไม่ได้ และข้อจำกัดของเว็บไซต์ใช้ไม่ได้ผล โปรดดูวิธีเรียกใช้เว็บเซอร์วิสของ Maps Platform อย่างปลอดภัยจากภายในแอปพลิเคชันฝั่งไคลเอ็นต์บนเบราว์เซอร์ ในหัวข้อรักษาความปลอดภัยให้กับการเรียกใช้เว็บเซอร์วิสฝั่งไคลเอ็นต์
เคล็ดลับในการตรวจสอบข้อจำกัดของ API
หากต้องการตรวจสอบข้อจำกัด API ที่จำเป็น โปรดดูหัวข้อระบุ API ที่ใช้คีย์ API ของคุณ
หากไม่แน่ใจว่าควรใช้ข้อจำกัดใด ให้ทำดังนี้
- บันทึกข้อจำกัดปัจจุบันไว้เพื่อใช้อ้างอิงในอนาคต
- นำออกชั่วคราวขณะตรวจสอบปัญหา คุณสามารถตรวจสอบการใช้งานเมื่อเวลาผ่านไปได้โดยทำตามขั้นตอนในหัวข้อตรวจสอบการใช้งานคีย์ API
- และติดต่อทีมสนับสนุนหากจำเป็น
ลบคีย์ API ที่ไม่ได้ใช้
ก่อนลบคีย์ API โปรดตรวจสอบว่าไม่มีการใช้คีย์ดังกล่าวในเวอร์ชันที่ใช้งานจริง หากไม่มีการเข้าชมที่สำเร็จ แสดงว่าคีย์นั้นน่าจะปลอดภัยที่จะลบ ดูข้อมูลเพิ่มเติมได้ที่ตรวจสอบการใช้งานคีย์ API
วิธีลบคีย์ API
เปิดหน้าข้อมูลเข้าสู่ระบบ Google Maps Platform ในคอนโซล Google Cloud
เลือกคีย์ API ที่ต้องการลบ
เลือกปุ่มลบบริเวณด้านบนของหน้า
ในหน้าลบข้อมูลเข้าสู่ระบบ ให้เลือกลบ
การลบคีย์ API จะใช้เวลาสักครู่ในการเผยแพร่ หลังจากเผยแพร่เสร็จสมบูรณ์แล้ว ระบบจะปฏิเสธการเข้าชมที่ใช้คีย์ API ที่ถูกลบ
โปรดระมัดระวังเมื่อหมุนเวียนคีย์ API
การหมุนเวียนคีย์ API จะสร้างคีย์ใหม่ที่มีข้อจำกัดทั้งหมดของคีย์เดิม ในช่วงเวลานี้ ระบบจะยอมรับทั้งคีย์เก่าและคีย์ใหม่ เพื่อให้คุณมีโอกาสย้ายข้อมูลแอปไปใช้คีย์ใหม่
ก่อนหมุนเวียนคีย์ API ให้ทำดังนี้
ขั้นแรก ให้ลองจำกัดคีย์ API ตามที่อธิบายไว้ในจำกัดคีย์ API
หากจำกัดคีย์ API ไม่ได้เนื่องจากประเภทข้อจำกัดของแอปพลิเคชันขัดแย้งกัน ให้ย้ายข้อมูลไปยังคีย์ใหม่ (ที่จำกัด) หลายคีย์ตามที่อธิบายไว้ในหัวข้อย้ายข้อมูลไปยังคีย์ API หลายคีย์ การย้ายข้อมูลช่วยให้คุณควบคุมการย้ายข้อมูลและไทม์ไลน์การเปิดตัวไปยังคีย์ API ใหม่ได้
หากไม่สามารถทำตามคำแนะนำก่อนหน้านี้ได้ และคุณต้องหมุนเวียนคีย์ API เพื่อป้องกันการใช้งานที่ไม่ได้รับอนุญาต ให้ทำตามขั้นตอนต่อไปนี้
เปิดหน้าข้อมูลเข้าสู่ระบบ Google Maps Platform ในคอนโซล Google Cloud
เปิดคีย์ API ที่ต้องการหมุนเวียน
เลือกหมุนเวียนคีย์ที่ด้านบนของหน้า
เปลี่ยนชื่อคีย์ API (ไม่บังคับ)
เลือกสร้าง
อัปเดตแอปพลิเคชันเพื่อใช้คีย์ใหม่
หลังจากอัปเดตแอปพลิเคชันให้ใช้คีย์ใหม่แล้ว ให้ลบคีย์เก่าโดยคลิกปุ่มลบคีย์ก่อนหน้าในส่วนคีย์ก่อนหน้าของหน้าคีย์ API ใหม่
ย้ายข้อมูลไปยังคีย์ API หลายรายการ
หากต้องการย้ายข้อมูลจากการใช้คีย์ API เดียวสำหรับหลายแอปไปเป็นคีย์ API ที่ไม่ซ้ำกันรายการเดียวสำหรับแต่ละแอป ให้ทำดังนี้
ระบุแอปที่ต้องใช้คีย์ใหม่
- เว็บแอปเป็นแอปที่อัปเดตได้ง่ายที่สุด เนื่องจากคุณควบคุมโค้ดทั้งหมดได้ วางแผนที่จะอัปเดตคีย์ของแอปบนเว็บทั้งหมด
- แอปบนอุปกรณ์เคลื่อนที่จะทำได้ยากกว่ามาก เนื่องจากลูกค้าต้องอัปเดตแอปก่อนจึงจะใช้คีย์ใหม่ได้
สร้างและจำกัดคีย์ใหม่: เพิ่มทั้งข้อจำกัดของแอปพลิเคชันและข้อจำกัด API อย่างน้อย 1 รายการ ดูข้อมูลเพิ่มเติมได้ที่แนวทางปฏิบัติแนะนำที่แนะนำ
เพิ่มคีย์ใหม่ลงในแอป: สำหรับแอปบนอุปกรณ์เคลื่อนที่ กระบวนการนี้อาจใช้เวลาหลายเดือนจนกว่าผู้ใช้ทั้งหมดจะอัปเดตเป็นแอปเวอร์ชันล่าสุดที่มีคีย์ API ใหม่
แยกการใช้งานฝั่งไคลเอ็นต์และฝั่งเซิร์ฟเวอร์ออกเป็นโปรเจ็กต์แยกกัน
หากต้องการเรียกใช้บริการ Google Maps Platform ทั้งจากแอปพลิเคชันฝั่งเซิร์ฟเวอร์และจากแอปพลิเคชันฝั่งไคลเอ็นต์ที่ทำงานบนอุปกรณ์ของผู้ใช้ปลายทางโดยตรง Google ขอแนะนำให้แบ่งการใช้งานออกเป็น 2 โปรเจ็กต์แยกกัน
วิธีนี้ช่วยให้คุณใช้ขีดจำกัดโควต้าต่อนาทีต่อผู้ใช้ที่เหมาะสมกับบริการ Google Maps Platform ส่วนใหญ่ในโปรเจ็กต์ฝั่งไคลเอ็นต์ได้ ซึ่งจะช่วยให้มั่นใจว่าผู้ใช้ปลายทางทุกคนจะได้รับโควต้าโปรเจ็กต์โดยรวมอย่างเท่าเทียมกันโดยไม่ส่งผลกระทบต่อกัน
อย่างไรก็ตาม เนื่องจากข้อจำกัดโควต้าต่อผู้ใช้ส่งผลต่อทั้งแอปพลิเคชันฝั่งไคลเอ็นต์และฝั่งเซิร์ฟเวอร์ หากคุณต้องการแบนด์วิดท์สูงสำหรับงานฝั่งเซิร์ฟเวอร์ด้วย ให้ตั้งค่าโปรเจ็กต์แยกต่างหากสำหรับกรณีการใช้งานนี้ โดยกำหนดค่าด้วยขีดจำกัดโควต้าต่อผู้ใช้ที่สูงขึ้น หรือไม่มีขีดจำกัดเลย
ปิดใช้บริการที่ไม่ได้ใช้
อย่าเปิดใช้บริการที่ไม่ได้ใช้ในโปรเจ็กต์ เนื่องจากแนวทางปฏิบัตินี้เสี่ยงต่อการละเมิด โดยเฉพาะอย่างยิ่งหากคุณไม่ได้จำกัดคีย์ API สาธารณะทั้งหมด แนวทางปฏิบัติแนะนำคือให้เปิดใช้บริการในโปรเจ็กต์เมื่อแอปพลิเคชันของคุณต้องการเท่านั้น
การเพิ่มข้อจำกัด API ในคีย์จะป้องกันไม่ให้ใช้คีย์ดังกล่าวในบริการที่ไม่ได้รับอนุญาต แต่ข้อจำกัด API จะใช้กับคีย์นั้นๆ เท่านั้น ปิดใช้บริการในระดับโปรเจ็กต์เพื่อป้องกันการใช้บริการโดยไม่ได้รับอนุญาตในคีย์ใดก็ตามที่ลิงก์กับโปรเจ็กต์
ใช้ SDK ฝั่งไคลเอ็นต์
เมื่อใช้ SDK ของ Google Maps Platform ฝั่งไคลเอ็นต์ที่ให้มา คุณจะใช้ข้อจำกัดที่เหมาะสมกับคีย์ API เพื่อรักษาความปลอดภัยในการใช้บริการได้เสมอ
การใช้ SDK ฝั่งไคลเอ็นต์ยังช่วยให้คุณใช้กลไกการรักษาความปลอดภัยขั้นสูงได้มากขึ้น เช่น Firebase App Check ในแพลตฟอร์ม Maps แพลตฟอร์ม API ที่รองรับ ดูรายละเอียดเพิ่มเติมได้ที่ใช้ App Check เพื่อรักษาความปลอดภัยให้คีย์ API
หาก SDK ฝั่งไคลเอ็นต์ไม่พร้อมใช้งานสำหรับแพลตฟอร์มของคุณ โปรดดูหัวข้อรักษาความปลอดภัยให้กับการเรียกใช้เว็บเซอร์วิสฝั่งไคลเอ็นต์
ดูความพร้อมใช้งานของ SDK ของ Google Maps Platform ฝั่งไคลเอ็นต์สำหรับแพลตฟอร์มต่างๆ ได้ที่ข้อจำกัดของแอปพลิเคชันและ API ที่แนะนำ
ปกป้องการใช้งาน Static Web API
Web API แบบคงที่ เช่น Maps Static API และ Street View Static API จะคล้ายกับการเรียก API ของเว็บเซอร์วิส
คุณเรียกใช้ทั้ง 2 อย่างโดยใช้ HTTPS REST API และโดยทั่วไปคุณจะสร้าง URL คำขอ API บนเซิร์ฟเวอร์ อย่างไรก็ตาม แทนที่จะแสดงผลการตอบกลับ JSON, Static Web API จะสร้างรูปภาพที่คุณฝังในโค้ด HTML ที่สร้างขึ้นได้ ที่สำคัญกว่านั้น โดยทั่วไปแล้วไคลเอ็นต์ของผู้ใช้ปลายทางจะเป็นผู้เรียกใช้บริการ Google Maps Platform ไม่ใช่เซิร์ฟเวอร์
ใช้ลายเซ็นดิจิทัล
แนวทางปฏิบัติแนะนำคือให้ใช้ลายเซ็นดิจิทัลควบคู่ไปกับคีย์ API เสมอ นอกจากนี้ ให้ตรวจสอบจำนวนคำขอที่ไม่ได้ลงชื่อที่คุณต้องการอนุญาตต่อวัน และปรับโควต้าคำขอที่ไม่ได้ลงชื่อตามความเหมาะสม
ดูรายละเอียดเพิ่มเติมเกี่ยวกับลายเซ็นดิจิทัลได้ที่คู่มือลายเซ็นดิจิทัล
ปกป้องข้อมูลลับในการรับรอง
หากต้องการปกป้อง Static Web API อย่าฝังข้อมูลลับการรับรอง API ไว้ในโค้ดหรือในแผนผังแหล่งที่มาโดยตรง หรือเปิดเผยข้อมูลดังกล่าวในแอปพลิเคชันฝั่งไคลเอ็นต์ ทำตามแนวทางปฏิบัติแนะนำต่อไปนี้เพื่อปกป้องข้อมูลลับในการรับรอง
สร้าง URL คำขอ Maps Static API และ Street View Static API ที่ลงชื่อแล้วฝั่งเซิร์ฟเวอร์เมื่อแสดงหน้าเว็บ หรือเพื่อตอบสนองต่อคำขอจากแอปพลิเคชันบนอุปกรณ์เคลื่อนที่
สำหรับเนื้อหาเว็บแบบคงที่ คุณสามารถใช้วิดเจ็ตลงชื่อ URL เลยในหน้าข้อมูลเข้าสู่ระบบของ Google Maps Platform ใน Cloud Console
สำหรับเนื้อหาเว็บแบบไดนามิก โปรดดูตัวอย่างโค้ดการลงชื่อคำขอ URL ที่มีอยู่
จัดเก็บข้อมูลลับในการรับรองไว้นอกซอร์สโค้ดและโครงสร้างซอร์สโค้ดของแอปพลิเคชัน หากคุณใส่ข้อมูลลับในการรับรองหรือข้อมูลส่วนตัวอื่นๆ ในตัวแปรสภาพแวดล้อมหรือรวมไฟล์ที่จัดเก็บแยกต่างหากแล้วแชร์โค้ด ข้อมูลลับในการรับรองจะไม่รวมอยู่ในไฟล์ที่แชร์ หากคุณจัดเก็บข้อมูลลับในการรับรองหรือข้อมูลส่วนตัวอื่นๆ ไว้ในไฟล์ ให้เก็บไฟล์ไว้นอกแผนผังแหล่งที่มาของแอปพลิเคชันเพื่อเก็บข้อมูลลับในการรับรองไว้นอกระบบควบคุมซอร์สโค้ด ข้อควรระวังนี้สำคัญอย่างยิ่งหากคุณใช้ระบบจัดการซอร์สโค้ดสาธารณะ เช่น GitHub
ปกป้องคีย์ API ของบริการบนเว็บ
หากต้องการใช้ API และบริการของ Google Maps Platform อย่างปลอดภัยจากแอปฝั่งไคลเอ็นต์ โปรดดูหัวข้อใช้ SDK ฝั่งไคลเอ็นต์และรักษาความปลอดภัยให้กับการเรียกใช้เว็บเซอร์วิสฝั่งไคลเอ็นต์
จัดเก็บคีย์ API ไว้นอกซอร์สโค้ดหรือโครงสร้างซอร์สโค้ดของแอปพลิเคชัน หากคุณใส่คีย์ API หรือข้อมูลอื่นๆ ไว้ในตัวแปรสภาพแวดล้อมหรือรวมไฟล์ที่จัดเก็บไว้แยกต่างหาก แล้วแชร์โค้ด คีย์ API จะไม่รวมอยู่ในไฟล์ที่แชร์ ซึ่งสำคัญอย่างยิ่งหากคุณใช้ระบบการจัดการซอร์สโค้ดสาธารณะ เช่น GitHub
Google ขอแนะนำให้ใช้ข้อจำกัด API กับคีย์ที่ใช้สำหรับ Maps Platform เพื่อช่วยป้องกันไม่ให้มีการใช้คีย์ API ของบริการบนเว็บโดยไม่ตั้งใจ นอกจากนี้ การใช้ข้อจำกัดที่อยู่ IP กับคีย์บริการบนเว็บจะช่วยป้องกันการใช้งานโดยไม่ได้รับอนุญาตจากที่อยู่ IP แหล่งที่มาอื่นๆ แม้ว่าคีย์จะรั่วไหลโดยไม่ตั้งใจก็ตาม
ใช้ OAuth สำหรับแอปฝั่งเซิร์ฟเวอร์
OAuth 2.0 เป็นมาตรฐานแบบเปิดสำหรับการมอบสิทธิ์เข้าถึง
แม้ว่าโปรโตคอล OAuth 2.0 จะรองรับ Use Case ที่ผู้ใช้ปลายทางให้สิทธิ์แอปพลิเคชันเข้าถึงข้อมูลส่วนตัวในนามของตน แต่ Use Case ที่มีไว้สำหรับ OAuth 2.0 กับ Maps Platform คือให้นักพัฒนาซอฟต์แวร์ใช้โทเค็นเพื่อการเข้าถึงชั่วคราวเพื่อให้สิทธิ์แอปพลิเคชันเรียกใช้ API ในนามของบัญชีบริการของโปรเจ็กต์ Google Cloud ด้วยสิทธิ์ของบัญชีบริการ
เนื่องจากบัญชีบริการอาจมีสิทธิ์ที่กว้างมาก เราจึงขอแนะนำให้ใช้ OAuth 2.0 เพื่อให้สิทธิ์การเรียกใช้แบบเซิร์ฟเวอร์ต่อเซิร์ฟเวอร์ระหว่างแอปพลิเคชันฝั่งเซิร์ฟเวอร์ที่เชื่อถือได้ของนักพัฒนาซอฟต์แวร์กับเซิร์ฟเวอร์ Google Maps Platform
สำหรับแอปพลิเคชันฝั่งไคลเอ็นต์ที่ทำงานบนอุปกรณ์ของผู้ใช้ปลายทาง เราขอแนะนำให้ใช้วิธีการตรวจสอบสิทธิ์อื่นๆ เช่น คีย์ API
หากต้องการใช้ OAuth 2.0 เพื่อให้สิทธิ์การรับส่งข้อมูลแบบเซิร์ฟเวอร์ต่อเซิร์ฟเวอร์ ให้มองหาหัวข้อ OAuth ในเอกสารประกอบของ API
ตัวอย่างเช่น หัวข้อ OAuth สำหรับ Address Validation API
การเรียกใช้บริการเว็บฝั่งไคลเอ็นต์ที่ปลอดภัย
หาก SDK ฝั่งไคลเอ็นต์ไม่พร้อมใช้งาน โปรดดูคำแนะนำด้านล่าง
ใช้พร็อกซีเซิร์ฟเวอร์
การใช้พร็อกซีเซิร์ฟเวอร์ที่ปลอดภัยเป็นแหล่งที่มาที่เชื่อถือได้สำหรับการโต้ตอบกับปลายทางของเว็บเซอร์วิส Google Maps Platform จากแอปพลิเคชันฝั่งไคลเอ็นต์โดยไม่เปิดเผยคีย์ API, ข้อมูลลับในการลงนาม หรือบัญชีบริการ Google Cloud แก่ผู้ใช้ที่ไม่ได้รับอนุญาต
ข้อมูลสำคัญ
สร้างคำขอ Google Maps Platform บนพร็อกซีเซิร์ฟเวอร์ อย่าอนุญาตให้ไคลเอ็นต์ส่งต่อการเรียก API ที่กำหนดเองโดยใช้พร็อกซี
ประมวลผลการตอบกลับของ Google Maps Platform ในพร็อกซีเซิร์ฟเวอร์หลังการประมวลผล กรองข้อมูลที่ไคลเอ็นต์ไม่ต้องการออก
ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้พร็อกซีเซิร์ฟเวอร์ได้ที่การใช้พร็อกซีเซิร์ฟเวอร์กับไลบรารีของไคลเอ็นต์ Google Data API
การเรียกใช้บริการเว็บบนมือถือโดยตรงที่ปลอดภัย
หากไม่สามารถตั้งค่าพร็อกซีเซิร์ฟเวอร์ที่ปลอดภัยสำหรับแอปฝั่งไคลเอ็นต์ ให้รักษาความปลอดภัยของแอปพลิเคชันโดยทำตามขั้นตอนต่อไปนี้
ใช้ส่วนหัว HTTP
Android: ใช้ส่วนหัว HTTP
X-Android-PackageและX-Android-CertiOS: ใช้ส่วนหัว HTTP ของ
X-Ios-Bundle-Identifier
เพิ่มข้อจำกัดของแอปพลิเคชันที่เกี่ยวข้องลงในคีย์ Android หรือ iOS
ก่อนที่จะพิจารณาออกการเรียกใช้จากแอปพลิเคชันบนอุปกรณ์เคลื่อนที่ไปยังเว็บเซอร์วิส REST API ของ Google Maps Platform โดยตรง ให้ตรวจสอบว่าคำขอที่มีตัวระบุแอปพลิเคชัน Android หรือ iOS ไม่ถูกต้องถูกปฏิเสธ
หากปลายทางที่ทดสอบไม่รองรับข้อจำกัดของแอปพลิเคชัน Android และ iOS ทาง Google ขอแนะนำอย่างยิ่งให้คุณใช้พร็อกซีเซิร์ฟเวอร์ที่ปลอดภัยระหว่างไคลเอ็นต์อุปกรณ์เคลื่อนที่กับปลายทางของเว็บเซอร์วิส Google Maps Platform
เคล็ดลับสำหรับแอปพลิเคชัน Android
ก่อนผสานรวมแอปพลิเคชัน Android กับบริการของ Google Maps Platform ให้ตรวจสอบว่ารหัสแอปพลิเคชัน (หรือที่เรียกว่าชื่อแพ็กเกจ) มีรูปแบบที่ถูกต้อง โปรดดูรายละเอียดที่หัวข้อกำหนดค่าโมดูลแอปในเอกสารประกอบของ Android
หากต้องการส่ง
X-Android-Packageจากแอปพลิเคชันโดยตรง ให้ค้นหาโดยใช้โปรแกรมด้วยContext.getPackageName()หากต้องการส่ง
X-Android-Certโดยตรงจากแอปพลิเคชัน ให้คำนวณลายนิ้วมือ SHA-1 ที่จำเป็นของใบรับรองการลงนามแอปพลิเคชัน ซึ่งเข้าถึงได้ผ่านPackageInfo.signingInfoหากคุณให้สิทธิ์แอปพลิเคชัน Android โดยใช้คอนโซล Google Cloud โปรดทราบว่า UI คาดหวังว่าลายนิ้วมือ SHA-1 จะเป็นสตริงที่คั่นด้วยโคลอน เช่น
00:11:22:33:44:55:66:77:88:99:AA:BB:CC:DD:EE:FF:00:11:22:33อย่างไรก็ตาม เครื่องมือgcloudและ API คีย์ API คาดหวังสตริงเลขฐาน 16 ที่ไม่มีตัวคั่น
เคล็ดลับสำหรับแอปพลิเคชัน iOS
ก่อนผสานรวมแอปพลิเคชัน iOS กับบริการของ Google Maps Platform ให้ตรวจสอบว่ารหัสชุดมีรูปแบบที่ถูกต้อง
โดยปกติแล้ว คุณควรส่งรหัสชุดของชุดหลักในส่วนหัว
X-Ios-Bundle-Identifierเสมอเมื่อให้สิทธิ์แอปพลิเคชัน iOS
ดูข้อมูลเพิ่มเติมได้ที่บทความจัดการคีย์ API และใช้คีย์ API เพื่อเข้าถึง API
โฮสต์แอปที่ใช้เบราว์เซอร์บนเซิร์ฟเวอร์
เฟรมเวิร์ก เช่น Apache Cordova ช่วยให้คุณสร้างแอปแบบไฮบริดหลายแพลตฟอร์มที่ทำงานภายใน WebView ได้อย่างสะดวก อย่างไรก็ตาม เราไม่รับประกันว่าข้อจำกัดเว็บไซต์ของคีย์ API จะทำงานได้อย่างถูกต้อง เว้นแต่ว่าเว็บแอปของคุณจะโหลดโดยใช้ HTTP หรือ HTTPS จากเว็บไซต์ที่คุณควบคุมและได้รับอนุญาต
ทรัพยากรที่รวมมาด้วยซึ่งโหลดจากภายในแอปพลิเคชันแบบไฮบริดหรือเข้าถึงโดยใช้ URL ของไฟล์ในเครื่องจะป้องกันไม่ให้การให้สิทธิ์ตาม URL ที่มาทำงานในหลายกรณี เนื่องจากเครื่องมือเบราว์เซอร์ที่ขับเคลื่อน WebView จะไม่ส่งส่วนหัว Referer เพื่อหลีกเลี่ยงปัญหานี้ ให้โฮสต์เว็บแอปพลิเคชันฝั่งเซิร์ฟเวอร์ ไม่ใช่ฝั่งไคลเอ็นต์
หรือสำหรับแอปพลิเคชันบนอุปกรณ์เคลื่อนที่ ให้พิจารณาใช้ SDK ของ Google Maps Platform สำหรับ Android และ iOS แบบเนทีฟที่มีอยู่ แทนการใช้ SDK บนเว็บ
ใช้ App Check เพื่อรักษาความปลอดภัยให้คีย์ API
Maps SDK และ API บางรายการช่วยให้คุณผสานรวมกับ Firebase App Check ได้ App Check ช่วยปกป้องการเรียกใช้ Google Maps Platform จากแอปของคุณโดยการบล็อกการเข้าชมที่มาจากแหล่งที่มาอื่นที่ไม่ใช่แอปที่ถูกต้อง โดยจะตรวจสอบโทเค็นจากผู้ให้บริการเอกสารรับรอง การผสานรวมแอปกับ App Check ช่วยป้องกันคำขอที่เป็นอันตราย คุณจึงไม่ต้องเสียค่าใช้จ่ายสำหรับการเรียก API ที่ไม่ได้รับอนุญาต
วิธีการผสานรวม App Check
จัดการการใช้คีย์ API โดยไม่ได้รับอนุญาต
หากตรวจพบการใช้คีย์ API ที่ไม่ได้รับอนุญาต ให้ทำตามขั้นตอนต่อไปนี้เพื่อแก้ไขปัญหา
จำกัดคีย์: หากคุณใช้คีย์เดียวกันในแอปหลายแอป ให้ย้ายข้อมูลไปยังคีย์ API หลายรายการ และใช้คีย์ API แยกกันสำหรับแต่ละแอป ดูรายละเอียดเพิ่มเติมได้ที่หัวข้อต่อไปนี้
หากใช้ Places SDK หรือ Maps JavaScript API คุณยังสามารถใช้ App Check เพื่อรักษาความปลอดภัยให้คีย์ API ได้ด้วย
เฉพาะเปลี่ยนหรือหมุนเวียนคีย์ในกรณีต่อไปนี้
คุณตรวจพบการใช้งานที่ไม่ได้รับอนุญาตในคีย์ที่ไม่สามารถจำกัดได้หรือถูกจำกัดอยู่แล้ว และ App Check ไม่เกี่ยวข้อง
คุณต้องการดำเนินการอย่างรวดเร็วเพื่อรักษาความปลอดภัยของคีย์ API และหยุดการละเมิด แม้ว่าอาจส่งผลกระทบต่อการเข้าชมที่ถูกต้องจากแอปพลิเคชันก็ตาม
ก่อนดำเนินการต่อ โปรดอ่านข้อควรระวังเมื่อหมุนเวียนคีย์ API
หากยังพบปัญหาหรือต้องการความช่วยเหลือ โปรดติดต่อทีมสนับสนุน
ข้อจำกัดของแอปพลิเคชันและ API ที่แนะนำ
ส่วนต่อไปนี้จะแนะนำข้อจำกัดของแอปพลิเคชันและ API ที่เหมาะสมสำหรับ API, SDK หรือบริการของ Google Maps Platform แต่ละรายการ
ข้อจำกัด API ที่แนะนำ
หลักเกณฑ์ต่อไปนี้สำหรับข้อจำกัดของ API มีผลกับบริการทั้งหมดของ Google Maps Platform
จำกัดคีย์ API ให้ใช้ได้เฉพาะกับ API ที่คุณใช้ โดยมีข้อยกเว้นต่อไปนี้
หากแอปใช้ Places SDK สำหรับ Android หรือ Places SDK สำหรับ iOS ให้ให้สิทธิ์ Places API (ใหม่) หรือ Places API โดยขึ้นอยู่กับเวอร์ชัน SDK ที่คุณใช้ 1
หากแอปใช้ Maps JavaScript API ให้ให้สิทธิ์แอปในคีย์เสมอ
หากคุณใช้บริการ Maps JavaScript API ต่อไปนี้ คุณควรให้สิทธิ์ API ที่เกี่ยวข้องเหล่านี้ด้วย
บริการ ข้อจำกัดของ API Directions Service (เดิม) Directions API (เดิม) บริการเมทริกซ์ระยะทาง (เดิม) Distance Matrix API (เดิม) บริการระดับความสูง Elevation API บริการการเข้ารหัสพิกัดภูมิศาสตร์ Geocoding API คลาส Place, วิดเจ็ต Place Autocomplete (ใหม่) และ Data API ของ Place Autocomplete Places API (ใหม่)2 Places Library, Places Service และ วิดเจ็ต Place Autocomplete Places API2
1 ดูรายละเอียดเพิ่มเติมได้ในเอกสารประกอบของ Places SDK สำหรับ Android และ Places SDK สำหรับ iOS
2 หากไม่แน่ใจว่าต้องให้สิทธิ์ Places API (ใหม่) หรือ Places API (เดิม) โปรดดูเอกสารประกอบของ Maps JavaScript API
ตัวอย่างมีดังต่อไปนี้
คุณกำลังใช้ Maps SDK สำหรับ Android และ Places SDK สำหรับ Android ดังนั้นคุณจึงรวม Maps SDK สำหรับ Android และ Places API (ใหม่) เป็นข้อจำกัด API
เว็บไซต์ของคุณใช้บริการระดับความสูงของ Maps JavaScript API และ Maps Static API ดังนั้นคุณจึงเพิ่มข้อจำกัด API สำหรับ API ต่อไปนี้ทั้งหมด
- Maps JavaScript API
- Elevation API
- Maps Static API
ข้อจำกัดของแอปพลิเคชันที่แนะนำ
เว็บไซต์
สำหรับเว็บไซต์ที่ใช้บริการ Maps JavaScript API, Maps Static API หรือ Street View Static API หรือเรียกใช้บริการ Google Maps Platform ล่าสุดโดยตรงผ่าน HTTPS REST API หรือ gRPC ให้ใช้ข้อจำกัดของแอปพลิเคชันเว็บไซต์ ดังนี้
1 สำหรับแอปพลิเคชันบนมือถือ ให้พิจารณาใช้ Maps SDK สำหรับ Android และ Maps SDK สำหรับ iOS แบบเนทีฟ
2 สำหรับแอปพลิเคชันบนอุปกรณ์เคลื่อนที่ ให้พิจารณาใช้ Places SDK สำหรับ Android และ Places SDK สำหรับ iOS แบบเนทีฟ
3 ดูเพิ่มเติมที่หัวข้อปกป้องการใช้งาน Static Web API
เว็บไซต์ที่มี Maps Embed API
แม้ว่าการใช้ Maps Embed API จะไม่มีค่าใช้จ่าย แต่คุณก็ควรจำกัดคีย์ API ที่ใช้เพื่อป้องกันการละเมิดในบริการอื่นๆ
แนวทางปฏิบัติแนะนำ: สร้างคีย์ API แยกต่างหากสำหรับการใช้งาน Maps Embed API และจำกัดคีย์นี้ไว้สำหรับ Maps Embed API เท่านั้น ข้อจำกัดนี้จะช่วยรักษาความปลอดภัยของคีย์ได้อย่างเพียงพอ ซึ่งจะป้องกันไม่ให้มีการใช้คีย์โดยไม่ได้รับอนุญาตในบริการอื่นๆ ของ Google Google ขอแนะนำให้ใช้ข้อจำกัดของแอปพลิเคชันเว็บไซต์ด้วย เพื่อให้ควบคุมได้อย่างเต็มที่ว่าสามารถใช้คีย์ Maps Embed API จากที่ใดได้บ้าง
หากไม่สามารถแยกการใช้งาน Maps Embed API ไปยังคีย์ API อื่น ให้รักษาความปลอดภัยของคีย์ที่มีอยู่โดยใช้ข้อจำกัดของแอปพลิเคชันเว็บไซต์
แอปและเซิร์ฟเวอร์ที่ใช้บริการบนเว็บ
สำหรับเซิร์ฟเวอร์และแอปฝั่งไคลเอ็นต์จากเครือข่ายภายในองค์กรที่เชื่อถือได้ซึ่งใช้บริการเว็บร่วมกับคีย์ API ให้ใช้ข้อจำกัดแอปพลิเคชัน IP addresses
ใช้สำหรับแอปและเซิร์ฟเวอร์ที่ใช้ API ต่อไปนี้
4 สำหรับแอปพลิเคชันบนอุปกรณ์เคลื่อนที่ ให้พิจารณาใช้ Navigation SDK
5 หากต้องการใช้งานอุปกรณ์เคลื่อนที่อย่างปลอดภัย ให้ใช้พร็อกซีเซิร์ฟเวอร์ที่ปลอดภัย
6 สำหรับแอปพลิเคชันฝั่งไคลเอ็นต์ ให้พิจารณาใช้บริการตำแหน่งทางภูมิศาสตร์แบบเนทีฟที่แพลตฟอร์มนำเสนอ เช่น ตำแหน่งทางภูมิศาสตร์ W3C สำหรับเว็บเบราว์เซอร์, LocationManager หรือ Fused Location Provider API สำหรับ Android หรือเฟรมเวิร์ก Core Location ของ Apple สำหรับ iOS
7 สำหรับแอปพลิเคชันบนอุปกรณ์เคลื่อนที่ ให้พิจารณาใช้ Places SDK สำหรับ Android และ Places SDK สำหรับ iOS แบบเนทีฟ
8 เพื่อการใช้งานฝั่งไคลเอ็นต์อย่างปลอดภัย ให้ใช้พร็อกซีเซิร์ฟเวอร์ที่ปลอดภัย
แอป Android
สำหรับแอปใน Android ให้ใช้ข้อจำกัดของแอปพลิเคชัน Android apps ใช้สำหรับแอปที่ใช้ SDK ต่อไปนี้
นอกจากนี้ ให้ป้องกันไม่ให้มีการตรวจสอบคีย์ API โดยไม่ตั้งใจในการควบคุมเวอร์ชันโดยใช้ Secrets Gradle Plugin เพื่อแทรกข้อมูลลับจากไฟล์ในเครื่องแทนที่จะจัดเก็บไว้ในไฟล์ Manifest ของ Android
แอป iOS
สำหรับแอปใน iOS ให้ใช้ข้อจำกัดของแอปพลิเคชัน iOS apps ใช้สำหรับแอปและเซิร์ฟเวอร์ที่ใช้ SDK ต่อไปนี้
อ่านเพิ่มเติม
- จัดการคีย์ API
- ใช้คีย์ API เพื่อเข้าถึง API
- เพิ่มประสิทธิภาพการใช้งาน Google Maps Platform ด้วยโควต้า (วิดีโอ)
- วิธีสร้างและจำกัดคีย์ API สำหรับ Google Maps Platform (วิดีโอ)
- การจำกัดคีย์ API
- การรักษาความปลอดภัยคีย์ API เมื่อใช้ Static Maps API และ Street View API
- แนวทางปฏิบัติแนะนำ 15 ข้อสำหรับ Google Maps Platform