Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Chroń poświadczenia Cloud aplikacji Firebase ML Apple

Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.

Jeśli Twoja aplikacja Apple korzysta z jednego z chmurowych interfejsów API Firebase ML, przed uruchomieniem aplikacji 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ę Poświadczenia 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 API wybierz Ogranicz klucz , a następnie dodaj do listy wszystkie API, do których chcesz mieć dostęp za pomocą klucza API. Upewnij się, że nie zawierasz interfejsu Cloud Vision API.

    Podczas konfigurowania ograniczeń interfejsu API klucza API jawnie deklarujesz interfejsy API, do których klucz ma dostęp. Domyślnie, gdy w sekcji Ograniczenia interfejsu API zaznaczona jest opcja Nie ograniczaj klucza , klucz interfejsu API może być używany do uzyskiwania dostępu do dowolnego interfejsu API, który jest włączony dla projektu.

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

Pamiętaj, że jeśli w przyszłości włączysz dodatkowe interfejsy API, musisz dodać je do listy ograniczeń interfejsu API dla odpowiedniego klucza interfejsu 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 interfejsu Cloud Vision API:

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

  2. Kliknij Utwórz dane logowania > Klucz API . Zanotuj nowy klucz API, a następnie kliknij Ogranicz klucz .

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

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

Aby złagodzić konsekwencje złamania klucza, zmniejsz limit na użytkownika interfejsu Cloud Vision API z ustawienia domyślnego. 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 Żądania na minutę na przydział użytkownika na wartość rozsądną dla Twojej aplikacji. Na przykład, jeśli Twoja aplikacja wymaga przesyłania obrazu dokumentu w celu odzyskania jego tekstu, jest mało prawdopodobne, że użytkownik zrobi to częściej niż raz na kilka sekund, więc limit 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 oczekujesz, że wielu użytkowników będzie korzystać z Twojej aplikacji w tym samym czasie zza translatora NAT.

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

Na koniec w swojej aplikacji skonfiguruj Firebase ML, aby korzystała z nowego klucza interfejsu API.

Ponieważ klucz Firebase ML API umożliwia nieuwierzytelniony dostęp do interfejsu Cloud Vision API, ważne jest, aby zachować poufność klucza, aby zapobiec nieautoryzowanemu użyciu i obciążeniom konta rozliczeniowego. Aby to zrobić, należy powstrzymać się od dołączania 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 interfejsu API z serwera.

Nawet jeśli przestrzegane są te praktyki, istnieje możliwość złamania klucza API. Należy podjąć kroki, które pomogą złagodzić konsekwencje złamanego klucza, takie jak zmniejszenie przydziału interfejsu 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.

Gdy aplikacja bezpiecznie pozyska klucz interfejsu API, jeśli 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ólnymi wskazówkami zawartymi w Securing a API key .

Następne kroki

Zobacz listę kontrolną uruchamiania , aby dowiedzieć się, jak przygotować aplikację do uruchomienia podczas korzystania z innych funkcji Firebase.