Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

ปกป้องข้อมูลประจำตัว Cloud ของแอป Firebase ML Apple ของคุณ

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

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

1. ลดขอบเขตของคีย์ API ที่มีอยู่

ขั้นแรก กำหนดค่าคีย์ API ที่มีอยู่ของคุณเพื่อไม่อนุญาตให้เข้าถึง Cloud Vision API:

  1. เปิดหน้า ข้อมูลรับรอง ของ Google Cloud Console เมื่อได้รับแจ้ง ให้เลือกโครงการของคุณ

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

  3. ในส่วน ข้อจำกัด API ให้เลือก Restrict key จากนั้นเพิ่ม API ทั้งหมดที่คุณต้องการให้คีย์ API เข้าถึงในรายการ ตรวจสอบให้แน่ใจ ว่าไม่ได้ รวม Cloud Vision API

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

ตอนนี้ คีย์ API ที่มีอยู่ของคุณจะไม่ให้สิทธิ์เข้าถึงบริการ Cloud ML แต่แต่ละคีย์จะยังคงทำงานสำหรับ API ใดๆ ที่คุณเพิ่มลงในรายการ ข้อจำกัดของ API

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

2. สร้างคีย์ API ใหม่เพื่อใช้กับ Firebase ML

ถัดไป สร้างคีย์ API ใหม่สำหรับ Firebase ML ที่อนุญาตเฉพาะการเรียกไปยัง Cloud Vision API:

  1. กลับไปที่หน้า ข้อมูลรับรอง ตรวจสอบว่ายังคงเลือกโปรเจ็กต์ Firebase อยู่

  2. คลิก สร้างข้อมูลรับรอง > คีย์ API จดบันทึกคีย์ API ใหม่ จากนั้นคลิก จำกัดคีย์

  3. ในส่วนการ จำกัด API ให้เลือก จำกัดคีย์ จากนั้นเพิ่มเฉพาะ Cloud Vision API ในรายการ เท่านั้น

คีย์ API นี้ให้สิทธิ์เข้าถึงเฉพาะ Cloud Vision API และ Firebase ML สามารถใช้เพื่อเข้าถึงโมเดลบนคลาวด์ได้

เพื่อช่วยบรรเทาผลที่ตามมาของคีย์ที่ถูกบุกรุก คุณควรลดโควตาต่อผู้ใช้ของ Cloud Vision API จากการตั้งค่าเริ่มต้น ในการทำเช่นนั้น:

  1. เปิดหน้า โควต้า Cloud Vision API ของ Google Cloud Console เมื่อได้รับแจ้ง ให้เลือกโครงการของคุณ

  2. ในส่วน คำขอ กำหนดโควตา คำขอต่อนาทีต่อผู้ใช้ เป็นสิ่งที่สมเหตุสมผลสำหรับแอปของคุณ ตัวอย่างเช่น หากแอปของคุณเกี่ยวข้องกับการอัปโหลดรูปภาพของเอกสารเพื่อรับข้อความกลับ ไม่น่าเป็นไปได้ที่ผู้ใช้จะทำเช่นนั้นมากกว่าหนึ่งครั้งทุกๆ สองสามวินาที ดังนั้นโควต้า 30-40 ก็น่าจะปลอดภัย

    โปรดทราบว่าในบริบทนี้ "คำขอต่อผู้ใช้" หมายถึงคำขอจากที่อยู่ IP เดียว คุณอาจต้องพิจารณาเรื่องนี้หากคุณคาดหวังให้ผู้ใช้หลายคนใช้แอปของคุณพร้อมกันจากเบื้องหลัง NAT

4. เรียก Cloud API โดยใช้คีย์ Firebase ML API ของคุณ

สุดท้าย ในแอปของคุณ ให้กำหนดค่า Firebase ML เพื่อใช้คีย์ API ใหม่ของคุณ

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

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

หลังจากที่แอปของคุณได้รับคีย์ API อย่างปลอดภัยแล้ว เมื่อคุณต้องการเรียกใช้ Firebase ML Cloud API ให้ระบุคีย์:

Swift

if let cloudVisionKey = getYourApiKey() {  // See note above about securing your API key
    let options = VisionCloudDetectorOptions()
    options.apiKeyOverride = cloudVisionKey
    let cloudDetector = Vision.vision().cloudLandmarkDetector(options: options)
}

วัตถุประสงค์-C

NSString *cloudVisionKey = [self getYourApiKey];  // See note above about securing your API key
if (cloudVisionKey != nil) {
    FIRVisionCloudDetectorOptions *options =
            [[FIRVisionCloudDetectorOptions alloc] init];
    options.APIKeyOverride = cloudVisionKey;
    FIRVisionCloudLandmarkDetector *landmarkDetector =
            [vision cloudLandmarkDetectorWithOptions:options];
}

นอกจากนี้ คุณควรปฏิบัติตามคำแนะนำทั่วไปใน การรักษาความปลอดภัยคีย์ API

ขั้นตอนถัดไป

ดู รายการตรวจสอบการเปิดตัว สำหรับข้อมูลเกี่ยวกับการเตรียมแอปของคุณเพื่อเปิดใช้เมื่อใช้คุณลักษณะ Firebase อื่นๆ