Catch up on everthing we announced at this year's Firebase Summit. Learn more

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

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

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

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

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

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

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

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

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

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

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

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

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

  2. คลิกสร้างข้อมูลประจำตัว> คีย์ API จดคีย์ API ใหม่แล้วคลิกคีย์ จำกัด

  3. ในส่วนข้อ จำกัด ของ API เลือกคีย์ จำกัด แล้วเพิ่มในรายการเท่านั้นเมฆวิสัยทัศน์ API

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

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

  1. เปิด เมฆวิสัยทัศน์ API โควต้า หน้าของคอนโซลระบบคลาวด์ของ Google เมื่อได้รับแจ้ง ให้เลือกโครงการของคุณ

  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 อื่น ๆ