У нас есть api_key, api_secret для доступа к различным внешним сервисам. Это текущая архитектура/модель.Как защитить ключи API от кражи при совершении удаленных вызовов
пользователей (идентификатор, электронная почта ...) user_service_configs (идентификатор, user_id, api_key, api_secret)
Автономное приложение вызывает автономную службу, работающие на той же машине и проходами (user_id, api_key, api_secret) на проводе , Отдельная служба выполняет удаленный вызов внешней службы с использованием переданной информации. Ключ/секретные значения зависят от пользователя, поэтому он будет отличаться для всех. Я бы хотел, чтобы кто-то не следил за этими ценностями и не крал их.
Что было бы идеальным дизайном для управления этими api_key/secret (s). Должен ли я просто передать user_id и выполнить поиск базы данных на сервере, чтобы получить api_key/secret (s) или что еще я могу сделать, чтобы сделать это безопасным.
Удаленная служба не принадлежит нам, и некоторые из них по-прежнему не защищены, это то, что я не могу контролировать. Я ищу, чтобы выяснить, как управлять ключами в среде приложения. – Rpj
Хорошо, поэтому, если я правильно понимаю, ваша забота - это больше о защите ключей/секретов API, хранящихся на компьютере, на котором размещены автономные приложения и службы. Можете ли вы рассказать подробнее о своем окружении? Например, это серверная среда Windows/Linux или мобильное приложение? Похоже, что ключи/секреты API хранятся в базе данных прямо сейчас для каждого пользователя. Где находится эта база данных? –
База данных MySQL размещается в экземпляре RDS. Сервер (ы) запускаются в экземплярах EC2 на основе AMI на основе AMI. В настоящее время ключи api хранятся в виде обычного текста в определенной таблице. – Rpj