Защита ключей API
Ключ Google Cloud без ограничений — это ключ, которым может воспользоваться кто угодно и откуда угодно. Счёт за такое использование придёт вам. Ограничения решают проблему: ключ работает только из вашего приложения, с ваших адресов и только с теми сервисами, которые ему нужны.
Три правила, которые снижают ущерб от утечки ключа:
-
Ограничивайте ключ. Ограничения задают, откуда и для каких API ключ разрешён. Даже если он утечёт, воспользоваться им не получится.
-
Удаляйте лишние ключи. Всё, что больше не используется, — лишняя точка входа.
-
Меняйте ключи по расписанию. Создали новый, обновили приложение, старый удалили. Так ни один ключ не живёт вечно.
Ограничения для ключа
По умолчанию ключи создаются без ограничений. Добавить можно ограничения приложения — кто вправе использовать ключ, и ограничения API — к каким сервисам он даёт доступ.
Разберём на примере ключей Maps API: привяжем их к конкретным платформам через уникальные идентификаторы приложения.
Предполагается, что ключи у вас уже созданы, но пока ничем не ограничены. Если ключей ещё нет, пройдите настройку нужного сервиса Google Cloud — для карт это генерация ключей Maps.
Все созданные ключи собраны на странице учётных данных Cloud. Проверьте, что вошли под нужным аккаунтом Google и находитесь в нужном проекте.
Ниже показано, как разрешить ключ для iOS только приложениям с конкретным bundle ID:
Теперь ключ iOS сработает только при запросе из приложения с указанным идентификатором. Точно так же ключ ограничивают по HTTP referrers или IP addresses — вот сводка из официальной документации:

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