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

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

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

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

จํากัดคีย์ API

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

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

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

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

ตั้งค่าการจํากัด API สําหรับคีย์ API

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

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

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

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

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

      (หากไม่มี API หรือ SDK อยู่ในรายการ คุณต้องเปิดใช้ 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 ค่านี้ได้จนกว่าคุณจะสร้างคีย์อีกครั้ง

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

วิธีการปกป้องแอป Maps Web Service หรือ 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 และแนวทางปฏิบัติด้านความปลอดภัยที่ดีที่สุด สําหรับ Google Maps Platform API, SDK หรือบริการแต่ละอย่าง

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

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

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

API/SDK/บริการ การจํากัดแอปพลิเคชัน (1) การจํากัด API (1) แนวทางปฏิบัติแนะนำ
API การตรวจสอบที่อยู่ การจํากัดที่อยู่ IP(4) Address Validation API
Directions API การจํากัดที่อยู่ IP(4) Directions API
Distance Matrix 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
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 SDK สําหรับ Android ข้อจํากัดของ Android Places API

แอป iOS

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

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

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

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