Об Azure Key Vault
Azure Key Vault — это хранилище секретов: централизованная облачная служба для хранения секретов приложения, например значений конфигурации, таких как пароли и строка подключения, которые всегда должны оставаться безопасными. Key Vault помогает управлять секретами приложений, сохраняя их в одном центральном расположении. Он обеспечивает безопасный доступ, управление разрешениями и ведение журнала доступа.
Ниже перечислены основные преимущества использования Key Vault:
- Разделение конфиденциальных сведений о приложении от другой конфигурации и кода, что снижает риск случайной утечки.
- Возможно ограничение доступа к секретам за счет политик доступа, настраиваемых строго под необходимые приложения и пользователей.
- Централизованное хранилище секретов, то есть необходимо вносить изменения только в одном месте.
- Мониторинг и ведение журнала доступа помогают анализировать, когда и как осуществляется доступ к секретам.
Секреты хранятся в отдельных хранилищах, которые представляют собой ресурсы Azure, используемые для группировки секретов. Управление доступом к секретам и хранилищем осуществляется с помощью REST API. Все средства управления Azure и клиентские библиотеки, доступные для многих популярных языков, также поддерживают этот API. Каждое хранилище имеет уникальный URL-адрес, по которому размещается его API.
Внимание
Решение Key Vault предназначено для хранения секретов конфигурации серверных приложений. Он не предназначен для хранения данных, принадлежащих пользователям приложения. Его не следует использовать в клиентской части приложения. Это поведение отражается в его характеристике производительности, API и модели затрат.
Данные пользователей следует хранить в других местах, например в базе данных SQL Azure с прозрачным шифрованием данных или в учетной записи хранения с Шифрованием службы хранилища. Секреты, используемые приложением для доступа к этим хранилищам данных, можно хранить в Key Vault.
Что такое секрет в Key Vault?
В Key Vault секрет — это пара строк "имя-значение". Имена секретов должны быть длиной от 1 до 127 символов, могут содержать только буквы, цифры и дефисы и должны быть уникальными в пределах хранилища. Значение секрета может быть любой строкой в кодировке UTF-8 размером до 25 КБ.
Совет
Имена секретов сами по себе не являются особо секретными. Их можно хранить в конфигурации приложения, если этого требует реализация. То же самое относится и к именам и URL-адресам хранилищ.
Примечание.
Key Vault поддерживает два дополнительных типа секретов за пределами строк: ключи и сертификаты. Key Vault предоставляет полезные функциональные возможности, относящиеся к их вариантам использования. В данном модуле внимание этим функциям не уделяется. В нем рассматриваются только строковые секреты, такие как пароли и строки подключения.
Проверка подлинности и разрешения хранилища
API Key Vault использует идентификатор Microsoft Entra для проверки подлинности пользователей и приложений. Политики доступа к хранилищу основаны на действиях и применяются ко всему хранилищу. Например, приложение с Get
(значениями секретов чтения), List
(имена списков всех секретов) и (создание или обновление значений секретов) в хранилище может создавать секреты, перечислять все имена секретов, а Set
также получать и задавать все значения секретов в этом хранилище.
Все действия, выполняемые в хранилище, требуют проверки подлинности и авторизации. Нет способа предоставить какой-либо анонимный доступ.
Совет
При предоставлении доступа к хранилищу разработчикам и приложениям предоставьте только минимальный набор необходимых разрешений. Ограничение разрешений позволяет избежать инцидентов, возникающих из-за ошибок в коде, и сократить последствия кражи учетных данных или внедрения вредоносного кода в приложение.
Как правило, разработчикам требуются Get
только разрешения и List
разрешения для хранилища среды разработки. При необходимости некоторые инженеры нуждаются в полных разрешениях на изменение и добавление секретов.
Для приложений часто требуются только Get
разрешения. Для некоторых приложений может потребоваться в List
зависимости от способа реализации приложения. Приложению в упражнении этого модуля требуется List
разрешение из-за метода, который он использует для чтения секретов из хранилища.