Как создать иерархические структуры данных в хранилищах ключей Azure - PullRequest
0 голосов
/ 10 мая 2018

Мне нужен способ хранения иерархических данных в хранилищах ключей Azure, чтобы у меня была структура, подобная:

AppName
  /Prod
    /Data
  /Test
    /Data
AppName2
  /Prod
    /Data

...

Насколько я могу судить, я могу хранить только плоскую структуру данных. Я хочу иметь возможность хранить данные, аналогичные Vault от HashiCorp, который допускает иерархию.

Например, в Vault от HashiCorp я могу получить данные, используя «путь»: «app / test / TestConnection», и получаю значение в конечной точке пути: TestConnection.

Подойдет любое предложение альтернатив или инструкция о том, что мне нужно делать с Key Vault.

Спасибо


Обновление

Я попробовал некоторые из предложений: MySettings - SomeSection - SecretThing, Multiple Vaults, и ни одна из них не работает так, как мне нужно, как описано выше. Не сбой ввода , но то, что я хочу сделать, просто недоступно в Key Vault.

@ juunas Оказывается, ваше предложение может быть лучшим решением. Я только что обнаружил в другой статье, что MySettings - SomeSection - Secret переводится в нечто подобное в .NET Core:

MySettings: {
    SomeSection: "Secret"
}

Поскольку мой клиент хочет использовать Key Vault, мы, вероятно, собираемся хранить структурированные данные json для одного секрета для каждого приложения.

Любые другие предложения приветствуются

Ответы [ 2 ]

0 голосов
/ 01 октября 2018

Я бы посоветовал не смешивать разные секреты среды в одном и том же хранилище ключей. Доступ не может быть ограничен некоторыми ключами, поскольку доступ предоставляется и запрещается только на уровне хранилища ключей. Вы, вероятно, не хотите, чтобы одни и те же лица / приложения имели доступ ко всем различным средам, а вместо этого предоставляете доступ к производственной среде только выбранной группе пользователей и приложений, и наоборот.

Поскольку служба Key Vault сама по себе ничего не стоит, мы, по крайней мере, приняли подход к созданию одного хранилища ключей для среды, то есть для разработки, тестирования и производства. Внутри этого хранилища ключей секреты «структурированы» по префиксу, то есть AppName-Data и AppName2-Data. Это дает дополнительное преимущество, заключающееся в том, что при переходе от dev к тестированию и производству не нужно менять ссылки на секреты, поскольку они имеют одинаковые имена во всех средах. Нужно изменить только ссылку на хранилище ключей, и все установлено!

0 голосов
/ 10 мая 2018

Key Vault не поддерживает иерархии для секретов.

Чтобы эмулировать структуру, вы можете сделать нечто похожее на то, что делает .NET Core со своим поставщиком конфигурации Key Vault. Вы можете указать секрет с именем типа Settings--SomeCategory--SomeValue, и он будет соответствовать следующему JSON при загрузке:

{
  "Settings": {
    "SomeCategory": {
      "SomeValue": "value goes here"
    }
  }
}

Таким образом, вы можете использовать разделитель для эмуляции структуры, аналогично тому, как хранилище BLOB-объектов Azure эмулирует папки.

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