จําเป็นต้องมีคีย์ 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 เพื่อให้แน่ใจว่าข้อจํากัดจะไม่ทําลายแอปที่มีอยู่
ไปที่หน้าเมตริกของ Google Cloud Console
เลือกแสดงตัวกรอง
เลือกข้อมูลเข้าสู่ระบบจากจัดกลุ่มตาม คุณจะเห็นคีย์ API ที่ใช้กับบริการของ Google
คลิกข้อมูลเข้าสู่ระบบ
ยกเลิกการเลือกข้อมูลเข้าสู่ระบบทั้งหมด
สําหรับแต่ละคีย์ที่แสดง ให้เลือกคีย์ แล้วคลิกตกลง
จากจัดกลุ่มตาม ให้เลือก API คุณจะเห็นข้อจํากัด API ที่จะใช้กับคีย์
การเลือกเมธอด API จากจัดกลุ่มตามอาจให้ข้อบ่งชี้เกี่ยวกับประเภทข้อจํากัดแอปพลิเคชันที่เหมาะกับคีย์ที่สุด
กําหนดข้อจํากัดแอปพลิเคชันสําหรับคีย์ API
- ไปที่หน้าข้อมูลเข้าสู่ระบบ
เลือกคีย์ API ที่ต้องการตั้งข้อจํากัด หน้าพร็อพเพอร์ตี้ของคีย์ API จะปรากฏขึ้น
ในส่วนข้อจํากัดของคีย์ ให้เลือกข้อจํากัดของแอปพลิเคชัน
เลือกประเภทข้อจํากัดประเภทใดประเภทหนึ่งและให้ข้อมูลที่ขอตามรายการข้อจํากัด
ประเภทการจํากัด คำอธิบาย 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 ที่เหมาะสมจากรายการ เลือกบันทึก
ตั้งข้อจํากัด API สําหรับคีย์ API
เลือกคีย์ API ที่ต้องการจํากัด หน้าจํากัดและเปลี่ยนชื่อคีย์ API จะปรากฏขึ้น
ในส่วนข้อจํากัดของ API ให้ทําดังนี้
คลิกจํากัดคีย์
คลิกเมนูแบบเลื่อนลงเลือก API และเลือก API หรือ SDK ที่คุณต้องการให้แอปพลิเคชันเข้าถึงโดยใช้คีย์ API
(หากไม่มี API หรือ SDK จะต้องเปิดใช้ API)
คลิกบันทึก
ข้อจํากัดนี้เป็นส่วนหนึ่งของคําจํากัดความของคีย์ API หลังจากขั้นตอนนี้ หากไม่ให้รายละเอียดที่เหมาะสมหรือไม่คลิก "บันทึก" จะไม่มีการจํากัดคีย์ API (ดูข้อมูลเพิ่มเติมได้ในคู่มือรับคีย์ API สําหรับ API หรือ SDK ที่เฉพาะเจาะจงที่คุณสนใจ)
ลบคีย์ API ที่ไม่ได้ใช้
ก่อนลบคีย์ API ให้ตรวจสอบว่าไม่ได้ใช้คีย์นี้ในเวอร์ชันที่ใช้งานจริง หากไม่มีการเข้าชมที่สําเร็จ คีย์ก็มีแนวโน้มที่จะลบได้
วิธีลบคีย์ API
เลือกคีย์ API ที่ต้องการลบ
เลือกปุ่มลบใกล้กับด้านบนของหน้า
เมื่อกล่องโต้ตอบลบข้อมูลเข้าสู่ระบบปรากฏขึ้น ให้เลือกลบ
การลบคีย์ API จะใช้เวลา 2-3 นาทีในการเผยแพร่ หลังจากการเผยแพร่ การรับส่งข้อมูลที่ใช้คีย์ API ที่ลบไปแล้วจะถูกปฏิเสธ
วิธีอื่นๆ ในการรักษาความปลอดภัย API ของคุณ
โปรดระมัดระวังเมื่อสร้างคีย์ API อีกครั้ง
การสร้างคีย์ API ใหม่จะสร้างคีย์ใหม่ที่มีข้อจํากัดของคีย์เดิมทั้งหมด ซึ่งจะเริ่มตัวจับเวลา 24 ชั่วโมงเพื่อปิดใช้งานคีย์ API เก่าด้วย
ในกรอบเวลานี้ ระบบยอมรับทั้งคีย์เก่าและใหม่เพื่อให้คุณย้ายข้อมูลแอปเพื่อใช้คีย์ใหม่ได้ อย่างไรก็ตาม แอปที่ใช้คีย์ API เดิมจะหยุดทํางานหลังจากพ้นระยะเวลานี้
ไปที่หน้าคีย์ API
เลือกเปลี่ยนกลับเป็นคีย์ก่อนหน้า
ในกล่องโต้ตอบเปลี่ยนกลับ ให้คลิกเปลี่ยนกลับคีย์
เมื่อย้อนกลับไปใช้คีย์ "ใหม่" เวอร์ชันเดิมจะกลายเป็นเวอร์ชันก่อนหน้า และตัวจับเวลาการปิดใช้งาน 24 ชั่วโมงใหม่ตั้งค่าไว้ คุณเปลี่ยนค่าคีย์ 2 รายการนี้ได้จนกว่าคุณจะสร้างคีย์อีกครั้ง
การสร้างรายการที่ 2 นี้จะแทนที่ค่าคีย์เก่าที่ไม่มีการใช้งาน
ตรวจสอบการใช้งาน API
วิธีตรวจสอบการใช้คีย์ API
ไปที่หน้าเมตริก
คลิกแสดงตัวกรอง
เลือกวิธี API จากจัดกลุ่มตาม
ในส่วนโค้ดตอบกลับ ให้เลือก 2xx เพื่อดูคําขอที่สําเร็จสําหรับคีย์นี้
หากคุณตรวจพบการใช้งานที่ไม่ได้รับอนุญาต ให้ทําตามขั้นตอนต่อไปนี้
จํากัดคีย์
หากใช้คีย์เดียวกันในหลายแอป ให้ย้ายข้อมูลไปยังคีย์ API หลายรายการ โดยควรใช้คีย์ API ที่แยกกันสําหรับแต่ละแอป
หากการใช้งานไม่ได้รับอนุญาตต่อไป ให้สร้างอีกครั้งหรือลบคีย์ที่ได้รับผลกระทบ
ใช้คีย์ API แยกกันสําหรับแต่ละแอป
การดำเนินการนี้จะจำกัดขอบเขตของแต่ละคีย์ หากคีย์ API ถูกบุกรุก คุณจะลบหรือสร้างคีย์ที่ได้รับผลกระทบอีกครั้งได้โดยไม่ต้องอัปเดตคีย์ API อื่นๆ
ย้ายข้อมูลไปยังคีย์ API หลายรายการ
หากต้องการย้ายข้อมูลจากการใช้คีย์ API 1 คีย์สําหรับแอปหลายรายการ ให้สร้างคีย์ API ที่ไม่ซ้ํากัน 1 คีย์สําหรับแต่ละแอป ให้ทําตามขั้นตอนต่อไปนี้
ระบุว่าแอปใดที่ต้องใช้คีย์ใหม่
- เว็บแอปเป็นวิธีที่อัปเดตได้ง่ายที่สุด เนื่องจากคุณได้ควบคุมโค้ดทั้งหมด วางแผนที่จะอัปเดตคีย์ของแอปบนเว็บทั้งหมด
- แอปบนอุปกรณ์เคลื่อนที่ทําได้ยากขึ้นมาก เนื่องจากลูกค้าต้องอัปเดตแอปก่อน จึงจะใช้คีย์ใหม่ได้
สร้างและจํากัดคีย์ใหม่
- เพิ่มทั้งข้อจํากัดของแอปพลิเคชันและข้อจํากัด API อย่างน้อย 1 รายการ
เพิ่มคีย์ใหม่ลงในแอปต่างๆ
- สําหรับแอปบนอุปกรณ์เคลื่อนที่ กระบวนการนี้อาจใช้เวลาหลายเดือนเพื่อให้ผู้ใช้ทั้งหมดอัปเดตเป็นแอปล่าสุดด้วยคีย์ API ใหม่
วิธีการปกป้องแอป Maps Web Service API หรือ Static Web API
จัดเก็บคีย์ API และข้อมูลลับในการลงนามนอกซอร์สโค้ดของแอปพลิเคชัน หากคุณใส่คีย์ API หรือข้อมูลส่วนตัวอื่นๆ ในตัวแปรสภาพแวดล้อม หรือรวมไฟล์ที่เก็บแยกต่างหากแล้วแชร์โค้ดของคุณ คีย์ API หรือข้อมูลลับในการลงชื่อเข้าใช้จะไม่รวมอยู่ในไฟล์ที่แชร์
จัดเก็บคีย์ API หรือรับรองข้อมูลลับในไฟล์นอกโครงสร้างแอปพลิเคชัน หากคุณจัดเก็บคีย์ API หรือข้อมูลส่วนตัวอื่นๆ ในไฟล์ ให้เก็บไฟล์ไว้นอกโครงสร้างของแอปพลิเคชันในแอปพลิเคชันของคุณ เพื่อให้คีย์ออกจากระบบระบบควบคุมซอร์สโค้ด ข้อมูลนี้มีความสําคัญโดยเฉพาะหากคุณใช้ระบบจัดการซอร์สโค้ดสาธารณะ เช่น GitHub
Web Service API หรือ Static Web API สําหรับแอปบนอุปกรณ์เคลื่อนที่
ใช้พร็อกซีเซิร์ฟเวอร์ พร็อกซีเซิร์ฟเวอร์เป็นแหล่งข้อมูลที่เสถียรสําหรับการโต้ตอบกับ Google Maps Platform API ที่เหมาะสม โปรดดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้พร็อกซีเซิร์ฟเวอร์ที่หัวข้อการใช้ชีวิตแบบมีชีวิตชีวา: การใช้พร็อกซีเซิร์ฟเวอร์กับไลบรารีของไคลเอ็นต์ Google Data API
สร้างความสับสนหรือเข้ารหัสคีย์ API หรือรับรองข้อมูลลับ ซึ่งจะทําให้การคัดลอกคีย์ 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