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

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

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

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

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

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

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

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

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

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

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

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

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

  2. साख बनाएं> API कुंजी पर क्लिक करें। नई API कुंजी को ध्यान में रखना है, तो प्रतिबंधित कुंजी क्लिक करें।

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

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

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

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

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

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

अगला कदम

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