2012-03-14 13 views
7

Windows Azureストレージ内の特定のユーザーに対してブロブを保護する最適な方法は何ですか?たとえば、大規模なファイル用にバックエンドのWindows Azure BLOBストレージを備えたオンプレミスのASP.NET Webサイト(イントラネット)を使用しています。私は個々のブロブのセキュリティのために署名されたURLのアイデアが気に入っていますが、これは本当に長い間そこにあるブロブにはうまくいきます。 (無限?)Azureでのセキュリティ保護

特定のユーザーのみのblobに細かいレベルのセキュリティが必要です(これはBlobストレージで簡単に達成できます)。 *私はACSが必要ではないと信じています。可能であれば、ポリシーと署名付きURLを使用して達成したいと思います。

2番目の質問は、CDNでこのデータを同じ方法で保護することもできますが、誰かが確認できると思いますか?

おかげブロブ例えば上の無限の時間の仕事と権限を持つ

共有アクセスポリシー仕事を読む?

答えて

18

個々のユーザーがblobを1時間以上使用できるようにするには、コンテナに接続されているSASポリシーを使用する必要があります。ただし、コンテナあたり最大5つまで設定できるため、多くのユーザーにとって規模が大きくなることはありません。 SASポリシーの有効期限は年単位で測定できます。

より典型的な解決策は、ユーザーがあなたのウェブサイトやサービスにアクセスし、あなたが選択した方法でそれらを認証することです。実際にファイルをダウンロードする場合は、(ポリシーではなく)有効期限の短い1回限りのSAS署名を生成する必要があります。これはうまく拡張され、後で権限のないユーザーによる再利用を防ぎます。また、ウェブの役割ではなく、ストレージからの恩恵を受けることもできます。

CDNを使用すると状況がさらに複雑になります。したがって、CDNリソースでSASシグネチャを使用することはできますが、それは本当に名誉なことではありません。つまり、一意のURLが基になるリソースのキーです。したがって、SASの保護されたBLOBを要求すると、そのBLOBをCDNにプルし、そのURIをキーとして提供します。その後、CDNキャッシュポリシー(SASの有効期限ではない)を使用して、今後の作業に役立てます。これは、blob URIが10分で失効するように設定されているシナリオにつながりますが、CDNは期限切れポリシーに応じて同じSAS署名を使用してそのBLOBを数日間キャッシュします。 CDNは、検証のためにストレージに再度連絡しません。したがって、おそらくこれを使用する良い考えではありません。さらに、各CDNリソースはURIにキー入力されているため、SASシグネチャが変更されるたびに、同じファイルの多数のコピー(トランザクションおよび帯域幅の課金を実行する)を多数キャッシュすることも意味します。長い話を簡単に言えば、CDNとSASはうまく混ざり合っていません。

+0

おかげさまで、私が探していたことがありました! – user728584

+0

これは間違いなくこの問題を解決するものではありません。 –

3

CDNの使用経験がないため、CDNのお手伝いができませんが、同様の方法で動作することが期待されます。

私がこの場合に行うことは、ユーザーがファイルにアクセスしようとするたびに共有アクセス署名を生成することです。アプリケーション内で、ユーザーが任意のファイルにアクセスできるかどうかを決定するアクセス規則を維持することができます。

そのファイルが要求されると、その場で共有アクセス署名が生成されます(詳細はhereを参照)。

これは、ファイルのダウンロードがWebロールを通じてポンピングされず、ブロブストレージから直接ユーザーにダウンロードされるという利点があります。

+0

ありがとうございました... – user728584

関連する問題