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

הגן על אישורי הענן של אפליקציית Apple של Firebase ML שלך

אם אפליקציית Apple שלך ​​משתמשת באחד ממשקי הענן של Firebase ML, לפני שתפעיל את האפליקציה שלך בייצור, עליך לנקוט כמה צעדים נוספים כדי למנוע גישה לא מורשית ל-API.

1. צמצם את היקף מפתחות ה-API הקיימים

ראשית, הגדר את מפתחות ה-API הקיימים שלך כדי לא לאפשר גישה ל-Cloud Vision API:

  1. פתח את האישורים בדף של קונסולת הענן של Google. כאשר תתבקש, בחר את הפרויקט שלך.

  2. עבור כל מפתח API קיים ברשימה, פתח את תצוגת העריכה.

  3. במקטע הגבלות API, בחר הגבל המפתח, ואז להוסיף לרשימה את כל APIs שאליו אתה רוצה את המפתח API כדי לקבל גישה. הקפד לא כולל את ה- API חזון קלאוד.

    כשאתה להגדיר מגבלות API של מפתח API, אתה במפורש מכריז על APIs שאל המפתח יש גישה. כברירת מחדל, כאשר סעיף הגבלות API יש לא מגבילים שנבחרו מפתח, מפתח API ניתן להשתמש בו כדי לגשת API המופעלת לצורך הפרויקט.

עכשיו, מפתחות API הקיים שלך לא יעניק גישה לשירותי ענן ML, אבל כל מקש ימשיכו לעבוד עבור כל APIs שהוספת לרשימת ההגבלות API שלה.

הערה שאם תפעיל כול APIs נוסף בעתיד, אתה חייב להוסיף אותם לרשימת הגבלות 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 באמצעות מפתח ה-API של Firebase ML

לבסוף, באפליקציה שלך, הגדר את Firebase ML להשתמש במפתח ה-API החדש שלך.

מכיוון שמפתח ה-API של Firebase ML מאפשר גישה לא מאומתת ל-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)
}

Objective-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 .

הצעדים הבאים

עיין checklist ההשקה לקבלת מידע על הכנת האפליקציה כדי ההשקה במהלך שימוש בתכונות אחרות Firebase.