Shared Access Signature を使用するタイミングを選択する
ストレージ アカウント内のリソースへのセキュリティで保護されたアクセス権を、そのリソースに対するアクセス許可を持たないクライアントに提供する場合は、SAS を使用します。
SAS が役立つ一般的なシナリオは、ユーザーが自分のデータを読み書きしてストレージ アカウントに書き込むサービスです。 ストレージ アカウントがユーザー データを格納するシナリオでは、次の 2 つの一般的な設計パターンがあります。
クライアントは、認証を実行するフロントエンド プロキシ サービスを介してデータをアップロードおよびダウンロードします。 このフロントエンド プロキシ サービスには、ビジネス ルールの検証を許可する利点がありますが、大量のデータや大量のトランザクションでは、需要に合わせてスケーリングできるサービスを作成すると、コストがかかる場合や困難になる場合があります。
軽量サービスは、必要に応じてクライアントを認証し、SAS を生成します。 クライアント アプリケーションは、SAS を受け取ると、SAS によって定義されたアクセス許可を使用して、SAS によって許可されている期間、ストレージ アカウント リソースに直接アクセスできます。 SAS により、フロントエンド プロキシ サービスを介してすべてのデータをルーティングする必要性が軽減されます。
多くの実際のサービスでは、これら 2 つのアプローチのハイブリッドが使用される場合があります。 たとえば、一部のデータはフロントエンド プロキシ経由で処理および検証され、他のデータは SAS を使用して直接保存または読み取られます。
さらに、特定のシナリオでは、コピー操作でソース オブジェクトへのアクセスを承認するために SAS が必要です。
別のストレージ アカウントに存在する別の BLOB に BLOB をコピーする場合は、SAS を使用してソース BLOB へのアクセスを承認する必要があります。 必要に応じて、SAS を使用して、宛先 BLOB へのアクセスを承認することもできます。
別のストレージ アカウントに存在する別のファイルにファイルをコピーする場合は、SAS を使用してソース ファイルへのアクセスを承認する必要があります。 必要に応じて、SAS を使用して宛先ファイルへのアクセスを承認することもできます。
BLOB をファイルにコピーする場合、またはファイルを BLOB にコピーする場合、ソース オブジェクトとコピー先オブジェクトが同じストレージ アカウント内に存在する場合でも、SAS を使用してソース オブジェクトへのアクセスを承認する必要があります。