Azure Blob Storage に置いたファイルを表示するwebアプリを作る上での概念整理

ストレージアカウント <--> BlobServiceClient
blob コンテナ <--> container_client
ブロブ
保存済みアクセスポリシー(5つまで)
SAS token の関係
blob url と sas token
Azure Blob Storage は ストレージサービス群の1つ
Azure Blob Storage は ストレージサービス群の1つであり、
使い始めるにはストレージアカウントを作成する必要がある。
ストレージアカウントを作成すると Blob Storage の他に以下が付いてくる
- ファイル共有
- キュー
- テーブル
blob コンテナ の中に Blob リーソース を置く
Azure Blob Storage サービスの中にコンテナを配置して、各コンテナの中にBlob リーソースを置いていきます。
blob リソースは階層化できる
Blob リーソースの要求承認方法を知る
ストレージアカウントの共有キー、AzureAD認証、SAS(共有アクセスシグニチャ) などのアクセス方法があります。
web アプリケーションであれば SAS を発行して、
一時的にクライアント(webアプリ)に読み取り権限を与えることが多いと思われます。
SAS とは
共有アクセス署名(SAS)は、AzureStorageリソースへの制限付きアクセス権を付与するURIです。ストレージアカウントキーで信頼されるべきではないが、特定のストレージアカウントリソースへのアクセスを委任したいクライアントに共有アクセス署名を提供できます。共有アクセスシグニチャURIをこれらのクライアントに配布することにより、指定された一連のアクセス許可を使用して、指定された期間、リソースへのアクセスをクライアントに許可できます。
https://docs.microsoft.com/en-us/rest/api/storageservices/delegate-access-with-shared-access-signature
SAS(共有アクセスシグニチャ)の発行方法が複数ある
SAS(共有アクセスシグニチャ)の発行方法が複数あります。
サービスSASは、必要に応じてリソースへのアクセスを変更または取り消す機能など、一連の署名に対する追加レベルの制御を提供する保存済みアクセスポリシーを参照できます。
SAS を短いサイクルで回すことでセキュリティを保ちます。
一方でSASを発行してから、リソースへのアクセスが可能になるまで時間も必要なので、バランスを取る必要があります。
保存されたアクセスポリシー
SAS
BLOB SAS URL = コンテナURL + blob ファイル名(オブジェクトのパス) + SAS_TOKEN
set_container_access_policy
注意点 設定したもので洗い替えされる(アプリから拝借)
SAS_TOKEN = SAS を認証したり、BLOB およびアクセスに使用可能なアクセス許可や、署名が有効な期間を指定したりするために必要なすべての情報を含んだクエリ文字列。BLOB URL を構成するには、BLOB サービス エンドポイントに SAS トークンを追加するか、次の URL を使用します。
主要クラスとメソッドを整理
over view
blob client
containerclient
set_container_access_policy
get_container_access_policy
generate_container_sas
AccessPolicy
walk_blobs
blob object
オープンソースエミュレーター