Protege las credenciales de Cloud de tu app para iOS que implementa el Kit de AA

Si tu app para iOS usa una de las API de Cloud del kit de AA, antes de lanzarla a producción debes tomar algunas medidas adicionales para evitar que accedan a la API sin autorización.

1. Reduce el alcance de las claves de API existentes

Primero, a fin de configurar las claves de API existentes para inhabilitar el acceso a la API de Cloud Vision, haz lo siguiente:

  1. Abre la página Credenciales de Cloud Console. Cuando se te indique, selecciona el proyecto que tiene el mismo nombre de tu proyecto de Firebase.

  2. Para cada clave de API de la lista, abre la vista de edición y, en la sección “Restricciones de claves”, agrega todas las API disponibles a la lista excepto la de Cloud Vision.

    Cuando configuras las restricciones de API de una clave de API, declaras en forma explícita las API a las que otorga acceso la clave. Según la configuración predeterminada, cuando la sección “Restricciones de la API” está vacía, se puede usar una clave de API a fin de acceder a cualquier API que esté habilitada para el proyecto.

Si bien las claves de API existentes no otorgarán acceso a los servicios de AA de la nube, seguirán funcionando para cualquier API que hayas habilitado o que se haya habilitado en forma automática cuando configuraste Firebase.

Ten presente que si a futuro habilitas cualquier API adicional, también debes agregarla a la lista de “Restricciones de la API” de la clave de API.

2. Crea una clave de API nueva para usarla con el kit de AA

A continuación, a fin de crear una clave de API nueva para usarla con el kit de AA y que solo admita llamadas a la API de Cloud Vision, haz lo siguiente:

  1. Regresa a la página Credenciales. Asegúrate de que esté seleccionado el proyecto de Firebase.

  2. Haz clic en Crear credenciales > Clave de API. Anota la clave de API nueva y, luego, haz clic en Restringir clave.

  3. En la sección “Restricciones de claves”, agrega solo la API de Cloud Vision a la lista.

Esta clave de API solo otorga acceso a la API de Cloud Vision y el Kit de AA puede utilizarla para acceder a modelos basados en la nube.

3. Llama a las API de Cloud con la clave de API del kit de AA

Por último, configura el kit de AA en la app para usar tu clave de API nueva.

Debido a que la clave de API del kit de AA admite el acceso no autenticado a la API de Cloud Vision, es importante que no compartas la clave para evitar que la utilicen sin autorización y que aparezcan cobros en tu cuenta de facturación. Para ello, no incluyas la clave de API en el contenido binario de tu app. En cambio, en el entorno de ejecución verifica que haya accedido un usuario de confianza y solo entonces recupera la clave de API desde un servidor.

Aun cuando se sigan estas recomendaciones, es posible que se comprometa una clave de API. Debes tomar medidas para mitigar el uso excesivo de claves robadas, como implementar políticas de rotación de claves y emitir claves diferentes para grupos de usuarios distintos.

Una vez que tu app adquiera de manera segura la clave de API, especifica la siguiente clave cuando quieras llamar a una API de Cloud del kit de AA:

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

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

Además, debes aplicar las recomendaciones generales que aparecen en Cómo proteger una clave de API.

Próximos pasos

Consulta la lista de tareas para el lanzamiento a fin de obtener información sobre cómo preparar la app para iniciarla si usas otras funciones de Firebase.

Enviar comentarios sobre...

Si necesitas ayuda, visita nuestra página de asistencia.