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 la tua app iOS utilizza una delle API cloud di Firebase ML, prima di avviare la tua app in produzione, dovresti eseguire alcuni passaggi aggiuntivi per impedire l'accesso non autorizzato all'API.

1. Riduci l'ambito delle chiavi API esistenti

Per prima cosa, configura le tue chiavi API esistenti per non consentire l'accesso all'API Cloud Vision:

  1. Apri la pagina Credenziali della Google Cloud Console. Quando richiesto, seleziona il progetto con lo stesso nome del tuo progetto Firebase.

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

    Quando configuri le restrizioni API di una chiave API, dichiari 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 di cloud ML, ma continueranno a funzionare per tutte le API che hai abilitato tu stesso o che sono state abilitate automaticamente quando hai configurato Firebase.

Tieni presente che se in futuro abiliti altre API, devi aggiungerle anche all'elenco delle limitazioni API della chiave API.

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

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

  1. Torna 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 concede 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, dovresti ridurre la quota per utente dell'API Cloud Vision rispetto all'impostazione predefinita. Fare così:

  1. Apri la pagina Quote API Cloud Vision della Google Cloud Console. Quando richiesto, seleziona il progetto con lo stesso nome del tuo progetto Firebase.

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

    Notare che in questo contesto "richieste per utente" si riferisce a richieste provenienti da un singolo indirizzo IP. Potrebbe essere necessario tenerne conto se prevedi che più utenti utilizzino la tua app contemporaneamente da dietro un NAT.

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

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

Poiché la chiave dell'API Firebase ML consente l'accesso non autenticato all'API Cloud Vision, è importante mantenerla riservata per impedire l'uso non autorizzato e addebiti sul tuo account di fatturazione. Per fare ciò, dovresti evitare di includere la tua chiave API nel file binario dell'app. Invece, in fase di esecuzione dell'app, verifica che un buon utente noto abbia effettuato 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 mitigare le conseguenze di una chiave compromessa, come la riduzione della quota per utente dell'API come descritto sopra, l'implementazione dei 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 desideri chiamare un'API Firebase ML Cloud, specifica la chiave:

Swift

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

Obiettivo-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 per l' avvio per informazioni su come preparare l'app per l'avvio quando utilizzi altre funzionalità di Firebase.