Означает ли подпись Azure Shared Access, что любой может получить доступ к моим BLOB-объектам? - PullRequest
3 голосов
/ 24 июня 2010

Я пишу службу резервного копирования для резервного копирования базы данных SQL и сохранения ее в облачном хранилище. Я уже реализовал это с Amazon S3, но поскольку приложение будет распространяться среди клиентов, я не могу хранить ключи API вместе с приложением. Я подумывал об использовании веб-службы для предоставления ключей, но в настоящее время это не лучший вариант (поскольку он по-прежнему оставляет возможность кражи ключей).

Итак, я посмотрел на Windows Azure, службу BLOB-объектов и увидел, что у них есть эти подписи общего доступа, которые можно использовать для предоставления доступа к ресурсам в облаке. Вы также можете использовать подпись, чтобы поместить капли в облако. Но, читая документы MSDN , я не могу не думать, что это небезопасная система. Любой, кто знает 1. Точные имена контейнеров для моей учетной записи и 2. Как сформировать подпись, сможет получить доступ к объектам. Вам не нужен секретный ключ при использовании этой подписи. По крайней мере, это мое впечатление от чтения документов.

Итак, наконец, на мой вопрос. Правильно ли я оцениваю подписи общего доступа в Azure, если нет, то почему? И может ли кто-нибудь предложить альтернативный способ сделать то, что я пытаюсь сделать.

1 Ответ

6 голосов
/ 24 июня 2010

Сигнатуры общего доступа можно ограничить как в конкретном контейнере, так и в определенном двоичном объекте. Затем они могут указать, какие разрешения они предоставляют (чтение, запись, список больших двоичных объектов), и они могут указать, как долго они действительны.

Единственный способ создать SAS - это иметь ключ хранилища, но любой, у кого есть SAS, может использовать его, чтобы делать то, что ему позволяют.

Похоже, вы хотите разрешить всем своим клиентам писать блобы, но не читать их? Если это так, то SAS, который указывает только права на запись, должен справиться с этой задачей.

Но я предполагаю, что вы также хотите ограничить (или счетчик) использование отдельными клиентами? Если это так, вам, вероятно, понадобится что-то активное на сервере (веб-служба?), Которое разрешает каждое использование и генерирует конкретный SAS с коротким сроком действия, чтобы разрешить эту операцию. Затем вы можете отслеживать и выставлять счета за каждое использование.

...