Catch up on everything we announced at this year's Firebase Summit. Learn more

Proteja las credenciales en la nube de la aplicación Firebase ML de Apple

Si su aplicación de Apple utiliza una de las API en la nube de Firebase ML, antes de iniciar su aplicación en producción, debe tomar algunos pasos adicionales para evitar el acceso no autorizado a la API.

1. Reducir el alcance de las claves API existentes

Primero, configure sus claves de API existentes para no permitir el acceso a la API de Cloud Vision:

  1. Abra la Credenciales página de Google Cloud Console. Cuando se le solicite, seleccione su proyecto.

  2. Para cada clave de API existente en la lista, abra la vista de edición.

  3. En la sección restricciones de la API, seleccione Restringir clave, a continuación, añadir a la lista de todas las API a la que desea que la clave API para tener acceso. Asegúrese de no incluir la API de la nube de la visión.

    Al configurar las restricciones de la API de una clave de API, que está declarando explícitamente las API a las que la clave tenga acceso. Por defecto, cuando la sección de restricciones de la API ha no restringen la tecla seleccionada, una clave de API puede ser utilizado para acceder a cualquier API que esté habilitada para el proyecto.

Ahora, sus claves de la API existentes no permitir el acceso a los servicios de la nube ML, pero cada tecla seguirá trabajando para cualquier API que ha añadido a su lista de restricciones de la API.

Tenga en cuenta que si se habilita ninguna API adicionales en el futuro, debe agregar a la lista de restricciones de la API para la clave de API aplicable.

2. Cree una nueva clave de API para usar con Firebase ML

A continuación, cree una nueva clave de API para Firebase ML que solo permita llamadas a la API de Cloud Vision:

  1. Volver a la Credenciales página. Asegúrese de que su proyecto de Firebase aún esté seleccionado.

  2. Haga clic en Crear credenciales> clave de API. Tomar nota de la nueva clave de API, a continuación, haga clic en Restringir clave.

  3. En la sección restricciones de la API, seleccione Restringir clave, a continuación, añadir a la lista sólo la API de la nube de la visión.

Esta clave de API otorga acceso solo a la API de Cloud Vision y Firebase ML puede usarla para acceder a modelos basados ​​en la nube.

Para ayudar a mitigar las consecuencias de una clave comprometida, debe reducir la cuota por usuario de la API de Cloud Vision de su configuración predeterminada. Para hacerlo:

  1. Abrir el Cuotas la API de Cloud Vision página de Google Cloud Console. Cuando se le solicite, seleccione su proyecto.

  2. En las solicitudes sección, establecer las solicitudes por minuto por cuota de usuario a algo razonable para su aplicación. Por ejemplo, si su aplicación implica cargar una imagen de un documento para recuperar su texto, es poco probable que un usuario lo haga más de una vez cada pocos segundos, por lo que una cuota de 30-40 probablemente sería segura.

    Tenga en cuenta que, en este contexto, "solicitudes por usuario" se refiere a solicitudes de una única dirección IP. Es posible que deba considerar esto si espera que varios usuarios usen su aplicación al mismo tiempo desde detrás de un NAT.

4. Llame a las API de Cloud con su clave de API de Firebase ML

Finalmente, en su aplicación, configure Firebase ML para usar su nueva clave de API.

Debido a que la clave de la API de Firebase ML permite el acceso no autenticado a la API de Cloud Vision, es importante mantener la clave confidencial para evitar el uso no autorizado y los cargos a su cuenta de facturación. Para hacerlo, debe abstenerse de incluir su clave API en el binario de su aplicación. En su lugar, en el tiempo de ejecución de la aplicación, verifique que un buen usuario conocido haya iniciado sesión y, solo entonces, recupere la clave API de un servidor.

Incluso cuando se observan estas prácticas, es posible que una clave de API se vea comprometida. Debe tomar medidas para ayudar a mitigar las consecuencias de una clave comprometida, como reducir la cuota por usuario de la API como se describe anteriormente, implementar políticas de rotación de claves y emitir diferentes claves para diferentes grupos de usuarios.

Una vez que su aplicación haya adquirido de forma segura la clave de API, cuando desee llamar a una API de Firebase ML Cloud, especifique la clave:

Rápido

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

C objetivo

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

Además, se debe seguir el consejo general de Seguridad de una clave de API .

Próximos pasos

Ver la lista de control de lanzamiento para obtener información sobre la preparación de su aplicación para el lanzamiento cuando se utilizan otras funciones base de fuego.