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

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

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

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

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

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

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

    เมื่อคุณกำหนด ค่าข้อจำกัด API ของคีย์ API คุณกำลังประกาศ API ที่คีย์นั้นสามารถเข้าถึงได้อย่างชัดเจน ตามค่าเริ่มต้น เมื่อส่วน ข้อจำกัดของ 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 ให้เลือก คีย์จำกัด จากนั้นเพิ่ม เฉพาะ 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 APIs โดยใช้คีย์ Firebase ML API ของคุณ

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

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

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

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

สวิฟต์

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