この記事はFIXER Advent Calendar 2021 11日目の記事です。
はじめに
皆さんこんにちは!最近寒すぎて、さらに身長が縮んでしまうんじゃないかとヒヤヒヤしている廣原です。
冬は鍋がおいしいですからね、縦は縮むのに横には伸びるんですよね!不思議!
さて前置きはこのくらいにして、今回は、SAS(Shared Access Signatures)についての記事を書いていこうと思います!
この題材に至った経緯について、先日業務でSASに触れる機会があったのですが、なんせガチ初心者エンジニアの廣原、そもそもSASって何ぞや!となりまして(笑)色々調べたところ、少しだけSASと仲良くなれた気がするので、その情報を皆様に共有しようと思い、この題材にしました!
初心者なりに分かりやすい言葉でかみ砕いて書くので、生暖かい目でご覧いただけると幸いです^^
SAS( Shared Access Signatures )ってなんぞや
はい!いきなりタイトル回収です!
まずはSASの概要について説明していこうと思います。
公式ドキュメントによると、SAS( Shared Access Signatures )とは、Azure Storage リソースへの制限付きのアクセス権を付与するURIだそうです。
このURIには、リソースにアクセスできる有効期間やリソースに対してどの操作が許可されているかなどの情報が含まれていて、クライアントアプリケーションからリソースにこのURIを渡すだけで、リソースに認証付きのアクセスをすることができます。
私はSASについて調べる前、「SASって何かのアルゴリズムなの?URIなの?」と、SASが何を指しているのかがいまいちピンと来ていなかったのですが、公式ドキュメントにも書いてあるので、SAS=URIと解釈していいと思います!
SASの種類
SASの概要がざっくり分かったので、もう少し細かいことをご紹介していきます。
まずはSASの種類について。
SASにも種類がありまして、それぞれできることや認証の方法が少しずつ違うんです。
ユーザ委任SAS
AzureADの認証情報で安全性を確保するSASです。アクセスできるストレージはBlobだけです。
サービスSAS
ストレージアカウントキーで安全性を確保するSASです。アクセスできるストレージは色々ありますが、サービスSAS1つにつきアクセスできるリソースは1つだけです。
アカウントSAS
サービスSASとほとんど同じですが、アカウントSAS1つで複数のリソースにアクセスすることができます。また、サービスSASでは許可されていない操作を許可することもできます。
SASの構成
では早速、実際にSASってどんなものなのか見ていきましょう!
サンプルのURIはこちらになります。
https://storagesample.blob.core.windows.net/sample-container/sampleblob.txt?sv=2015-07-08&sr=b&sig=39Up9JzHkxhUihFEJEH9594DJxe7w6cIRCOV6ICGS0%3D&se=2016-10-18T21%3A51%3A377&sp=rcw
うわーごちゃごちゃしててようわからん!と思いましたが(笑)、じっくり見ていきましょう!
このURIは?マークの前後で2つに分かれていて、?の前がアクセスするリソースのURI、後ろが認証に必要な情報を含んだSASトークンとなっています。つまり、
https://storagesample.blob.core.windows.net/sample-container/sampleblob.txt
までがリソースのURIで、
sv=2015-07-08&sr=b&sig=39Up9JzHkxhUihFEJEH9594DJxe7w6cIRCOV6ICGS0%3D&se=2016-10-18T21%3A51%3A377&sp=rcw
がSASトークンです!お?少し分かりやすくなってきた気がしませんか?
さらにこのSASトークンも解体していきます!
SASトークンの各パラメータには、このようなことが書かれています。
パラメータ | 書かれている内容 |
---|---|
sv=2015-07-08 | ストレージサービスのバージョンを表しています。 |
sr=b | リソースの種類を表しています。この場合はBlobになります。 |
sig=39Up9JzHkxhUihFEJEH 9594DJxe7w6cIRCOV6ICGS0%3D | リソースにアクセスする際の認証で使う署名です。 |
se=2016-10-18T21%3A51%3A377 | SASの有効期限をUTC時間で表しています。 |
sp=rcw | リソースに対してどのような操作が行えるかの権限を表しています。この場合、読み取り、作成、書き込みが許可されています。 |
分解してみると意外と分かりやすくなりますね!
もっと詳しく知りたい方は、公式のこちらのドキュメントを参考にしてみてください!
まとめ
というわけで、今回はSASについて書いてみました!
私自身このブログを書いたことで、よりSASについての理解を深められた気がします!
拙い文章ではありましたが、最後までお読みいただきありがとうございました!
ここまでお読みいただいた方に廣原野菜の豆知識!
寒くなりますます美味しいかぼちゃですが、個人的に一番美味しい食べ方は、
- 5mmくらいにスライスする
- お皿に並べて濡らしたキッチンペーパー掛ける
- 500Wの電子レンジで3分チン!
だと思っています!ぜひお試しあれ!
参考
Shared Access Signature、第 1 部: SAS モデルについて
Shared Access Signatures (SAS) を使用して Azure Storage リソースへの制限付きアクセスを許可する
Grant limited access to Azure Storage resources using shared access signatures (SAS)