У меня есть конфиденциальные данные в моем приложении, просто потому, что шифрование недоступно в хранилище таблиц Azure, я не могу хранить в нем важные данные.Поскольку хранилище таблиц Azure не поддерживает шифрование, безопасно ли хранить в нем конфиденциальную информацию?
ответ
Если у вас есть надежные данные, то это лучше для шифрования, можно зашифровать с Azure Key Vault одним more link
В принципе, в вашей организации, вы будете отмечать свойства с атрибутом
[EncryptProperty]
public string EncryptedProperty1 { get; set; }
Выгода будет то, что вы всегда будете общаться с зашифрованными данными, даже если кто-то каким-то образом получит доступ к хранилищу, он не сможет извлечь данные.
Если мне нужно получить свойство, как расшифровать свойство? – Sameer
Мне нужно зашифровать словарь, состоящий из строковых и строковых значений. Я использовал атрибут [EncryptionProperty], но я получаю ошибку в переопределенном методе WriteEntity(). OperationContext имеет значение null. – Sameer
@Sameer Пожалуйста, обновите классы сущностей, поэтому увидите. –
Я думаю, это зависит от того, как вы управляете своими данными. Если необходимо зашифровать только часть ваших данных, а остальная часть может оставаться ясной, вы можете потенциально зашифровать эти чувствительные поля в своем приложении перед их хранением в хранилище таблиц. Конечно, вам придется реализовать шифрование, но вы сможете найти множество библиотек, чтобы помочь с этим.
Если вам нужно было зашифровать все перед хранением Я не думаю, что это сработало бы хорошо. Хранилище таблиц - это ключ: пары значений, и все ваши значения будут зашифрованы, что приведет к тому, что Table Storage станет бесполезным для любого вида поиска. Вам нужно будет прочитать все ваши данные, отсортировать и индексировать его в своем приложении, а затем продолжить свою обычную работу.
Как зашифровать содержимое хранилища таблиц таблицы хранения * бесполезно *? Единственным возможным индексом является ключ раздела + строка; все остальное содержимое, объединенное, по существу является «значением» (и любой поиск по этим свойствам требует в любом случае разметки или строки). Таким образом, до тех пор, пока у вас есть ключи с возможностью поиска, не должно быть никакого влияния на поиск, если шифрование значений. –
В частности, если все значения зашифрованы (в отличие от только значений выбора), что именно вы искали бы в своих таблицах? Возьмем простой пример с записями 20k с именами и SSN, и оба значения имени и SSN зашифрованы. Помните, что в хранилище таблиц не выполняется шифрование, поэтому все значения должны быть зашифрованы программно. Итак, что бы сделать хранилище таблиц для вас? Все значения зашифрованы и поэтому бессмысленны вне контекста программы. –
Пока вы ищете в разделе + rowkey, это не имеет значения. Идея состоит в том, что при хранении таблиц вы извлекаете группу объектов на основе поиска pk + rk. Я хочу сказать, что шифрование не делает бесполезным хранилище таблиц (если вы не шифруете pk или rk, но это не имеет смысла). И да, OP нужно будет зашифровать/расшифровать часть «значение» - я не понимаю, почему это отличается от любой другой системы хранения, не предоставляющей встроенные службы шифрования. –
Вы имеете в виду, что у вас есть несколько записей, каждая запись имеет 200 свойств, а некоторые свойства имеют конфиденциальные данные, поэтому вам нужно их шифровать? Или вы просто сохраняете некоторые параметры конфигурации, содержащие некоторые конфиденциальные данные? –
@ Bruce-MSFT Да, у меня есть несколько записей, каждая запись имеет около 200 свойств, а некоторые свойства имеют конфиденциальные данные. – Sameer