SAS(Shared Access Signature)とは
- ストレージ操作を認可するための署名済URI
- 例:参照操作を認可するSASを使えば、当該ストレージを参照できる
- 署名鍵はSASの種類によって異なる。
SASの構成
- SASは
https://{ストレージのURI}?{SASトークン}
で表される。- SASトークン:クライアントからストレージへのアクセス方法を表すトークン
SASの種類
SAS | SASを使用可能なストレージ | 署名用キー | 補足 |
---|---|---|---|
User Delegation SAS | Blob | User Delegation Key | 認証機構としてAAD(Azure Active Directory)を用いる。AADは認証方式として最も信頼できる(Microsoft談)ため、Blobへのアクセス時は通常これを使用する。 |
Service SAS | 任意のストレージ | Storage Account Key | 1つのSASで1種類のストレージのみアクセス可能 |
Account SAS | 任意のストレージ | 同上 | 1つのSASで複数の種類のストレージにアクセス可能。また、Service SASに比べて多種類の操作権限を移譲可能 |
- BlobにはUser Delegation SASを、他のストレージにはAccount SASを使えば良いと思う。
SASの2つの形式
Ad hoc SAS
- SAS URIで下記を指定する
- SASの生成時刻
- SASの有効期限
- 委任する権限
- 全ての種類のSASに使用可能
- 基本はこれを使えば問題ない
Service SAS with stored access policy
- Service SASに対してのみ使用可能な形式
- 詳細は割愛
SASを用いたストレージアクセスの流れ
- クライアントが認可サーバーにSASの発行を要求
- 発行には認証情報が必要
- クライアントが、発行されたSASを用いてストレージにアクセス