рекомендации по хранению ключей доступа API в asp. NET MVC - PullRequest
1 голос
/ 24 апреля 2020

В настоящее время я храню все свои секретные ключи доступа API / библиотеки в web.config, а доступ к ним осуществляется в коде с помощью:

private static string AWSaccessKey = System.Web.Configuration.WebConfigurationManager.AppSettings["AWSaccessKey"];
private static string AWSprivateKey = System.Web.Configuration.WebConfigurationManager.AppSettings["AWSprivateKey"];

Я думал, что это было рекомендовано, а не напрямую кодирование паролей и ключей доступа. Хотя я только что получил письмо от AWS, сообщающее, что мой ключ доступа AWS взломан. Затем я просмотрел репозиторий Git и обнаружил, что мой файл web.config полностью доступен для просмотра; Я думал, что этот файл не будет включен в мое Git репо.

Может кто-нибудь, пожалуйста, посоветуйте, как я могу безопасно исправить эту ситуацию? Должен ли я добавить web.config в файл Git ignore? Если я сделаю это, будет ли мое приложение по-прежнему иметь доступ к ключам доступа в web.config, когда оно развернуто из конвейера с использованием моего Git репо?

1 Ответ

2 голосов
/ 24 апреля 2020

Прежде чем что-либо делать, деактивируйте скомпрометированный ключ API.
Затем найдите в своем хранилище любые другие ключи API, строки подключения и т. Д. c и деактивируйте их также.
Даже если вы удалите ключ из вашего кода и pu sh, он все еще находится в истории хранилища.


Лучше всего полностью хранить ваши ключи API и другую защищенную информацию вне базы кода.

Мое личное предпочтение состоит в том, чтобы хранить их в зашифрованных переменных среды в самой среде развертывания.
Этот подход также дает дополнительное преимущество, предотвращая случайное развертывание Prod API Key в среде QA (или наоборот).

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...