Google is committed to advancing racial equity for Black communities. See how.
Эта страница была переведа с помощью Cloud Translation API.
Switch to English

Защитите облачные учетные данные своего приложения Firebase ML iOS

Если ваше приложение для iOS использует один из облачных API-интерфейсов Firebase ML, прежде чем запускать приложение в работе, вы должны предпринять некоторые дополнительные шаги для предотвращения несанкционированного доступа к API.

1. Уменьшите область действия существующих ключей API

Сначала настройте существующие ключи API, чтобы запретить доступ к API Cloud Vision:

  1. Откройте страницу учетных данных консоли Cloud. При появлении запроса выберите проект с тем же именем, что и у вашего проекта Firebase.

  2. Для каждого ключа API в списке откройте представление редактирования и в разделе «Ограничения ключа» добавьте в список все доступные API, кроме API Cloud Vision.

    Когда вы настраиваете ограничения API для API-ключа, вы явно объявляете API-интерфейсы, к которым этот ключ предоставляет доступ. По умолчанию, когда раздел «Ограничения API» пуст, ключ API можно использовать для доступа к любому API, включенному для проекта.

Теперь ваши существующие ключи API не будут предоставлять доступ к облачным службам ML, но они будут продолжать работать для любых API, которые вы включили самостоятельно или которые были включены автоматически при настройке Firebase.

Обратите внимание, что если вы включите дополнительные API-интерфейсы в будущем, вы также должны добавить их в список API-ограничений ключа API.

2. Создайте новый ключ API для использования с Firebase ML

Затем создайте новый ключ API для Firebase ML, который разрешает вызовы только в API Cloud Vision:

  1. Вернитесь на страницу учетных данных . Убедитесь, что ваш проект Firebase все еще выбран.

  2. Нажмите Создать учетные данные> Ключ API . Запишите новый ключ API и нажмите « Ограничить ключ» .

  3. В разделе «Основные ограничения» добавьте в список только API Cloud Vision.

Этот ключ API предоставляет доступ только к API Cloud Vision и может использоваться Firebase ML для доступа к облачным моделям.

Чтобы помочь смягчить последствия скомпрометированного ключа, вы должны уменьшить квоту для каждого пользователя Cloud Vision API по умолчанию. Для этого:

  1. Откройте страницу « Квоты API Cloud Vision» консоли Cloud. При появлении запроса выберите проект с тем же именем, что и у вашего проекта Firebase.

  2. В разделе « Запросы » установите для параметра « Количество запросов в минуту на квоту пользователя» что-то приемлемое для вашего приложения. Например, если ваше приложение предполагает загрузку изображения документа для возврата его текста, маловероятно, что пользователь будет делать это чаще, чем раз в несколько секунд, поэтому квота 30-40, вероятно, будет безопасной.

    Обратите внимание, что в этом контексте «запросы на пользователя» относятся к запросам с одного IP-адреса. Возможно, вам следует учесть это, если вы ожидаете, что несколько пользователей будут одновременно использовать ваше приложение из-за NAT.

4. Вызовите API Cloud, используя ваш ключ Firebase ML API

Наконец, в вашем приложении настройте Firebase ML для использования вашего нового ключа API.

Поскольку ключ API Firebase ML обеспечивает неаутентифицированный доступ к API Cloud Vision, важно сохранять конфиденциальность ключа, чтобы предотвратить его несанкционированное использование и списание средств с вашего платежного счета. Для этого вам следует воздерживаться от включения вашего API-ключа в двоичный файл приложения. Вместо этого во время выполнения приложения убедитесь, что в систему зарегистрирован известный надежный пользователь, и только затем извлекайте ключ API с сервера.

Даже при соблюдении этих правил ключ API может быть скомпрометирован. Необходимо предпринять шаги, чтобы помочь смягчить последствия скомпрометированного ключа, такие как уменьшение квоты API для каждого пользователя, как описано выше, реализация политик ротации ключей и выдача разных ключей разным группам пользователей.

После того как ваше приложение безопасно получило ключ API, когда вы хотите вызвать Firebase ML Cloud API, укажите ключ:

стриж

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

Кроме того, вы должны следовать общим советам в разделе Защита ключа API .

Следующие шаги

См. Контрольный список запуска для получения информации о подготовке вашего приложения к запуску при использовании других функций Firebase.