2016-08-15 9 views
3

Azure Storage sample code для ключевого вращения демонстрирует использование нескольких уникально названных секретов. Однако в KeyVault теперь можно создать несколько версий одного Секрет. Я не вижу причин, почему вращение ключа не может быть достигнуто с помощью Версии, и кажется, что это похоже на то, как было бы легче управлять.Azure KeyVault ключ вращение

Может ли кто-нибудь предложить какие-либо указания относительно того, почему вы выбрали несколько секретов над версиями одного Секрет для поддержки поворота ключа? И, возможно, какое-либо общее руководство относительно того, для чего предназначены Версии, если не это?

Спасибо!

+0

Я не эксперт, но, глядя на API, кажется, что каждый секрет без идентификатора версии по умолчанию имеет последнюю версию, и это предполагаемый подход. Таким образом, в основном это выглядит как API-интерфейсы (REST, .NET и т. Д.), На самом деле не создают шаблоны кода для поддержки версий, которые вы планируете использовать. –

+0

Например, похоже, что метод ResolverKeyAsync не позволяет указать значение версии для выбора разных версий ключа. Возможно, когда API-интерфейсы созрели для этой новой функциональности, этот шаблон будет иметь больше смысла. Опять же, не эксперт, зерно соли и т. Д. –

+0

Спасибо @ kyle-hale. В ответ на ваш вопрос «[..] глядя на API, кажется, что каждый секрет без идентификатора версии по умолчанию соответствует последней версии» - правильно. Но я не думаю, что это имеет значение (на самом деле, я думаю, это желательно). Поскольку каждая версия ключа может быть решена однозначно, при условии, что версия хранится, данные, зашифрованные предыдущей версией, могут быть дешифрованы и последняя версия, используемая для шифрования –

ответ

1

Не стесняйтесь использовать одну секретную и несколько версий для поворота ключа, в зависимости от того, какой SDK (ы) вы используете.

Для наших приложений на основе Node.js у нас есть конфигурация, которая указывает на полные секретные URI KeyVault.

Некоторые секреты указывают только на короткий URL-адрес для секретного (без версии), поэтому приложение получает «последнюю версию».

Другие секреты, нуждающиеся в ротации, нуждаются в полном URL-адресе к версии. Например, мы используем шифрование таблицы Azure; поэтому каждая строка в таблице при шифровании использует ключ для упаковки ключей из KeyVault. Ключ для обертывания ключей - это полный URL-адрес с ключом KeyVault, так как для его дешифрования данных требуется определенный секрет. Со временем различные строки будут указывать на разные версии ключей.

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

Любой подход замечательный, но подумайте, насколько приятным и «чистым» будет ваша история, если вы будете использовать версии с течением времени, а не пролистывать дополнительные секретные имена.

+0

Есть ли ограничение на количество версий, которые может иметь секрет? –

 Смежные вопросы

  • Нет связанных вопросов^_^