Защита ключей API

Ключ Google Cloud без ограничений — это ключ, которым может воспользоваться кто угодно и откуда угодно. Счёт за такое использование придёт вам. Ограничения решают проблему: ключ работает только из вашего приложения, с ваших адресов и только с теми сервисами, которые ему нужны.

Три правила, которые снижают ущерб от утечки ключа:

  • Ограничивайте ключ. Ограничения задают, откуда и для каких API ключ разрешён. Даже если он утечёт, воспользоваться им не получится.

  • Удаляйте лишние ключи. Всё, что больше не используется, — лишняя точка входа.

  • Меняйте ключи по расписанию. Создали новый, обновили приложение, старый удалили. Так ни один ключ не живёт вечно.

Ограничения для ключа

По умолчанию ключи создаются без ограничений. Добавить можно ограничения приложения — кто вправе использовать ключ, и ограничения API — к каким сервисам он даёт доступ.

Разберём на примере ключей Maps API: привяжем их к конкретным платформам через уникальные идентификаторы приложения.

Предполагается, что ключи у вас уже созданы, но пока ничем не ограничены. Если ключей ещё нет, пройдите настройку нужного сервиса Google Cloud — для карт это генерация ключей Maps.

Все созданные ключи собраны на странице учётных данных Cloud. Проверьте, что вошли под нужным аккаунтом Google и находитесь в нужном проекте.

Ниже показано, как разрешить ключ для iOS только приложениям с конкретным bundle ID:

Теперь ключ iOS сработает только при запросе из приложения с указанным идентификатором. Точно так же ключ ограничивают по HTTP referrers или IP addresses — вот сводка из официальной документации:

Типы ограничений приложения для ключа API

заметка
Подробности

Как защищать ключи на всех платформах и ограничивать список доступных API — в документации Google Cloud.

перевод официальной документации FlutterFlow

обновлено

⌕ ESC