まくろぐ
更新: / 作成:

Azure ストレージの操作を行うとき、有効期限付きのアクセストークンである SAS トークン が必要になることがあります。 SAS トークンは、az storage container generate-sas コマンドで生成することができます。

実際は 1 行
$ 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) などを部分的に改ざんしたりできないようになっています。

関連記事

まくろぐ
サイトマップまくへのメッセージ