แอปและโปรเจ็กต์ที่ใช้ Google Maps Platform API และ SDK ต้องใช้คีย์ API หรือ OAuth 2.0 (หากรองรับ) เพื่อตรวจสอบสิทธิ์
แนวทางปฏิบัติแนะนำเหล่านี้จะแสดงวิธีรักษาความปลอดภัยในการเข้าถึงแพลตฟอร์ม Maps
หากต้องการใช้ OAuth 2.0 เพื่อให้สิทธิ์การรับส่งข้อมูลแบบเซิร์ฟเวอร์ต่อเซิร์ฟเวอร์ ให้ค้นหาหัวข้อ OAuth ในเอกสารประกอบของ API ดูรายละเอียดเพิ่มเติมได้ที่ใช้ OAuth สําหรับแอปฝั่งเซิร์ฟเวอร์
นอกเหนือจากการใช้ข้อจำกัดแอปพลิเคชันและคีย์ API แล้ว โปรดปฏิบัติตามแนวทางการรักษาความปลอดภัยที่มีผลกับผลิตภัณฑ์ Google Maps Platform บางรายการ ตัวอย่างเช่น ดู Maps JavaScript API ด้านล่างในส่วนข้อจำกัดที่แนะนำสำหรับแอปพลิเคชันและ API
หากมีการใช้คีย์ API อยู่แล้ว โปรดดูคําแนะนําด้านล่างในส่วนหากคุณกําลังจํากัดคีย์ API ที่ใช้อยู่
ดูรายละเอียดเพิ่มเติมเกี่ยวกับลายเซ็นดิจิทัลที่ Maps Static API และ Street View Static API รองรับได้ที่คู่มือลายเซ็นดิจิทัล
แนวทางปฏิบัติแนะนำ
โปรดปฏิบัติตามแนวทางปฏิบัติแนะนำด้านความปลอดภัยของ API เหล่านี้สำหรับ Google Maps Platform API, SDK หรือบริการทั้งหมด เพื่อเพิ่มความปลอดภัยและหลีกเลี่ยงการเรียกเก็บเงินจากการใช้งานที่ไม่ได้รับอนุญาต
แนะนำสำหรับการใช้งานคีย์ API ทั้งหมด
ใช้คีย์ API แยกกันสำหรับแต่ละแอป
โปรดระมัดระวังเมื่อหมุนเวียนคีย์ API
แยกการใช้งานฝั่งไคลเอ็นต์และฝั่งเซิร์ฟเวอร์ออกเป็นโปรเจ็กต์แยกกัน
คําแนะนําเพิ่มเติมสําหรับแอปฝั่งไคลเอ็นต์
การเรียกใช้บริการเว็บฝั่งไคลเอ็นต์ที่ปลอดภัย
คําแนะนําเพิ่มเติมสําหรับเว็บไซต์หรือแอปฝั่งไคลเอ็นต์ที่ใช้ Static Web API
ปกป้องการใช้งาน Static Web 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" ในคําขอขาออกเนื่องจากเหตุผลด้านความเป็นส่วนตัว - ระบุสตริง referrer ทั้งหมดเสมอ ซึ่งรวมถึงรูปแบบโปรโตคอล ชื่อโฮสต์ และพอร์ตที่ไม่บังคับ (เช่น
https://google.com
) - คุณสามารถใช้อักขระไวลด์การ์ดเพื่อให้สิทธิ์โดเมนย่อยทั้งหมดได้ เช่น
https://*.google.com
ยอมรับเว็บไซต์ทั้งหมดที่ลงท้ายด้วย.google.com
- โปรดระมัดระวังเมื่อให้สิทธิ์ผู้อ้างอิงแบบ Full Path เช่น
https://google.com/some/path
เนื่องจากเว็บเบราว์เซอร์ส่วนใหญ่จะลบเส้นทางออกจากคําขอข้ามแหล่งที่มาเพื่อเหตุผลด้านความเป็นส่วนตัว
ที่อยู่ IP ระบุที่อยู่ IPv4 หรือ IPv6 หรือซับเน็ตอย่างน้อย 1 รายการโดยใช้รูปแบบ CIDR ที่อยู่ IP ต้องตรงกับที่อยู่ต้นทางที่เซิร์ฟเวอร์ Google Maps Platform สังเกตเห็น หากคุณใช้การแปลงที่อยู่เครือข่าย (NAT) โดยทั่วไปที่อยู่นี้จะสอดคล้องกับที่อยู่ IP สาธารณะของอุปกรณ์ แอป Android เพิ่มชื่อแพ็กเกจ Android (จากไฟล์ AndroidManifest.xml
) และลายนิ้วมือใบรับรองการลงนาม SHA-1 ของแอปพลิเคชัน Android แต่ละรายการที่คุณต้องการให้สิทธิ์ หากคุณใช้ Play App Signing หากต้องการเรียกข้อมูลลายนิ้วมือใบรับรองการรับรอง โปรดดูการทํางานร่วมกับผู้ให้บริการ API หากคุณจัดการคีย์การรับรองของคุณเอง โปรดดูการรับรองแอปพลิเคชันด้วยตนเองหรือดูวิธีการสำหรับสภาพแวดล้อมการสร้างแอป 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 ให้ตรวจสอบเพื่อพิจารณาว่าจำเป็นต้องเพิ่มข้อจำกัดเพิ่มเติมเพื่อหลีกเลี่ยงการใช้งานที่ไม่พึงประสงค์หรือไม่ คุณสามารถใช้เครื่องมือสำรวจเมตริกในคอนโซลระบบคลาวด์ของ Google Maps Platform เพื่อช่วยระบุ API และข้อจำกัดของแอปพลิเคชันที่จะมีผลกับคีย์ API ของคุณได้ ดังนี้
ระบุ API ที่ใช้คีย์ API ของคุณ
รายงานเมตริกต่อไปนี้ช่วยให้คุณระบุได้ว่า API ใดใช้คีย์ API ของคุณ ใช้รายงานเหล่านี้เพื่อทำสิ่งต่อไปนี้
- ดูว่าคีย์ API ของคุณมีการใช้งานอย่างไร
- ตรวจหาการใช้งานที่ไม่คาดคิด
- โปรดช่วยยืนยันว่าสามารถลบคีย์ที่ไม่ได้ใช้ได้อย่างปลอดภัย ดูข้อมูลเกี่ยวกับการลบคีย์ API ได้ที่ลบคีย์ API ที่ไม่ได้ใช้
เมื่อใช้การจํากัด API ให้ใช้รายงานเหล่านี้เพื่อสร้างรายการ API ที่จะให้สิทธิ์ หรือเพื่อตรวจสอบคําแนะนําการจํากัดคีย์ API ที่สร้างขึ้นโดยอัตโนมัติ ดูข้อมูลเพิ่มเติมเกี่ยวกับข้อจำกัดที่แนะนำได้ที่ใช้ข้อจำกัดที่แนะนำ ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้เครื่องมือสำรวจเมตริกได้ที่สร้างแผนภูมิด้วยเครื่องมือสำรวจเมตริก
ไปที่เครื่องมือสำรวจเมตริกของคอนโซล 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
ที่รายงานโดยใช้เครื่องมือสํารวจเมตริก
ไปที่เครื่องมือสำรวจเมตริกของคอนโซล Google Cloud
ลงชื่อเข้าใช้และเลือกโปรเจ็กต์สําหรับ API ที่ต้องการตรวจสอบ
ไปที่หน้าเครื่องมือสำรวจเมตริก เครื่องมือสำรวจเมตริก
ตรวจสอบคีย์ 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 ได้ที่ปกป้องการใช้งาน 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 หากมี
API และ SDK ของ Google Maps Platform ที่การแนะนำอัตโนมัติรองรับ
Maps JavaScript API ซึ่งรวมถึงบริการเส้นทาง (เดิม), บริการเมทริกซ์ระยะทาง (เดิม), บริการระดับความสูง, บริการการเข้ารหัสพิกัดภูมิศาสตร์, คลาสสถานที่, วิดเจ็ตการเติมข้อความอัตโนมัติของสถานที่ (ใหม่), Place Autocomplete Data API, Places Library, บริการ Places และวิดเจ็ตการเติมข้อความอัตโนมัติของสถานที่
Maps Static API และ Street View Static API
Maps Embed API
Maps SDK สำหรับ Android, Places SDK สำหรับ Android และ Navigation SDK สำหรับ Android
Maps SDK สำหรับ iOS, Places SDK สำหรับ iOS, Places Swift SDK สำหรับ iOS และ Navigation SDK สำหรับ iOS
สาเหตุที่คุณอาจไม่เห็นคําแนะนํา หรือเห็นคําแนะนําที่ไม่สมบูรณ์
สาเหตุที่คุณไม่เห็นคําแนะนํา
คุณใช้คีย์ API ในบริการอื่นที่ไม่ใช่ Google Maps Platform หรือบริการ Maps Platform ที่ยังไม่รองรับคำแนะนำอัตโนมัติด้วย
หากเห็นการใช้งานในบริการอื่นๆ โปรดอย่าใช้คำแนะนำโดยก่อนทำดังนี้
ยืนยันว่าการใช้งาน API ที่คุณเห็นในเครื่องมือสำรวจเมตริกของคอนโซล Google Cloud นั้นถูกต้อง
เพิ่มบริการที่ขาดหายไปลงในรายการ API ที่จะให้สิทธิ์ด้วยตนเอง
เพิ่มข้อจำกัดของแอปพลิเคชันสำหรับบริการที่เพิ่มลงในรายการ API ด้วยตนเองหากไม่มี หากคีย์อื่นๆ ที่คุณเพิ่มต้องใช้ข้อจำกัดประเภทอื่นของแอปพลิเคชัน โปรดดูย้ายข้อมูลไปยังคีย์ API หลายรายการ
ไม่มีการใช้คีย์ API ใน SDK หรือ API ฝั่งไคลเอ็นต์
คุณใช้คีย์ API ในแอปหรือเว็บไซต์ที่มีปริมาณการใช้งานต่ำซึ่งไม่มีการใช้งานในช่วง 60 วันที่ผ่านมา
คุณเพิ่งสร้างคีย์ใหม่หรือเพิ่งติดตั้งใช้งานคีย์ที่มีอยู่ในแอปใหม่ หากเป็นเช่นนั้น โปรดรออีก 2-3 วันเพื่อให้คําแนะนําอัปเดต
คุณใช้คีย์ API ในแอปพลิเคชันหลายรายการที่ต้องใช้การจํากัดแอปพลิเคชันประเภทที่ขัดแย้งกัน หรือคุณใช้คีย์ API เดียวกันในแอปหรือเว็บไซต์ต่างๆ มากเกินไป ไม่ว่าในกรณีใด คุณควรย้ายข้อมูลไปยังคีย์หลายรายการตามแนวทางปฏิบัติแนะนำ โปรดดูรายละเอียดเพิ่มเติมที่หัวข้อย้ายข้อมูลไปยังคีย์ API หลายรายการ
สาเหตุที่คุณเห็นคําแนะนําที่ไม่สมบูรณ์
คุณใช้คีย์ API ในแอปหรือเว็บไซต์ที่มีปริมาณการใช้งานต่ำซึ่งไม่มีการใช้งานในช่วง 60 วันที่ผ่านมา
คุณเพิ่งเริ่มใช้คีย์ที่มีอยู่กับ API หรือบริการใหม่ และไปป์ไลน์คําแนะนําการจํากัดคีย์ API โดยอัตโนมัติยังไม่ได้ประมวลผลเมตริกการใช้งานที่อัปเดต การนำไปใช้งานเมตริกการใช้งานอาจใช้เวลา 2-3 วัน
หากเห็นการใช้งานในบริการอื่นๆ โปรดอย่าใช้คำแนะนำโดยก่อนทำดังนี้
ยืนยันว่าการใช้งาน API ที่คุณเห็นในเครื่องมือสำรวจเมตริกของคอนโซล 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 ที่แปลกใหม่ โปรดติดต่อทีมสนับสนุน
โดยทั่วไปแล้ว API อื่นๆ ของ Maps Platform จะแสดง URL ที่มาซึ่งคุณต้องให้สิทธิ์ในการตอบกลับข้อผิดพลาดของ API โดยสมมติว่าไคลเอ็นต์ส่งข้อมูลนี้มาพร้อมกับคำขอที่ถูกปฏิเสธ
ระบบไม่รองรับรูปแบบ URI ที่แปลกใหม่
- แอป Android
ใช้ Android Debug Bridge (adb) หรือ Logcat
- แอป iOS
แอปที่เรียกใช้เว็บเซอร์วิสโดยตรง
สําหรับแอปพลิเคชันที่เรียกใช้ HTTPS REST API หรือปลายทาง gRPC ของ Maps Platform โดยตรงโดยไม่ใช้ Google Maps Platform SDK ฝั่งไคลเอ็นต์ โปรดดูข้อมูลด้านล่าง
- แอป 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 เวอร์ชันล่าสุดจะรองรับข้อจำกัดของผู้อ้างอิงด้วย แต่โปรดทราบว่าเว็บเบราว์เซอร์หรือเว็บวิวมีแนวโน้มที่จะจำกัดส่วนหัว
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 1 รายการสำหรับหลายแอปไปใช้คีย์ API ที่ไม่ซ้ำกัน 1 รายการสำหรับแต่ละแอป ให้ทำดังนี้
ระบุแอปที่ต้องมีคีย์ใหม่
- เว็บแอปเป็นแอปที่อัปเดตได้ง่ายที่สุดเนื่องจากคุณควบคุมโค้ดทั้งหมดได้ วางแผนที่จะอัปเดตคีย์ของแอปทั้งหมดที่ทำงานบนเว็บ
- แอปบนอุปกรณ์เคลื่อนที่จะยากกว่ามาก เนื่องจากลูกค้าต้องอัปเดตแอปก่อนจึงจะใช้คีย์ใหม่ได้
สร้างและจํากัดคีย์ใหม่: เพิ่มทั้งการจํากัดแอปพลิเคชันและข้อจํากัด 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 เสมอ นอกจากนี้ ให้ตรวจสอบจำนวนคำขอที่ไม่ได้ลงนามที่คุณต้องการอนุญาตต่อวันและปรับโควต้าคำขอที่ไม่ได้ลงนามให้เหมาะสม
ดูรายละเอียดเพิ่มเติมเกี่ยวกับลายเซ็นดิจิทัลได้ในคำแนะนำเกี่ยวกับลายเซ็นดิจิทัล
ปกป้องความลับในการลงนาม
หากต้องการปกป้อง Web API แบบคงที่ อย่าฝังข้อมูลลับสำหรับการลงนามของ API โดยตรงในโค้ดหรือในลําดับชั้นซอร์สโค้ด หรือแสดงข้อมูลดังกล่าวในแอปพลิเคชันฝั่งไคลเอ็นต์ ทําตามแนวทางปฏิบัติแนะนําต่อไปนี้เพื่อปกป้องความลับในการลงชื่อ
สร้าง URL คำขอ Maps Static API และ Street View Static API ที่เซ็นชื่อฝั่งเซิร์ฟเวอร์เมื่อแสดงหน้าเว็บ หรือเมื่อตอบสนองคำขอจากแอปพลิเคชันบนอุปกรณ์เคลื่อนที่
สำหรับเนื้อหาเว็บแบบคงที่ คุณสามารถใช้วิดเจ็ตลงชื่อ URL เลยในหน้าข้อมูลเข้าสู่ระบบของ Google Maps Platform ในคอนโซลระบบคลาวด์
สําหรับเนื้อหาเว็บแบบไดนามิก โปรดดูตัวอย่างโค้ดการรับรองคําขอ 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 จะรองรับกรณีการใช้งานที่ผู้ใช้ปลายทางให้สิทธิ์แอปพลิเคชันเข้าถึงข้อมูลส่วนตัวในนามของตน แต่กรณีการใช้งานที่ต้องการสำหรับ OAuth 2.0 กับ Maps Platform คือนักพัฒนาแอปสามารถใช้โทเค็นการเข้าถึงชั่วคราวเพื่ออนุญาตให้แอปพลิเคชันเรียกใช้ API ในนามของบัญชีบริการของโปรเจ็กต์ Google Cloud ของตนโดยมีสิทธิ์ของบัญชีบริการ
เนื่องจากบัญชีบริการอาจมีสิทธิ์ที่กว้างมาก เราจึงขอแนะนำให้ใช้ OAuth 2.0 เพื่ออนุญาตให้มีการเรียกเซิร์ฟเวอร์ต่อเซิร์ฟเวอร์ระหว่างแอปพลิเคชันฝั่งเซิร์ฟเวอร์ที่นักพัฒนาแอปเชื่อถือกับเซิร์ฟเวอร์ของแพลตฟอร์ม Maps ของ Google
สําหรับแอปพลิเคชันฝั่งไคลเอ็นต์ที่ทํางานในอุปกรณ์ของผู้ใช้ปลายทาง เราขอแนะนําให้ใช้วิธีการตรวจสอบสิทธิ์อื่นๆ เช่น คีย์ API
หากต้องการใช้ OAuth 2.0 เพื่อให้สิทธิ์การรับส่งข้อมูลแบบเซิร์ฟเวอร์ต่อเซิร์ฟเวอร์ ให้ค้นหาหัวข้อ OAuth ในเอกสารประกอบของ API
ตัวอย่างเช่น หัวข้อ OAuth สำหรับ Address Validation API
การเรียกใช้เว็บเซอร์วิสฝั่งไคลเอ็นต์ที่ปลอดภัย
หาก SDK ฝั่งไคลเอ็นต์ไม่พร้อมใช้งาน โปรดดูคําแนะนําด้านล่าง
ใช้พร็อกซีเซิร์ฟเวอร์
การใช้เซิร์ฟเวอร์พร็อกซีที่ปลอดภัยเป็นแหล่งที่มาที่มั่นคงสำหรับการโต้ตอบกับปลายทางเว็บเซอร์วิสของ Google Maps Platform จากแอปพลิเคชันฝั่งไคลเอ็นต์ โดยไม่ต้องเปิดเผยคีย์ API, ข้อมูลลับสำหรับการลงนาม หรือบัญชีบริการ Google Cloud แก่ผู้ใช้ที่ไม่ได้รับอนุญาต
ประเด็นสำคัญ:
* Construct your Google Maps Platform requests on the proxy server.
**Don't** allow clients to relay arbitrary API calls using the proxy.
* Post-process the Google Maps Platform responses on your proxy server.
Filter out data that the client doesn't need.
ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้พร็อกซีเซิร์ฟเวอร์ได้ที่การดูผ่านประสบการณ์ของผู้อื่น: การใช้พร็อกซีเซิร์ฟเวอร์กับไลบรารีของไคลเอ็นต์ Google Data API
การเรียกใช้บริการเว็บบนอุปกรณ์เคลื่อนที่โดยตรงที่ปลอดภัย
หากตั้งค่าพร็อกซีเซิร์ฟเวอร์ที่ปลอดภัยสําหรับแอปฝั่งไคลเอ็นต์ไม่ได้ ให้รักษาความปลอดภัยให้แอปพลิเคชันโดยใช้ขั้นตอนต่อไปนี้
ใช้ส่วนหัว HTTP
Android: ใช้ส่วนหัว HTTP ของ
X-Android-Package
และX-Android-Cert
iOS: ใช้ส่วนหัว HTTP ของ
X-Ios-Bundle-Identifier
เพิ่มข้อจํากัดแอปพลิเคชันที่เกี่ยวข้องลงในคีย์ Android หรือ iOS
ก่อนที่จะพิจารณาการเรียกใช้จากแอปพลิเคชันบนอุปกรณ์เคลื่อนที่ไปยังเว็บเซอร์วิส REST API ของ Google Maps Platform โดยตรง ให้ตรวจสอบว่าระบบปฏิเสธคําขอที่มีตัวระบุแอปพลิเคชัน Android หรือ iOS ไม่ถูกต้อง
หากอุปกรณ์ปลายทางที่ทดสอบไม่รองรับข้อจำกัดของแอปพลิเคชัน Android และ iOS เราขอแนะนำอย่างยิ่งให้คุณใช้เซิร์ฟเวอร์พร็อกซีที่ปลอดภัยระหว่างไคลเอ็นต์อุปกรณ์เคลื่อนที่กับอุปกรณ์ปลายทางของบริการเว็บ 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 ให้ตรวจสอบว่ารหัสแพ็กเกจอยู่ในรูปแบบที่ถูกต้อง
โดยทั่วไปแล้ว คุณควรส่งรหัสกลุ่มของกลุ่มหลักในส่วนหัว
X-Ios-Bundle-Identifier
ทุกครั้งที่ให้สิทธิ์แอปพลิเคชัน iOS
ดูข้อมูลเพิ่มเติมได้ที่บทความจัดการคีย์ API และใช้คีย์ API เพื่อเข้าถึง API
โฮสต์แอปเบราว์เซอร์บนเซิร์ฟเวอร์
เฟรมเวิร์ก เช่น Apache Cordova ช่วยให้คุณสร้างแอปไฮบริดหลายแพลตฟอร์มที่ทำงานภายใน WebView ได้อย่างสะดวก อย่างไรก็ตาม เราไม่สามารถรับประกันได้ว่าข้อจำกัดของเว็บไซต์สำหรับคีย์ API จะทำงานได้อย่างถูกต้อง เว้นแต่ว่าเว็บแอปจะโหลดโดยใช้ HTTP หรือ HTTPS จากเว็บไซต์ที่คุณควบคุมและได้รับอนุญาต
ทรัพยากรที่รวมไว้ด้วยกันซึ่งโหลดจากภายในแอปพลิเคชันไฮบริดหรือเข้าถึงโดยใช้ URL ของไฟล์ในเครื่องจะทําให้การให้สิทธิ์ตาม URL ที่มาใช้งานไม่ทํางานในหลายกรณี เนื่องจากเครื่องมือเบราว์เซอร์ที่ขับเคลื่อนเว็บวิวจะไม่ส่งส่วนหัว Referer
วิธีหลีกเลี่ยงปัญหานี้คือ โฮสต์เว็บแอปพลิเคชันฝั่งเซิร์ฟเวอร์ ไม่ใช่ฝั่งไคลเอ็นต์
หรือสําหรับแอปพลิเคชันบนอุปกรณ์เคลื่อนที่ ให้ลองใช้ SDK ของ Google Maps Platform สำหรับ Android และ iOS ที่มีอยู่แทนการใช้ SDK บนเว็บ
ใช้ App Check เพื่อรักษาคีย์ API ให้ปลอดภัย
SDK และ API ของ Maps บางรายการช่วยให้คุณผสานรวมกับ Firebase App Check ได้ App Check ให้การปกป้องการเรียกใช้จากแอปของคุณไปยัง Google Maps Platform โดยการบล็อกการเข้าชมที่มาจากแหล่งที่มาที่ไม่ใช่แอปที่ถูกต้องตามกฎหมาย โดยการตรวจสอบโทเค็นจากผู้ให้บริการการรับรอง การผสานรวมแอปกับ App Check จะช่วยป้องกันคำขอที่เป็นอันตราย เพื่อไม่ให้ระบบเรียกเก็บเงินสำหรับการเรียก API ที่ไม่ได้รับอนุญาต
วิธีการผสานรวม App Check
- Places SDK สำหรับ iOS
- Places SDK สำหรับ Android
- Maps JavaScript API
- คลาสสถานที่, Maps JavaScript API
จัดการการใช้งานคีย์ 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 API (เดิม) บริการเมทริกซ์ระยะทาง (เดิม) Distance Matrix API (เดิม) บริการระดับความสูง Elevation API บริการการเข้ารหัสพิกัดภูมิศาสตร์ Geocoding API Place Class, Widget ของ Place Autocomplete (ใหม่) และ Place Autocomplete Data API Places API (ใหม่)2 ไลบรารี Places, บริการ Places และวิดเจ็ต 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 ที่เป็น SDK ของอุปกรณ์
3 ดูข้อมูลเพิ่มเติมได้ที่ปกป้องการใช้งาน Static Web API
เว็บไซต์ที่มี Maps Embed API
แม้ว่าการใช้ Maps Embed API จะไม่มีค่าใช้จ่าย แต่คุณก็ควรจำกัดคีย์ API ที่ใช้เพื่อป้องกันการละเมิดในบริการอื่นๆ
แนวทางปฏิบัติแนะนำ: สร้างคีย์ API แยกต่างหากสำหรับการใช้ Maps Embed API และจำกัดคีย์นี้ให้ใช้ได้กับ เฉพาะ Maps Embed API เท่านั้น ข้อจำกัดนี้ช่วยรักษาความปลอดภัยให้กับคีย์ได้อย่างเพียงพอ ซึ่งจะช่วยป้องกันการใช้คีย์ที่ไม่ได้รับอนุญาตในบริการอื่นๆ ของ Google หากต้องการควบคุมอย่างเต็มรูปแบบว่าจะใช้คีย์ API ของแทรกแผนที่ได้จากที่ใดบ้าง Google ขอแนะนำให้ใช้การจำกัดแอปพลิเคชันเว็บไซต์ด้วย
หากแยกการใช้งาน 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 ที่เป็น SDK ดั้งเดิม
8 ใช้พร็อกซีเซิร์ฟเวอร์ที่ปลอดภัยเพื่อการใช้งานฝั่งไคลเอ็นต์อย่างปลอดภัย
แอป Android
สำหรับแอปใน Android ให้ใช้การจำกัดแอปพลิเคชัน Android apps
ใช้สำหรับแอปที่ใช้ SDK ต่อไปนี้
นอกจากนี้ ยังป้องกันไม่ให้ตรวจสอบคีย์ API ไว้ในระบบควบคุมเวอร์ชันโดยไม่ตั้งใจด้วยการใช้ปลั๊กอิน Gradle สำหรับ Secret เพื่อแทรก Secret จากไฟล์ในเครื่องแทนที่จะจัดเก็บไว้ในไฟล์ Manifest ของ Android
แอป iOS
สำหรับแอปใน iOS ให้ใช้ข้อจำกัดแอปพลิเคชัน iOS apps
ใช้สำหรับแอปและเซิร์ฟเวอร์ที่ใช้ SDK ต่อไปนี้
อ่านเพิ่มเติม
- จัดการคีย์ API
- ใช้คีย์ API เพื่อเข้าถึง API
- เพิ่มประสิทธิภาพการใช้งาน Google Maps Platform ด้วยโควต้า (วิดีโอ)
- วิธีสร้างและจํากัดคีย์ API สําหรับ Google Maps Platform (วิดีโอ)
- การจํากัดคีย์ API
- การรักษาความปลอดภัยของคีย์ API เมื่อใช้ Static Maps และ Street View API
- แนวทางปฏิบัติแนะนำ 15 ข้อสำหรับ Google Maps Platform