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

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

1. मौजूदा API कुंजियों का दायरा कम करें

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. Google क्लाउड कंसोल का क्लाउड विज़न API कोटा पृष्ठ खोलें। संकेत मिलने पर, अपनी परियोजना का चयन करें।

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

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

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

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

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

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

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

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

अगले कदम

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