Об 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 разрешение из-за метода, который он использует для чтения секретов из хранилища.