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

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

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

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

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

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

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

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

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

שים לב שאם תפעיל APIs נוספים בעתיד, עליך להוסיף אותם לרשימת מגבלות ה-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 Quotas של מסוף Google Cloud. כאשר תתבקש, בחר את הפרויקט שלך.

  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 .

הצעדים הבאים

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