Google is committed to advancing racial equity for Black communities. See how.
Questa pagina è stata tradotta dall'API Cloud Translation.
Switch to English

Proteggi le credenziali cloud della tua app iOS Firebase ML

Se l'app per iOS utilizza una delle API cloud di Firebase ML, prima di avviare l'app in produzione, è necessario adottare alcune misure aggiuntive per impedire l'accesso non autorizzato all'API.

1. Ridurre l'ambito delle chiavi API esistenti

Innanzitutto, configura le tue chiavi API esistenti per impedire l'accesso all'API Cloud Vision:

  1. Apri la pagina Credenziali della console cloud. Quando richiesto, selezionare il progetto con lo stesso nome del progetto Firebase.

  2. Per ogni chiave API nell'elenco, apri la vista di modifica e, nella sezione Restrizioni chiave, aggiungi tutte le API disponibili tranne l'API Cloud Vision all'elenco.

    Quando si configurano le restrizioni API di una chiave API, si dichiarano esplicitamente le API a cui la chiave concede l'accesso. Per impostazione predefinita, quando la sezione Restrizioni API è vuota, è possibile utilizzare una chiave API per accedere a qualsiasi API abilitata per il progetto.

Ora, le tue chiavi API esistenti non consentiranno l'accesso ai servizi cloud ML, ma continueranno a funzionare per qualsiasi API che hai abilitato o che è stata abilitata automaticamente quando configuri Firebase.

Se in futuro abiliti ulteriori API, devi anche aggiungerle all'elenco Restrizioni API della chiave API.

2. Creare una nuova chiave API da utilizzare con Firebase ML

Successivamente, crea una nuova chiave API per Firebase ML che consenta solo le chiamate all'API Cloud Vision:

  1. Ritorna alla pagina Credenziali . Assicurati che il tuo progetto Firebase sia ancora selezionato.

  2. Fai clic su Crea credenziali> Chiave API . Prendi nota della nuova chiave API, quindi fai clic su Limita chiave .

  3. Nella sezione Restrizioni chiave, aggiungi solo l'API Cloud Vision all'elenco.

Questa chiave API consente l'accesso solo all'API Cloud Vision e può essere utilizzata da Firebase ML per accedere a modelli basati su cloud.

Per aiutare a mitigare le conseguenze di una chiave compromessa, è necessario ridurre la quota per utente dell'API di Cloud Vision dalle impostazioni predefinite. Fare così:

  1. Apri la pagina Quote API di Cloud Vision della console cloud. Quando richiesto, selezionare il progetto con lo stesso nome del progetto Firebase.

  2. Nella sezione Richieste , imposta la quota Richieste al minuto per utente su un valore ragionevole per la tua app. Ad esempio, se l'app prevede il caricamento di un'immagine di un documento per recuperarne il testo, è improbabile che un utente lo faccia più di una volta ogni pochi secondi, quindi una quota di 30-40 sarebbe probabilmente sicura.

    Si noti che in questo contesto "richieste per utente" si riferisce a richieste da un singolo indirizzo IP. Potresti doverlo considerare se ti aspetti che più utenti utilizzino la tua app contemporaneamente da dietro un NAT.

4. Chiama le API Cloud utilizzando la chiave API di Firebase ML

Infine, nella tua app, configura Firebase ML per usare la tua nuova chiave API.

Poiché la chiave API di Firebase ML consente l'accesso non autenticato all'API di Cloud Vision, è importante mantenere la chiave riservata per impedire l'utilizzo e gli addebiti non autorizzati all'account di fatturazione. Per fare ciò, è necessario astenersi dall'includere la chiave API nel file binario dell'app. Al contrario, durante il runtime dell'app, verifica che un utente valido noto abbia eseguito l'accesso e solo allora recupera la chiave API da un server.

Anche quando si osservano queste pratiche, è possibile che una chiave API venga compromessa. È necessario adottare misure per aiutare a mitigare le conseguenze di una chiave compromessa, come la riduzione della quota per utente dell'API come descritto sopra, l'implementazione di criteri di rotazione delle chiavi e il rilascio di chiavi diverse a diversi gruppi di utenti.

Dopo che l'app ha acquisito in modo sicuro la chiave API, quando si desidera chiamare un'API Cloud Firebase ML, specificare la chiave:

veloce

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

Inoltre, è necessario seguire i consigli generali in Protezione di una chiave API .

Prossimi passi

Consulta l' elenco di controllo di avvio per informazioni sulla preparazione dell'app da avviare quando si utilizzano altre funzionalità di Firebase.