Check out what’s new from Firebase at Google I/O 2022. Learn more

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 des mesures supplémentaires pour empêcher tout accès non autorisé à l'API.

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

Commencez par configurer vos clés API existantes pour interdire l'accès à l'API Cloud Vision :

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

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

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

    Lorsque vous configurez les restrictions d'API d'une clé d'API , vous déclarez explicitement les API auxquelles la clé a accès. Par défaut, lorsque la section Restrictions d'API a la clé Ne pas restreindre sélectionnée, une clé d'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 de 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é d'API applicable.

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

Ensuite, créez une clé d'API pour Firebase ML qui n'autorise que les appels vers l'API Cloud Vision :

  1. Retournez à la page Identifiants . Assurez-vous que votre projet Firebase est toujours sélectionné.

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

  3. Dans la section Restrictions d'API , sélectionnez Restreindre la clé , puis ajoutez à la liste uniquement l'API Cloud Vision.

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

Pour aider à 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 Google Cloud Console. Lorsque vous y êtes invité, sélectionnez votre projet.

  2. Dans la section Requêtes , définissez le quota Requêtes par minute 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, les "requêtes par utilisateur" font référence aux requêtes provenant d'une seule adresse IP. Vous devrez peut-être en tenir compte si vous vous attendez à ce que plusieurs utilisateurs utilisent votre application en même temps derrière un NAT.

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

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

Étant donné que la clé d'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 les frais 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é d'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 aider à atténuer les conséquences d'une clé compromise, telles que la réduction du quota par utilisateur de l'API comme décrit ci-dessus, la mise en œuvre de politiques de rotation des clés et l'émission de clés différentes pour 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 savoir comment préparer le lancement de votre application lors de l'utilisation d'autres fonctionnalités de Firebase.