Catch up on highlights from Firebase at Google I/O 2023. Learn more

अपने Firebase ML Apple ऐप के क्लाउड क्रेडेंशियल को सुरक्षित रखें

यदि आपका ऐप्पल ऐप फायरबेस एमएल के क्लाउड एपीआई में से एक का उपयोग करता है, तो इससे पहले कि आप अपने ऐप को उत्पादन में लॉन्च करें, आपको अनधिकृत एपीआई एक्सेस को रोकने के लिए कुछ अतिरिक्त कदम उठाने चाहिए।

1. मौजूदा एपीआई कुंजियों का दायरा कम करें

सबसे पहले, क्लाउड विजन एपीआई तक पहुंच को अस्वीकार करने के लिए अपनी मौजूदा एपीआई कुंजियां कॉन्फ़िगर करें:

  1. Google क्लाउड कंसोल का क्रेडेंशियल पेज खोलें। संकेत मिलने पर, अपनी परियोजना का चयन करें।

  2. सूची में प्रत्येक मौजूदा API कुंजी के लिए, संपादन दृश्य खोलें।

  3. एपीआई प्रतिबंध अनुभाग में, कुंजी को प्रतिबंधित करें का चयन करें, फिर सूची में उन सभी एपीआई को जोड़ें, जिन तक आप चाहते हैं कि एपीआई कुंजी की पहुंच हो। क्लाउड विजन एपीआई को शामिल नहीं करना सुनिश्चित करें।

    जब आप किसी API कुंजी के API प्रतिबंधों को कॉन्फ़िगर करते हैं, तो आप स्पष्ट रूप से उन API की घोषणा कर रहे होते हैं जिन तक कुंजी की पहुंच होती है. डिफ़ॉल्ट रूप से, जब एपीआई प्रतिबंध अनुभाग में चयनित कुंजी को प्रतिबंधित न करें , तो परियोजना के लिए सक्षम किसी भी एपीआई तक पहुंचने के लिए एपीआई कुंजी का उपयोग किया जा सकता है।

अब, आपकी मौजूदा एपीआई कुंजी क्लाउड एमएल सेवाओं तक पहुंच प्रदान नहीं करेगी, लेकिन प्रत्येक कुंजी किसी भी एपीआई के लिए काम करना जारी रखेगी जिसे आपने इसकी एपीआई प्रतिबंध सूची में जोड़ा है।

ध्यान दें कि यदि आप भविष्य में कोई अतिरिक्त एपीआई सक्षम करते हैं, तो आपको उन्हें लागू एपीआई कुंजी के लिए एपीआई प्रतिबंध सूची में जोड़ना होगा।

2. फायरबेस एमएल के साथ उपयोग के लिए एक नई एपीआई कुंजी बनाएं

इसके बाद, फायरबेस एमएल के लिए एक नई एपीआई कुंजी बनाएं जो केवल क्लाउड विजन एपीआई को कॉल करने की अनुमति देती है:

  1. साख पृष्ठ पर लौटें। सुनिश्चित करें कि आपका फायरबेस प्रोजेक्ट अभी भी चुना हुआ है।

  2. क्रेडेंशियल बनाएं > API कुंजी क्लिक करें. नई API कुंजी पर ध्यान दें, फिर कुंजी प्रतिबंधित करें पर क्लिक करें।

  3. एपीआई प्रतिबंध अनुभाग में, प्रतिबंधित कुंजी का चयन करें, फिर सूची में केवल क्लाउड विजन एपीआई जोड़ें।

यह एपीआई कुंजी केवल क्लाउड विजन एपीआई तक पहुंच प्रदान करती है और फायरबेस एमएल द्वारा क्लाउड-आधारित मॉडल तक पहुंचने के लिए इसका उपयोग किया जा सकता है।

किसी समझौता कुंजी के परिणामों को कम करने में सहायता के लिए, आपको क्लाउड विजन एपीआई के प्रति-उपयोगकर्ता कोटा को इसकी डिफ़ॉल्ट सेटिंग से कम करना चाहिए। ऐसा करने के लिए:

  1. Google क्लाउड कंसोल का क्लाउड विजन एपीआई कोटा पेज खोलें। संकेत मिलने पर, अपनी परियोजना का चयन करें।

  2. अनुरोध अनुभाग में, अनुरोध प्रति मिनट प्रति उपयोगकर्ता कोटा को अपने ऐप के लिए कुछ उचित पर सेट करें। उदाहरण के लिए, यदि आपके ऐप में अपने पाठ को वापस पाने के लिए किसी दस्तावेज़ की तस्वीर अपलोड करना शामिल है, तो इसकी संभावना नहीं है कि उपयोगकर्ता हर कुछ सेकंड में एक से अधिक बार ऐसा करेगा, इसलिए 30-40 का कोटा संभवतः सुरक्षित रहेगा।

    ध्यान दें कि इस संदर्भ में "प्रति उपयोगकर्ता अनुरोध" एक एकल आईपी पते से अनुरोधों को संदर्भित करता है। यदि आप अपेक्षा करते हैं कि NAT के पीछे से एक ही समय में एकाधिक उपयोगकर्ता आपके ऐप का उपयोग करेंगे, तो आपको इस पर विचार करने की आवश्यकता हो सकती है।

4. अपनी फायरबेस एमएल एपीआई कुंजी का उपयोग करके क्लाउड एपीआई को कॉल करें

अंत में, अपने ऐप में, अपनी नई API कुंजी का उपयोग करने के लिए Firebase ML को कॉन्फ़िगर करें।

चूंकि फायरबेस एमएल एपीआई कुंजी क्लाउड विजन एपीआई तक अप्रामाणिक पहुंच की अनुमति देती है, इसलिए आपके बिलिंग खाते के अनधिकृत उपयोग और शुल्कों को रोकने के लिए कुंजी को गोपनीय रखना महत्वपूर्ण है। ऐसा करने के लिए, आपको अपनी ऐप बाइनरी में अपनी एपीआई कुंजी को शामिल करने से बचना चाहिए। इसके बजाय, ऐप रनटाइम पर, सत्यापित करें कि एक ज्ञात अच्छे उपयोगकर्ता ने साइन इन किया है, और उसके बाद ही, सर्वर से एपीआई कुंजी प्राप्त करें।

यहां तक ​​कि जब इन प्रथाओं का पालन किया जाता है, तब भी संभव है कि एपीआई कुंजी से समझौता किया जाए। आपको एक समझौता कुंजी के परिणामों को कम करने में मदद करने के लिए कदम उठाने चाहिए, जैसे ऊपर वर्णित एपीआई के प्रति-उपयोगकर्ता कोटा को कम करना, कुंजी रोटेशन नीतियों को लागू करना और उपयोगकर्ताओं के विभिन्न समूहों को अलग-अलग कुंजी जारी करना।

आपके ऐप द्वारा सुरक्षित रूप से 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)
}

उद्देश्य सी

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];
}

इसके अलावा, आपको एपीआई कुंजी सुरक्षित करने में सामान्य सलाह का पालन करना चाहिए।

अगले कदम

अन्य फायरबेस सुविधाओं का उपयोग करते समय लॉन्च करने के लिए अपने ऐप को तैयार करने के बारे में जानकारी के लिए लॉन्च चेकलिस्ट देखें।