Protégez les informations d'identification Cloud de votre application Firebase ML Apple

Si votre application Apple utilise l'une des API cloud de Firebase ML, avant de lancer votre application en production, vous devez prendre quelques mesures supplémentaires pour empêcher tout accès non autorisé à l'API.

1. Réduire la portée des clés API existantes

Tout d'abord, configurez vos clés API existantes pour interdire l'accès à l'API Cloud Vision :

  1. Ouvrez la page Identifiants de la console Google Cloud. Lorsque vous y êtes invité, sélectionnez votre projet.

  2. Pour chaque clé API existante dans la liste, ouvrez la vue d'édition.

  3. Dans la section Restrictions API , sélectionnez Restreindre la clé , puis ajoutez à la liste toutes les API auxquelles vous souhaitez que la clé API ait accès. Assurez-vous de ne pas inclure l'API Cloud Vision.

    Lorsque vous configurez les restrictions API d'une clé API, vous déclarez explicitement les API auxquelles la clé a accès. Par défaut, lorsque la section Restrictions de l'API a la clé Ne pas restreindre sélectionnée, une clé API peut être utilisée pour accéder à n'importe quelle API activée pour le projet.

Désormais, vos clés API existantes n'accorderont pas l'accès aux services cloud ML, mais chaque clé continuera à fonctionner pour toutes les API que vous avez ajoutées à sa liste de restrictions d'API .

Notez que si vous activez des API supplémentaires à l'avenir, vous devez les ajouter à la liste des restrictions d'API pour la clé API applicable.

2. Créez une nouvelle clé API à utiliser avec Firebase ML

Ensuite, créez une nouvelle clé API pour Firebase ML qui autorise uniquement les appels à l'API Cloud Vision :

  1. Revenez à la page Informations d'identification . Assurez-vous que votre projet Firebase est toujours sélectionné.

  2. Cliquez sur Créer des informations d'identification > Clé API . Prenez note de la nouvelle clé API, puis cliquez sur Restreindre la clé .

  3. Dans la section Restrictions de l'API , sélectionnez Restrict key , puis ajoutez à la liste uniquement l'API Cloud Vision.

Cette clé API accorde l'accès uniquement à l'API Cloud Vision et peut être utilisée par Firebase ML pour accéder aux modèles basés sur le cloud.

Pour contribuer à atténuer les conséquences d'une clé compromise, vous devez réduire le quota par utilisateur de l'API Cloud Vision par rapport à son paramètre par défaut. Faire cela:

  1. Ouvrez la page Quotas de l'API Cloud Vision de la console Google Cloud. Lorsque vous y êtes invité, sélectionnez votre projet.

  2. Dans la section Requêtes , définissez le quota de requêtes par minute et par utilisateur sur une valeur raisonnable pour votre application. Par exemple, si votre application implique de télécharger une image d'un document pour récupérer son texte, il est peu probable qu'un utilisateur le fasse plus d'une fois toutes les quelques secondes, donc un quota de 30 à 40 serait probablement sûr.

    Notez que dans ce contexte, « requêtes par utilisateur » fait référence aux requêtes provenant d'une seule adresse IP. Vous devrez peut-être en tenir compte si vous prévoyez que plusieurs utilisateurs utilisent votre application en même temps derrière un NAT.

4. Appelez les API Cloud à l'aide de votre clé API Firebase ML

Enfin, dans votre application, configurez Firebase ML pour utiliser votre nouvelle clé API.

Étant donné que la clé API Firebase ML permet un accès non authentifié à l'API Cloud Vision, il est important de garder la clé confidentielle pour empêcher toute utilisation non autorisée et tout prélèvement sur votre compte de facturation. Pour ce faire, vous devez vous abstenir d’inclure votre clé API dans le binaire de votre application. Au lieu de cela, au moment de l'exécution de l'application, vérifiez qu'un bon utilisateur connu est connecté, puis récupérez la clé API à partir d'un serveur.

Même lorsque ces pratiques sont observées, il est possible qu’une clé API soit compromise. Vous devez prendre des mesures pour contribuer à atténuer les conséquences d'une clé compromise, par exemple en réduisant le quota par utilisateur de l'API comme décrit ci-dessus, en mettant en œuvre des politiques de rotation des clés et en attribuant différentes clés à différents groupes d'utilisateurs.

Une fois que votre application a acquis la clé API en toute sécurité, lorsque vous souhaitez appeler une API Firebase ML Cloud, spécifiez la clé :

Rapide

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

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

De plus, vous devez suivre les conseils généraux dans Sécuriser une clé API .

Prochaines étapes

Consultez la liste de contrôle de lancement pour plus d'informations sur la préparation du lancement de votre application lorsque vous utilisez d'autres fonctionnalités de Firebase.