Schützen Sie die Cloud-Anmeldedaten Ihrer Firebase ML Apple App

Wenn Ihre Apple-App eine der Cloud-APIs von Firebase ML verwendet, sollten Sie vor dem Start Ihrer App in der Produktion einige zusätzliche Schritte unternehmen, um unbefugten API-Zugriff zu verhindern.

1. Reduzieren Sie den Umfang vorhandener API-Schlüssel

Konfigurieren Sie zunächst Ihre vorhandenen API-Schlüssel, um den Zugriff auf die Cloud Vision API zu verweigern:

  1. Öffnen Sie die Credentials - Seite der Google Cloud Console. Wählen Sie Ihr Projekt aus, wenn Sie dazu aufgefordert werden.

  2. Öffnen Sie für jeden vorhandenen API-Schlüssel in der Liste die Bearbeitungsansicht.

  3. In dem API - Einschränkungen Wählen Sie im Abschnitt Schlüssel einschränken, dann zu der Liste hinzufügen alle APIs , zu denen Sie der API - Schlüssel Zugang haben wollen. Achten Sie darauf, nicht schließen die Cloud - Vision - API.

    Wenn Sie einen API - Schlüssel API Einschränkungen konfigurieren, erklären Sie ausdrücklich die APIs zu dem der Schlüssel Zugriff hat. In der Standardeinstellung , wenn der API Einschränkungen Abschnitt hat Do Schlüssel ausgewählt nicht einschränken, kann ein API - Schlüssel verwendet werden , um eine API für den Zugriff auf die für das Projekt aktiviert ist.

Nun, Ihr bestehender API - Schlüssel keinen Zugriff auf Cloud - ML Dienste gewähren, aber jeder Schlüssel zur Arbeit für alle APIs weiterhin , dass Sie auf seine API Einschränkungen Liste hinzugefügt.

Beachten Sie, dass , wenn Sie irgendwelche zusätzlichen APIs in Zukunft ermöglichen, können Sie sie in die API - Einschränkungen Liste für den entsprechenden API - Schlüssel hinzufügen.

2. Erstellen Sie einen neuen API-Schlüssel zur Verwendung mit Firebase ML

Erstellen Sie als Nächstes einen neuen API-Schlüssel für Firebase ML, der nur Aufrufe der Cloud Vision API zulässt:

  1. Rückkehr zur Credentials Seite. Stellen Sie sicher, dass Ihr Firebase-Projekt noch ausgewählt ist.

  2. Klicken Sie auf Create credentials> API - Schlüssel. Beachten Sie die neue API - Schlüssel, klicken Sie dann auf Schlüssel einschränken.

  3. Nur der Cloud - Vision - API in dem API - Einschränkungen Wählen Sie im Abschnitt Schlüssel einschränken, dann in die Liste aufzunehmen.

Dieser API-Schlüssel gewährt nur Zugriff auf die Cloud Vision API und kann von Firebase ML verwendet werden, um auf Cloud-basierte Modelle zuzugreifen.

Um die Folgen eines kompromittierten Schlüssels abzumildern, sollten Sie das Kontingent der Cloud Vision API pro Benutzer gegenüber der Standardeinstellung reduzieren. Um dies zu tun:

  1. Öffnen Sie die Cloud - Vision - API Quotas Seite der Google Cloud Console. Wählen Sie Ihr Projekt aus, wenn Sie dazu aufgefordert werden.

  2. Im Kapitel, stellen Sie die Anfragen pro Minute pro Benutzer Quote etwas Vernünftiges für Ihre Anwendung. Wenn Ihre App beispielsweise das Hochladen eines Bildes eines Dokuments beinhaltet, um den Text zurückzubekommen, ist es unwahrscheinlich, dass ein Benutzer dies mehr als einmal alle paar Sekunden tut, daher wäre ein Kontingent von 30 bis 40 wahrscheinlich sicher.

    Beachten Sie, dass sich "Anfragen pro Benutzer" in diesem Zusammenhang auf Anfragen von einer einzigen IP-Adresse bezieht. Sie müssen dies möglicherweise berücksichtigen, wenn Sie erwarten, dass mehrere Benutzer Ihre App gleichzeitig hinter einem NAT verwenden.

4. Rufen Sie Cloud APIs mit Ihrem Firebase ML API-Schlüssel auf

Konfigurieren Sie schließlich in Ihrer App Firebase ML für die Verwendung Ihres neuen API-Schlüssels.

Da der Firebase ML API-Schlüssel nicht authentifizierten Zugriff auf die Cloud Vision API ermöglicht, ist es wichtig, den Schlüssel vertraulich zu behandeln, um eine unbefugte Verwendung und Belastung Ihres Rechnungskontos zu verhindern. Dazu sollten Sie Ihren API-Schlüssel nicht in Ihre App-Binärdatei aufnehmen. Überprüfen Sie stattdessen während der App-Laufzeit, ob ein bekanntermaßen funktionierender Benutzer angemeldet ist, und rufen Sie erst dann den API-Schlüssel von einem Server ab.

Selbst wenn diese Praktiken eingehalten werden, ist es möglich, dass ein API-Schlüssel kompromittiert wird. Sie sollten Maßnahmen ergreifen, um die Folgen eines kompromittierten Schlüssels abzumildern, z.

Nachdem Ihre App den API-Schlüssel sicher abgerufen hat und Sie eine Firebase ML Cloud-API aufrufen möchten, geben Sie den Schlüssel an:

Schnell

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

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

Darüber hinaus sollten Sie die allgemeine Beratung in folgen Absichern einer API - Schlüssel .

Nächste Schritte

Finden Sie in der Start - Checkliste , um Informationen zu Ihrer App zu starten Vorbereitung , wenn andere Firebase Funktionen verwenden.