Azure storage 的訪問通常最常用的三種形式:
Access Key默認(rèn)有兩個(gè),任何程序拿到訪問密鑰或和storage account的名稱,即可拼裝出 連接字符串,從而訪問storage account的數(shù)據(jù)。
這種密鑰的方式,對于storage account的訪問只有 ”可以訪問“ 和 “不可以訪問” 兩種結(jié)果,除此不能進(jìn)行更精確的控制,就像鑰匙開鎖,要么打開,要么打不開(key不正確)。
共享訪問簽名相比于 access key的方式,多了一些限制條件,例如可以控制 “讀數(shù)據(jù)”還是“寫數(shù)據(jù)”,也可以設(shè)定訪問有效期,還可以設(shè)定客戶端的IP地址。
共享訪問簽名的模式又分為用戶委托SAS和服務(wù)委托SAS,具體參考:
https://docs.microsoft.com/zh-cn/azure/storage/blobs/storage-blob-user-delegation-sas-create-cli?WT.mc_id=AZ-MVP-5003757
Azure Active Directory (Azure AD) 通過 Azure 基于角色的訪問控制 (Azure RBAC) 授予對受保護(hù)資源的訪問權(quán)限。
將 Azure 角色分配到 Azure AD 安全主體后(用戶,組,應(yīng)用程序都可以),Azure 會(huì)向該安全主體授予對這些資源的訪問權(quán)限。
通常在應(yīng)用程序中,使用服務(wù)主體的方式訪問 存儲(chǔ)賬戶,關(guān)于服務(wù)主體,一般需要
在AAD中創(chuàng)建應(yīng)用
配置應(yīng)用的認(rèn)證方式(證書或key)
配置應(yīng)用的 角色
通過Azure 門戶創(chuàng)建一個(gè)服務(wù)主體的方式請參考:
https://docs.microsoft.com/zh-cn/azure/active-directory/develop/howto-create-service-principal-portal?WT.mc_id=AZ-MVP-5003757
通過AAD訪問storage account 實(shí)際上是通過獲取OAuth 2.0 訪問令牌后,才可以訪問stoage account,但通常這個(gè)過程可以使用Azure SDK簡化,
關(guān)于AAD 和RBAC 訪問 storage Account的 詳細(xì)文章,請參考:
https://docs.microsoft.com/zh-cn/azure/storage/common/identity-library-acquire-token?toc=%2Fazure%2Fstorage%2Fblobs%2Ftoc.json&WT.mc_id=AZ-MVP-5003757
在Azure 門戶 上使用Storage account數(shù)據(jù)也會(huì)有兩種 方式,分別為 訪問密鑰 和 AAD 的方式:
如下圖,可以設(shè)置 切換成 aad 方式還是切換成 access key 方式。
關(guān)于門戶中的兩種方式,需要的權(quán)限也不盡相同,請參考官網(wǎng):
https://docs.microsoft.com/zh-cn/azure/storage/blobs/authorize-data-operations-portal?WT.mc_id=AZ-MVP-5003757