ปกป้องข้อมูลเข้าสู่ระบบระบบคลาวด์ของแอป Firebase ML ใน Apple

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

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

ก่อนอื่น ให้กำหนดค่าคีย์ API ที่มีอยู่เพื่อไม่ให้สิทธิ์การเข้าถึง Cloud Vision API:

  1. เปิดหน้าข้อมูลเข้าสู่ระบบของ คอนโซล Google Cloud เมื่อได้รับข้อความแจ้ง ให้เลือกโปรเจ็กต์

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

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

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

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

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

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

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

  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 เมื่อได้รับข้อความแจ้ง ให้เลือกโปรเจ็กต์

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

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

4. เรียกใช้ Cloud APIs โดยใช้คีย์ 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)
}

Objective-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