了解 2023 年 Google I/O 大会上介绍的 Firebase 亮点。了解详情

Chroń poświadczenia Cloud aplikacji Firebase ML Apple

Jeśli Twoja aplikacja Apple korzysta z jednego z chmurowych interfejsów API Firebase ML, zanim uruchomisz aplikację w środowisku produkcyjnym, wykonaj dodatkowe czynności, aby zapobiec nieautoryzowanemu dostępowi do interfejsu API.

1. Zmniejsz zakres istniejących kluczy API

Najpierw skonfiguruj istniejące klucze API, aby uniemożliwić dostęp do Cloud Vision API:

  1. Otwórz stronę Dane logowania w Google Cloud Console. Po wyświetleniu monitu wybierz swój projekt.

  2. Dla każdego istniejącego klucza API na liście otwórz widok do edycji.

  3. W sekcji Ograniczenia interfejsu API wybierz Ogranicz klucz , a następnie dodaj do listy wszystkie interfejsy API, do których chcesz mieć dostęp za pomocą klucza API. Upewnij się, że nie dołączasz Cloud Vision API.

    Konfigurując ograniczenia API klucza API , jawnie deklarujesz interfejsy API, do których klucz ma dostęp. Domyślnie, gdy w sekcji Ograniczenia interfejsu API wybrano opcję Nie ograniczaj klucza , klucz interfejsu API może służyć do uzyskiwania dostępu do dowolnego interfejsu API, który jest włączony w projekcie.

Teraz Twoje istniejące klucze API nie zapewnią dostępu do usług Cloud ML, ale każdy klucz będzie nadal działał dla wszystkich interfejsów API dodanych do listy ograniczeń API .

Pamiętaj, że jeśli w przyszłości włączysz dodatkowe interfejsy API, musisz dodać je do listy ograniczeń API dla odpowiedniego klucza API.

2. Utwórz nowy klucz API do użytku z Firebase ML

Następnie utwórz nowy klucz API dla Firebase ML, który zezwala tylko na wywołania Cloud Vision API:

  1. Wróć do strony Poświadczenia . Upewnij się, że Twój projekt Firebase jest nadal wybrany.

  2. Kliknij Utwórz poświadczenia > Klucz API . Zanotuj nowy klucz API, a następnie kliknij Ogranicz klucz .

  3. W sekcji Ograniczenia interfejsu API wybierz Ogranicz klucz , a następnie dodaj do listy tylko interfejs Cloud Vision API.

Ten klucz API zapewnia dostęp tylko do Cloud Vision API i może być używany przez Firebase ML do uzyskiwania dostępu do modeli opartych na chmurze.

Aby złagodzić konsekwencje przejętego klucza, należy zmniejszyć limit przydziału Cloud Vision API na użytkownika w stosunku do jego domyślnego ustawienia. Aby to zrobić:

  1. Otwórz stronę Cloud Vision API Quotas w Google Cloud Console. Po wyświetleniu monitu wybierz swój projekt.

  2. W sekcji Żądania ustaw limit liczby żądań na minutę na użytkownika na odpowiedni dla swojej aplikacji. Na przykład, jeśli Twoja aplikacja wymaga przesłania obrazu dokumentu w celu odzyskania jego tekstu, jest mało prawdopodobne, aby użytkownik zrobił to częściej niż raz na kilka sekund, więc przydział 30-40 byłby prawdopodobnie bezpieczny.

    Należy zauważyć, że w tym kontekście „żądania na użytkownika” odnoszą się do żądań z pojedynczego adresu IP. Może być konieczne rozważenie tego, jeśli spodziewasz się, że wielu użytkowników będzie korzystać z Twojej aplikacji w tym samym czasie zza translatora adresów sieciowych.

4. Wywołaj interfejsy Cloud API przy użyciu klucza Firebase ML API

Na koniec skonfiguruj w swojej aplikacji Firebase ML, aby używała nowego klucza API.

Ponieważ klucz Firebase ML API umożliwia nieuwierzytelniony dostęp do Cloud Vision API, ważne jest, aby zachować poufność klucza, aby zapobiec nieautoryzowanemu użyciu i obciążeniu konta rozliczeniowego. Aby to zrobić, nie dołączaj klucza API do pliku binarnego aplikacji. Zamiast tego w czasie wykonywania aplikacji sprawdź, czy zalogowany jest znany dobry użytkownik, a dopiero potem pobierz klucz API z serwera.

Nawet jeśli te praktyki są przestrzegane, możliwe jest złamanie klucza API. Należy podjąć kroki, które pomogą złagodzić konsekwencje przejętego klucza, takie jak zmniejszenie limitu API na użytkownika zgodnie z powyższym opisem, wdrożenie zasad rotacji kluczy i wydawanie różnych kluczy różnym grupom użytkowników.

Po bezpiecznym uzyskaniu przez aplikację klucza API, gdy chcesz wywołać interfejs Firebase ML Cloud API, określ klucz:

Szybki

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)
}

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

Ponadto należy postępować zgodnie z ogólną radą zawartą w sekcji Zabezpieczanie klucza API .

Następne kroki

Zapoznaj się z listą kontrolną uruchamiania , aby uzyskać informacje na temat przygotowania aplikacji do uruchomienia podczas korzystania z innych funkcji Firebase.