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

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

มีดังนี้

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

หากมีการใช้คีย์ API อยู่แล้ว โปรดดูคำแนะนำด้านล่างในหากกำลังจำกัดหรือสร้างคีย์ API ที่ใช้งานอยู่อีกครั้ง

ดูรายละเอียดเพิ่มเติมเกี่ยวกับลายเซ็นดิจิทัลได้ที่คู่มือลายเซ็นดิจิทัล

แนวทางปฏิบัติแนะนำ

เพื่อเพิ่มความปลอดภัยและหลีกเลี่ยงการเรียกเก็บเงินสำหรับการใช้งานที่ไม่ได้รับอนุญาต ให้ทําตามแนวทางปฏิบัติแนะนำด้านความปลอดภัยเกี่ยวกับ API สําหรับ Google Maps Platform API, SDK หรือบริการทั้งหมดของ Google Maps Platform

จำกัดคีย์ API

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

ลบคีย์ API ที่ไม่ได้ใช้

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

โปรดระมัดระวังเมื่อสร้างคีย์ API ใหม่

คำแนะนำเพิ่มเติมสำหรับเว็บไซต์ที่ใช้ Static Web API

ปกป้องแอปโดยใช้ API เว็บแบบคงที่

คำแนะนำเพิ่มเติมสำหรับแอปที่ใช้บริการเว็บ

ปกป้องแอปที่ใช้บริการเว็บ

คำแนะนำเพิ่มเติมสำหรับแอปพลิเคชันบนอุปกรณ์เคลื่อนที่ iOS และ Android

ปกป้องแอปบนอุปกรณ์เคลื่อนที่โดยใช้บริการเว็บหรือ API เว็บแบบคงที่

หากคุณจํากัดหรือสร้างคีย์ API ที่กำลังใช้งานอยู่ใหม่

  • ก่อนเปลี่ยนคีย์ API ให้ตรวจสอบการใช้งานคีย์ API ขั้นตอนนี้สำคัญอย่างยิ่งหากคุณเพิ่มข้อจำกัดหลังจากมีการใช้งานคีย์

  • หลังจากเปลี่ยนคีย์แล้ว ให้อัปเดตแอปทั้งหมดด้วยคีย์ API ใหม่ตามที่จำเป็น

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

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

  • หากคีย์ API ถูกขโมย คุณต้องการย้ายข้อมูลเร็วขึ้นเพื่อรักษาความปลอดภัยให้คีย์ API และหยุดการละเมิด ในแอป Android และ iOS ระบบจะไม่แทนที่คีย์จนกว่าลูกค้าจะอัปเดตแอป การอัปเดตหรือแทนที่คีย์ใน JavaScript หรือแอปบริการเว็บนั้นทำได้ง่ายกว่ามาก แต่ก็ยังต้องมีการวางแผนอย่างรอบคอบและการทำงานที่รวดเร็ว

    ดูข้อมูลเพิ่มเติมได้ที่จัดการการใช้คีย์ API โดยไม่ได้รับอนุญาต

จำกัดคีย์ API

แนวทางปฏิบัติแนะนำคือการจำกัดคีย์ API ด้วยการจำกัดแอปพลิเคชันและข้อจำกัด API อย่างน้อย 1 ข้อเสมอ ดูข้อจํากัดที่แนะนําโดย API, SDK หรือบริการ JavaScript ได้ที่ข้อจํากัดของแอปพลิเคชันและ API ที่แนะนําด้านล่าง

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

    คุณจำกัดคีย์ได้ด้วยการเพิ่มข้อจำกัดแอปพลิเคชันของประเภทที่คุณต้องการให้สิทธิ์อย่างน้อย 1 รายการ หลังจากนั้นจะอนุญาตเฉพาะคำขอที่มาจากแหล่งที่มาเหล่านี้เท่านั้น

  • ข้อจำกัด API คุณจำกัด Google Maps Platform API, SDK หรือบริการที่จะใช้คีย์ API ได้ การจำกัด API จะอนุญาตคำขอที่ส่งไปยัง API และ SDK ที่คุณระบุเท่านั้น คุณสามารถระบุข้อจำกัด API ได้มากตามต้องการ รายการ API ที่ใช้ได้ประกอบด้วย API ทั้งหมดที่เปิดใช้ในโปรเจ็กต์

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

  1. เปิดหน้าข้อมูลเข้าสู่ระบบ Google Maps Platform ของ Google Cloud Console

  2. เลือกคีย์ API ที่ต้องการจำกัด

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

    หน้าแก้ไขคีย์ API

  4. เลือกประเภทข้อจำกัด 1 ประเภทและให้ข้อมูลที่ขอตามรายการข้อจำกัด

    ประเภทข้อจำกัด คำอธิบาย
    เว็บไซต์ ระบุเว็บไซต์อ้างอิงอย่างน้อย 1 เว็บไซต์
    • รูปแบบ URI ของผู้อ้างอิงที่รองรับโดยทั่วไปคือ https และ http
    • ระบุ URI ของผู้อ้างอิงแบบเต็มเสมอ รวมถึงสคีมโปรโตคอล ชื่อโฮสต์ และพอร์ตที่ไม่บังคับ (เช่น https://google.com).
    • คุณสามารถใช้อักขระไวลด์การ์ดเพื่อให้สิทธิ์โดเมนย่อยทั้งหมดได้ เช่น https://*.google.com ยอมรับเว็บไซต์ทั้งหมดที่ลงท้ายด้วย .google.com โปรดทราบว่าหากคุณระบุ www.domain.com โดเมนจะทําหน้าที่เป็นไวลด์การ์ด www.domain.com/* และให้สิทธิ์เส้นทางย่อยทั้งหมดในชื่อโฮสต์นั้น
    • โปรดระมัดระวังเมื่อให้สิทธิ์ URL ที่มาแบบเต็มเส้นทาง เช่น https://google.com/some/path โดยค่าเริ่มต้นแล้ว เบราว์เซอร์ปัจจุบันส่วนใหญ่จะตัดเส้นทางออกจากคำขอแบบข้ามต้นทาง
    ที่อยู่ IP ระบุที่อยู่ IPv4 หรือ IPv6 หรือซับเน็ตโดยใช้รูปแบบ CIDR อย่างน้อย 1 รายการ ที่อยู่ IP ต้องตรงกับที่อยู่ต้นทางที่เซิร์ฟเวอร์ Google Maps Platform สังเกตเห็น หากคุณใช้การเปลี่ยนที่อยู่เครือข่าย (NAT) โดยปกติแล้วที่อยู่นี้จะตรงกับที่อยู่ IP สาธารณะของเครื่อง
    แอป Android เพิ่มชื่อแพ็กเกจ Android (จากไฟล์ AndroidManifest.xml) และลายนิ้วมือสำหรับใบรับรองที่ลงนามด้วย SHA-1 ของแอปพลิเคชัน Android แต่ละแอปที่คุณต้องการให้สิทธิ์ หากคุณใช้ Play App Signing เพื่อดึงข้อมูลลายนิ้วมือสำหรับใบรับรองที่ลงนาม โปรดดูที่หัวข้อการทํางานกับผู้ให้บริการ API หากคุณจัดการคีย์ Signing ของคุณเอง โปรดดูการลงนามแอปพลิเคชันด้วยตนเองหรือดูวิธีการสำหรับสภาพแวดล้อมของบิลด์
    แอป iOS เพิ่มตัวระบุชุดของแอปพลิเคชัน iOS แต่ละแอปที่คุณต้องการให้สิทธิ์

    ดูคำแนะนำการจำกัดแอปพลิเคชันได้ที่ข้อจำกัดแอปพลิเคชันที่แนะนำ

  5. เลือกบันทึก

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

  1. เปิดหน้าข้อมูลเข้าสู่ระบบ Google Maps Platform ของ Google Cloud Console

  2. เลือกคีย์ API ที่ต้องการจำกัด

  3. ในหน้าแก้ไขคีย์ API ในส่วนข้อจำกัดของ API ให้ทำดังนี้

    จำกัด API ในหน้าแก้ไขคีย์ API

  4. เลือกบันทึก

    หลังจากขั้นตอนนี้ ข้อจำกัดนี้จะกลายเป็นส่วนหนึ่งของคำจำกัดความคีย์ 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 ที่สร้างขึ้นโดยอัตโนมัติ ดูข้อมูลเพิ่มเติมเกี่ยวกับข้อจำกัดที่แนะนำได้ที่ใช้ข้อจำกัดที่แนะนำ ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้เครื่องมือสำรวจเมตริกได้ที่สร้างแผนภูมิด้วยเครื่องมือสำรวจเมตริก

  1. ไปที่เครื่องมือสำรวจเมตริกของ Google Cloud Console

  2. เข้าสู่ระบบและเลือกโปรเจ็กต์สำหรับคีย์ API ที่ต้องการตรวจสอบ

  3. ไปที่หน้าสำรวจเมตริกสำหรับประเภท API ของคุณ ดังนี้

  4. ตรวจสอบคีย์ API แต่ละรายการดังนี้

    1. เลือกเพิ่มตัวกรอง

    2. เลือกป้ายกำกับ credential_id

    3. เลือกค่าที่ตรงกับคีย์ที่ต้องการตรวจสอบ

    4. สังเกตว่าคีย์ API นี้ใช้สำหรับ API ใด และตรวจดูว่าคาดว่าจะใช้หรือไม่

    5. เมื่อเสร็จแล้ว ให้เลือกนำตัวกรองออก ตรงท้ายบรรทัดตัวกรองที่ใช้งานอยู่เพื่อลบตัวกรองอื่น

  5. ทำซ้ำกับคีย์ที่เหลือ

  6. จำกัดคีย์ API ให้มีเฉพาะ API ที่ใช้งานอยู่เท่านั้น

  7. หากพบการใช้งานที่ไม่ได้รับอนุญาต โปรดดูหัวข้อจัดการการใช้คีย์ API โดยไม่ได้รับอนุญาต

เลือกประเภทการจำกัดแอปพลิเคชันที่ถูกต้องโดยใช้เครื่องมือสำรวจเมตริก

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

หากคีย์ API มีข้อจํากัดของคีย์ API ที่แนะนํา ให้ใช้ข้อจํากัดเหล่านั้น ดูข้อมูลเพิ่มเติมได้ที่ใช้ข้อจำกัดของคีย์ API ที่แนะนำ

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

  1. ไปที่เครื่องมือสำรวจเมตริกของ Google Cloud Console

  2. ลงชื่อเข้าสู่ระบบและเลือกโปรเจ็กต์สำหรับ API ที่ต้องการตรวจสอบ

  3. ไปที่หน้าเครื่องมือสำรวจเมตริกนี้: เครื่องมือสำรวจเมตริก

  4. ตรวจสอบคีย์ API แต่ละรายการดังนี้

    1. เลือกเพิ่มตัวกรอง

    2. เลือกป้ายกำกับ credential_id

    3. เลือกค่าที่ตรงกับคีย์ที่ต้องการตรวจสอบ

    4. เมื่อเสร็จแล้ว ให้เลือกนำตัวกรองออก ตรงท้ายบรรทัดตัวกรองที่ใช้งานอยู่เพื่อลบตัวกรองอื่น

  5. ทำซ้ำกับคีย์ที่เหลือ

  6. เมื่อคุณมีประเภทแพลตฟอร์มสำหรับคีย์ 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 ได้ที่ปกป้องแอปโดยใช้ API เว็บแบบคงที่ ดูวิธีการเพิ่มเติมสำหรับ Maps Embed API ได้ที่เว็บไซต์ที่ใช้ Maps Embed API
    คีย์ API ของฉันใช้แพลตฟอร์มหลายประเภท
    ระบบไม่สามารถรักษาความปลอดภัยการรับส่งข้อมูลของคุณได้อย่างถูกต้องด้วยคีย์ API เพียงคีย์เดียว คุณต้องย้ายข้อมูลไปยังคีย์ API หลายรายการ ดูข้อมูลเพิ่มเติมได้ที่ย้ายข้อมูลไปยังคีย์ API หลายรายการ

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

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

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

ใช้ข้อจำกัดของคีย์ API ที่แนะนำ

สําหรับเจ้าของและผู้แก้ไขโปรเจ็กต์บางราย Google Cloud Console จะแนะนำข้อจํากัดของคีย์ API เฉพาะสำหรับคีย์ API ที่ไม่จำกัดโดยอิงตามการใช้งานและกิจกรรมของ Google Maps Platform

คำแนะนำจะปรากฏเป็นตัวเลือกที่กรอกไว้ล่วงหน้าในหน้าข้อมูลเข้าสู่ระบบ Google Maps Platform (หากมี)

สาเหตุที่คุณอาจไม่เห็นคำแนะนำหรือคำแนะนำที่ไม่สมบูรณ์

  • คุณใช้คีย์ API กับบริการอื่นๆ นอกเหนือจาก Google Maps Platform ด้วยเช่นกัน หากคุณเห็นการใช้งานในบริการอื่นๆ อย่าใช้คำแนะนำโดยไม่ทำสิ่งต่อไปนี้ก่อน

    1. ยืนยันว่าการใช้งาน API ที่คุณเห็นในเครื่องมือสำรวจเมตริก Google Cloud Console ถูกต้อง

    2. เพิ่มบริการที่ขาดไปลงในรายการ API ที่จะให้สิทธิ์ด้วยตนเอง

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

  • ไม่มีการใช้คีย์ API ใน SDK หรือ API ฝั่งไคลเอ็นต์

  • คุณใช้คีย์ API ในแอปหรือเว็บไซต์ที่มีปริมาณน้อยซึ่งไม่มีการใช้งานในช่วง 60 วันที่ผ่านมา

  • คุณสร้างคีย์ใหม่เมื่อเร็วๆ นี้ หรือคุณเพิ่งทำให้คีย์ที่มีอยู่ ใช้งานได้ในแอปใหม่ หากเป็นเช่นนี้ โปรดรออีก 2-3 วัน เพื่อให้คำแนะนำอัปเดต

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

สาเหตุที่คุณอาจเห็นคำแนะนำที่ไม่แสดงอยู่ในแผนภูมิ

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

  • การเข้าชมของคุณมาจาก Maps Embed API โปรดดูวิธีการที่หัวข้อระบุ API ที่ใช้คีย์ API ของคุณ

  • การเข้าชมจากแอปหรือเว็บไซต์อยู่นอกช่วงวันที่ในเครื่องมือสำรวจเมตริกของ Google Cloud Console

  1. เปิดหน้าข้อมูลเข้าสู่ระบบ Google Maps Platform ของ Google Cloud Console

  2. เลือกใช้ข้อจำกัดที่แนะนำ หากมี

    ใช้ข้อจำกัดที่แนะนำ

    หมายเหตุ: หากไม่เห็นข้อจำกัดที่แนะนำ โปรดดูตั้งค่าข้อจำกัด API สำหรับคีย์ API เพื่อกำหนดข้อจำกัดที่เหมาะสม

  3. เลือกตรวจสอบการใช้งาน API เพื่อยืนยันว่ามีการใช้คีย์ API กับบริการใด หากคุณเห็นสิ่งอื่นนอกเหนือจากบริการ Google Maps Platform ให้หยุดชั่วคราวเพื่อตรวจสอบขั้นตอนคำแนะนำด้านบนด้วยตนเอง ดูขั้นตอนการแก้ปัญหาที่จุดเริ่มต้นของส่วนใช้ข้อจำกัดคีย์ API ที่แนะนำ

  4. ตรวจสอบอีกครั้งว่าข้อจำกัดที่กรอกไว้ล่วงหน้าตรงกับเว็บไซต์และแอปที่คุณคาดว่าจะใช้คีย์ API

    แนวทางปฏิบัติแนะนำ: บันทึกและนำข้อจำกัดของแอปพลิเคชันหรือ API ที่ไม่ได้เกี่ยวข้องกับบริการของคุณออก หากมีแอปขัดข้องเนื่องจากทรัพยากร Dependency ที่ไม่คาดคิด คุณสามารถเพิ่มแอปหรือ API ที่จำเป็นกลับเข้าไปได้

    • หากคุณทราบว่าแอป เว็บไซต์ หรือ API หายไปจากคำแนะนำอย่างชัดเจน ให้เพิ่มแอปนั้นด้วยตนเองหรือรอประมาณ 2-3 วันเพื่อให้คำแนะนำอัปเดต

    • หากต้องการความช่วยเหลือเพิ่มเติมเกี่ยวกับคำแนะนำที่แนะนำ โปรดติดต่อทีมสนับสนุน

  5. เลือกใช้

สิ่งที่ต้องทำหากการสมัครถูกปฏิเสธหลังจากใช้คำแนะนำ

หากคุณสังเกตเห็นว่าแอปหรือเว็บไซต์ถูกปฏิเสธหลังจากใช้การจำกัดแล้ว ให้มองหาการจำกัดแอปพลิเคชันที่ต้องเพิ่มลงในข้อความแสดงข้อผิดพลาดของการตอบกลับ API

สําหรับ SDK ฝั่งไคลเอ็นต์ โปรดดูด้านล่าง

หากต้องการตรวจสอบข้อจำกัด API ที่จำเป็น โปรดดูหัวข้อระบุ API ที่ใช้คีย์ API ของคุณ

หากคุณไม่สามารถระบุได้ว่าจะใช้ข้อจำกัดใด

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

ลบคีย์ API ที่ไม่ได้ใช้

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

วิธีลบคีย์ API

  1. เปิดหน้าข้อมูลเข้าสู่ระบบ Google Maps Platform ของ Google Cloud Console

  2. เลือกคีย์ API ที่ต้องการลบ

  3. เลือกปุ่มลบบริเวณด้านบนของหน้า

  4. ในหน้าลบข้อมูลเข้าสู่ระบบ ให้เลือกลบ

    การลบคีย์ API จะใช้เวลา 2-3 นาทีในการเผยแพร่ หลังจากการเผยแพร่เสร็จสมบูรณ์แล้ว การรับส่งข้อมูลที่ใช้คีย์ API ที่ถูกลบจะถูกปฏิเสธ

โปรดระมัดระวังเมื่อสร้างคีย์ API ใหม่

การสร้างคีย์ API ใหม่จะเป็นการสร้างคีย์ใหม่ที่มีข้อจำกัดของคีย์เก่าทั้งหมด กระบวนการนี้จะเริ่มต้นตัวจับเวลา 24 ชั่วโมงหลังลบคีย์ API เก่าด้วย

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

ก่อนสร้างคีย์ API ใหม่

  • ก่อนอื่นให้ลองจำกัดคีย์ API ตามที่อธิบายไว้ในจำกัดคีย์ API

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

หากทำตามคำแนะนำข้างต้นไม่ได้ และต้องสร้างคีย์ API ใหม่เพื่อป้องกันการใช้งานที่ไม่ได้รับอนุญาต ให้ทำตามขั้นตอนต่อไปนี้

  1. เปิดหน้าข้อมูลเข้าสู่ระบบ Google Maps Platform ของ Google Cloud Console

  2. เปิดคีย์ API ที่ต้องการสร้างใหม่

  3. เลือกสร้างคีย์ใหม่ที่ด้านบนของหน้า

  4. เลือกแทนที่คีย์

หมายเหตุ: หากจำเป็น คุณสามารถย้อนกลับคีย์ที่สร้างใหม่ไปเป็นเวอร์ชันก่อนหน้าได้ ไม่มีการจำกัดเวลาสำหรับการย้อนกลับ

วิธีย้อนกลับคีย์ที่สร้างใหม่

  1. เปิดหน้าข้อมูลเข้าสู่ระบบ Google Maps Platform ของ Google Cloud Console

  2. เปิดคีย์ API ที่ต้องการย้อนกลับ

  3. เลือกเปลี่ยนกลับไปเป็นคีย์ก่อนหน้า

  4. ในกล่องโต้ตอบเปลี่ยนกลับ ให้เลือกเปลี่ยนกลับคีย์

เมื่อย้อนกลับมา เวอร์ชันเดิมของคีย์ "ใหม่" จะกลายเป็นเวอร์ชันก่อนหน้าและมีการตั้งเวลาปิดใช้งาน 24 ชั่วโมงใหม่สำหรับคีย์ดังกล่าว คุณสามารถเปลี่ยนกลับระหว่างค่าคีย์ 2 ค่านี้จนกว่าจะสร้างคีย์อีกครั้ง

หากสร้างคีย์อีกครั้ง คีย์จะเขียนทับค่าคีย์เก่าที่ไม่ได้ใช้งาน

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

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

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

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

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

ปกป้องแอปโดยใช้ API เว็บแบบคงที่

API เว็บแบบคงที่ เช่น Maps Static API และ Street View Static API นั้นคล้ายกับการเรียก API บริการบนเว็บ

คุณเรียกใช้ API ทั้งสองโดยใช้ HTTPS REST API แบบง่าย และโดยปกติจะสร้าง URL คำขอ API บนเซิร์ฟเวอร์ อย่างไรก็ตาม แทนที่จะส่งคืนการตอบกลับ JSON API เว็บแบบคงที่จะสร้างรูปภาพที่คุณสามารถฝังในโค้ด HTML ที่สร้างขึ้น ที่สำคัญไปกว่านั้นก็คือโดยทั่วไปจะเป็นไคลเอ็นต์ของผู้ใช้ปลายทางที่เรียกใช้บริการ Google Maps Platform ไม่ใช่เซิร์ฟเวอร์

ใช้ลายเซ็นดิจิทัล

แนวทางปฏิบัติแนะนำคือให้ใช้ลายเซ็นดิจิทัลนอกเหนือจากคีย์ API เสมอ นอกจากนี้ ให้ตรวจสอบจำนวนคำขอที่ไม่มีลายเซ็นที่ต้องการอนุญาตต่อวัน และปรับโควต้าคำขอที่ไม่ได้ลงนามตามลำดับ

ดูรายละเอียดเพิ่มเติมเกี่ยวกับลายเซ็นดิจิทัลได้ที่คู่มือลายเซ็นดิจิทัล

ปกป้องข้อมูลลับในการลงชื่อ

หากต้องการปกป้อง API ของเว็บแบบคงที่ โปรดอย่าฝังข้อมูลลับในการรับรอง API ในโค้ดหรือในโครงสร้างแหล่งที่มาโดยตรง หรือเปิดเผยข้อมูลลับในแอปพลิเคชันฝั่งไคลเอ็นต์ ทำตามแนวทางปฏิบัติแนะนำเหล่านี้เพื่อปกป้องความลับในการลงนาม

  • ลงนามคำขอจากฝั่งเซิร์ฟเวอร์ ไม่ใช่ในไคลเอ็นต์ หากคุณลงนามฝั่งไคลเอ็นต์ใน JavaScript เท่ากับคุณเปิดเผยการดำเนินการดังกล่าวต่อใครก็ตามที่เข้าชมเว็บไซต์ ดังนั้นสำหรับรูปภาพที่สร้างขึ้นแบบไดนามิก ให้สร้าง URL คำขอ Maps API แบบคงที่และ Street View Static API ที่ลงลายเซ็นไว้ฝั่งเซิร์ฟเวอร์เสมอเมื่อแสดงหน้าเว็บ สำหรับเนื้อหาเว็บแบบคงที่ คุณสามารถใช้วิดเจ็ตลงนาม URL เลยในหน้าข้อมูลเข้าสู่ระบบ Google Maps Platform ของ Cloud Console

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

ปกป้องคีย์ API ในแอปโดยใช้บริการเว็บ

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

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

หากต้องการปกป้องแอปบนอุปกรณ์เคลื่อนที่ ให้ใช้คีย์สโตร์หรือพร็อกซีเซิร์ฟเวอร์ที่ปลอดภัยโดยทำดังนี้

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

  • ใช้พร็อกซีเซิร์ฟเวอร์ที่ปลอดภัย พร็อกซีเซิร์ฟเวอร์เป็นแหล่งข้อมูลที่แข็งแรงสำหรับการโต้ตอบกับ Google Maps Platform API ที่เหมาะสม สำหรับข้อมูลเพิ่มเติม เกี่ยวกับการใช้พร็อกซีเซิร์ฟเวอร์ โปรดดูที่ Living Vicsuchly: การใช้พร็อกซีเซิร์ฟเวอร์กับไลบรารีของไคลเอ็นต์ Google Data API

    • สร้างคำขอ Google Maps Platform บนพร็อกซีเซิร์ฟเวอร์ ไม่อนุญาตให้ไคลเอ็นต์ส่งต่อการเรียก API ที่กำหนดเองผ่านพร็อกซี

    • คำตอบของ Google Maps Platform หลังประมวลผลบนพร็อกซีเซิร์ฟเวอร์ กรองข้อมูลที่ไคลเอ็นต์ไม่จำเป็นต้องใช้ออก

จัดการการใช้คีย์ API ที่ไม่ได้รับอนุญาต

หากพบว่ามีการใช้คีย์ API ที่ไม่ได้รับอนุญาต ให้ดำเนินการดังต่อไปนี้เพื่อแก้ไขปัญหา

  1. จำกัดคีย์: หากคุณใช้คีย์เดียวกันในหลายๆ แอป ให้เปลี่ยนไปใช้คีย์ API หลายรายการและใช้คีย์ API แยกกันสำหรับแต่ละแอป ดูรายละเอียดเพิ่มเติมได้ที่

  2. สร้างคีย์อีกครั้งเท่านั้นหากจำกัดคีย์ไม่ได้ โปรดอ่านในส่วนโปรดระมัดระวังเมื่อสร้างคีย์ API ใหม่ ก่อนดำเนินการต่อ

  3. หากคุณยังคงพบปัญหาหรือต้องการความช่วยเหลือ โปรดติดต่อทีมสนับสนุน

ข้อจำกัดแอปพลิเคชันและ API ที่แนะนำ

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

ข้อจำกัด API ที่แนะนำ

ข้อจำกัดของ API ต่อไปนี้มีผลกับ Google Maps Platform ทั้งหมด

  • จำกัดคีย์ API ให้มีเฉพาะ API ที่คุณใช้เท่านั้น โดยมีข้อยกเว้นต่อไปนี้

    • หากแอปของคุณใช้ Places SDK สำหรับ Android หรือ Places SDK สำหรับ iOS ให้อนุญาต Places API

    • หากแอปใช้ Maps JavaScript API ให้ให้สิทธิ์ในคีย์ทุกครั้ง

    • หากใช้บริการ Maps JavaScript API ต่อไปนี้ด้วย คุณควรให้สิทธิ์ API ต่อไปนี้ด้วย

    บริการ ข้อจำกัด API
    บริการเส้นทาง, Maps JavaScript API Directions API
    บริการเมทริกซ์ระยะทาง, Maps JavaScript API Distance Matrix API
    บริการระดับความสูง, Maps JavaScript API Elevation API
    บริการการเข้ารหัสพิกัดภูมิศาสตร์, Maps JavaScript API Geocoding API
    Places Library, Maps JavaScript API Places 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 หรือเว็บ API แบบคงที่

สําหรับเว็บไซต์ที่ใช้บริการ Maps JavaScript หรือ Static Web API ให้ใช้ข้อจํากัดของแอปพลิเคชัน Websites

ใช้สำหรับเว็บไซต์ที่ใช้บริการ JavaScript และ API เหล่านี้

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

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

เว็บไซต์ที่มี Maps Embed API

แม้ว่าจะไม่มีค่าใช้จ่ายใน Maps Embed API แต่คุณควรจำกัดคีย์ API ที่ใช้เพื่อป้องกันการละเมิดในบริการอื่นๆ

แนวทางปฏิบัติแนะนำ: สร้างคีย์ API แยกต่างหากสำหรับการใช้ Maps Embed API และจำกัดคีย์นี้เฉพาะ Maps Embed API ข้อจำกัดนี้ช่วยรักษาความปลอดภัยของคีย์ได้อย่างเพียงพอ โดยป้องกันการใช้งานในบริการอื่นๆ ของ Google โดยไม่ได้รับอนุญาต

หากคุณแยกการใช้งาน Maps Embed API ออกเป็นคีย์ API แยกต่างหากไม่ได้ ให้รักษาความปลอดภัยคีย์โดยใช้การจำกัดแอปพลิเคชัน Websites

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

สำหรับแอปและเซิร์ฟเวอร์ที่ใช้บริการเว็บ ให้ใช้ข้อจำกัดแอปพลิเคชัน IP addresses

ใช้สำหรับแอปและเซิร์ฟเวอร์ที่ใช้ API เหล่านี้

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

แอป Android

สำหรับแอปใน Android ให้ใช้การจำกัดแอปพลิเคชัน Android apps ใช้สำหรับแอปและเซิร์ฟเวอร์ที่ใช้ SDK ต่อไปนี้

นอกจากนี้ ให้ป้องกันการตรวจสอบคีย์ API ในการควบคุมเวอร์ชันโดยไม่ได้ตั้งใจโดยใช้ Secrets Gradle Plugin เพื่อแทรกข้อมูลลับจากไฟล์ในเครื่องแทนที่จะจัดเก็บไว้ในไฟล์ Android Manifest

แอป iOS

สำหรับแอปใน iOS ให้ใช้ข้อจำกัดแอปพลิเคชัน iOS apps ใช้สำหรับแอปและเซิร์ฟเวอร์ที่ใช้ SDK ต่อไปนี้