[Unity]SASを使ってAzure Storageに接続する方法

以前、UnityからAzureのBlob StorageやTable Storageに接続する方法をブログに書きました。

Azure Blob Storageとは UnityからAzure Blob Storageにアクセスしてファイルをダウンロード&アップロ...
Azure Table Storageとは 今回はTable Storageを使っていきます。 Table Storageは、NoS...

この時は、接続にはAzure Portalの「アクセス キー」のところで参照できる「接続文字列」を使っていました。
しかし、より安全に接続するためには、フル権限を使用可能な接続文字列ではなく、Shared Access Signiture(SAS)を使うことが推奨されます。

SASを使用すると、書き込みや読み込みなどの権限を絞ることができたり、期限を決めてアクセスを制限することができたりします。

SASを使用した場合、接続の方法が下記のようになります。(Tableへの接続例)

using System;
using System.Collections.Generic;
using Microsoft.WindowsAzure.Storage;
using Microsoft.WindowsAzure.Storage.Auth;
using Microsoft.WindowsAzure.Storage.Table;
using UnityEngine;
 
public class AzureTableStorage : MonoBehaviour
{
    protected CloudStorageAccount StorageAccount;
    protected CloudTableClient TableClient;
 
    void Awake()
    {
        //接続文字列を使った方法
        //StorageAccount = CloudStorageAccount.Parse("Your Connection String");
        //TableClient = StorageAccount.CreateCloudTableClient();
 
        //SASを使った方法
        var sasToken = "?sv=2019-12-12&ss=bfqt&srt=sco&sp=rwdlacupx&se=2021-08-21T13:49:29Z&st=2020-08-21T05:49:29Z&spr=https&sig=xxxxxx";
        var endPoint = "https://xxxx.table.core.windows.net/"
 
        StorageCredentials accountSAS = new StorageCredentials(sasToken);
        TableClient = new CloudTableClient(new Uri(endPoint)), accountSAS);
    }
 
    略

SASは通常URLで表されますが、トークン部分とエンドポイントの部分を別々に指定してあげる必要があるようです。(xxxxの部分は自分のAzure環境に置き換えてください)
Blobでもエンドポイントが変わるだけです。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク