Azure ストレージの操作を行うとき、有効期限付きのアクセストークンである SAS トークン が必要になることがあります。
SAS トークンは、az storage container generate-sas
コマンドで生成することができます。
$ az storage container generate-sas
--name <BLOBコンテナー名>
--expiry "2020-07-07T00:00:00Z"
--permission acdlrw
--connection-string <ストレージアカウントの接続文字列>
ストレージアカウントの接続文字列さえあれば、特に Azure ログインしたりせずに生成できます。 接続文字列自体を Azure CLI で取得することもできます。
SAS トークン生成時に指定するオプションの詳細は下記のコマンドリファレンスを参照してください。
実行に成功すると、次のような文字列が標準出力に出力されます。 これが SAS トークンです。
"se=2020-07-07T00%3A00%3A00Z&sp=racwdl&sv=2018-11-09&sr=c&sig=c7bapOBvLkHVlebBIEQFQc2bGd%2BjmfScqKCbkLUzzoo%3D"
この SAS トークンは、AzCopy (azcopy
) ツールなどで、BLOB ストレージにファイル転送したりするときに必要になります。
SAS トークンの生成には、有効期限を示す --expiry
オプションの指定が必須になっています(なくてもトークンの生成には成功しますが、使用時に認証エラーになるようです。不親切)。
ここで指定する日時のフォーマットは、少しでも間違えると出力される SAS トークンの se
パラメータが無効なものになってしまうので要注意です(こちらも生成時にはエラーになりません。不親切)。
生成される SAS トークンの最後には、このトークン自体の署名がついています。
これにより、SAS トークン内の有効期限 (se
) などを部分的に改ざんしたりできないようになっています。
関連記事
- 逆引き Azure CLI: BLOB ストレージにファイルをアップロードする (storage blob upload)
- 逆引き Azure CLI: ストレージアカウントのキーを確認する (storage account keys list)
- 逆引き Azure CLI: ストレージアカウントの接続文字列を確認する (storage account show-connection-string)
- Azure Storage で静的 Web サイトをホスティングする
- Azure のストレージアカウントを作成する
- 逆引き Azure CLI: Azure CLI(az コマンド)をインストールする
- 逆引き Azure CLI: Azure にログインする (az login)