需求,Storage Account中的數(shù)據(jù),如果有人訪問,要求記錄下是誰訪問的。
截止2021-08-30,該功能為Preview的功能。
配置將Storage Read/Write/Delete 日志記錄到其他的 Storage Account中:
測試:
在Azure Portal中 上傳/下載/讀取BLOB,觀察 monitorlogseandatalake中記錄的日志:
注意:默認(rèn)采用的是Access Key的方式
進(jìn)入到Monitor Storage Account中,可以看到如下圖的日志:
將Log下載到本地,解析其中的值即可得到一些信息:
李如下圖中,顯示了下載的URL,下載的瀏覽器類型,操作系統(tǒng)類型,IP地址等。
詳細(xì)的字段解析,可參考:https://docs.microsoft.com/zh-cn/azure/storage/blobs/monitor-blob-storage-reference?WT.mc_id=AZ-MVP-5003757#resource-logs-preview
如下圖所示:
文檔中同樣描述了是 誰 訪問了數(shù)據(jù):
具體的字段解釋如下:
但在我們實(shí)際的測試中,如果使用Access Key方式訪問BLOB,日志中的 identity tpye為“SAS” 并不能很容易的看出是誰在訪問我們的數(shù)據(jù)。
因此,我們嘗試將Authentication method 改為 Azure AD User Account方式,再次上傳文件,然后觀察日志:
上傳文件:
再次觀察日志:
UPN中明確顯示了是哪個(gè)Azure AD 用戶進(jìn)行了文件上傳操作:
基本的功能有了,但仍然存在一些問題,比如,默認(rèn)情況下,用戶可以自行修改 使用哪種方式進(jìn)行身份驗(yàn)證:
一旦用戶自行將驗(yàn)證方式改為 Access Key,則日志里就不會(huì)出現(xiàn) upn字段,也不能知道是哪個(gè)用戶進(jìn)行的操作。
使用該用戶訪問Storage Account,可以看到默認(rèn)就是使用Azure AD 進(jìn)行了身份驗(yàn)證:
嘗試修改自己為 訪問密鑰方式:
同時(shí)SAS共享訪問簽名頁面也不能正常獲取SAS:
訪問密鑰頁面用戶頁無法修改:
可以在Azure Poratal 中上傳,讀取,刪除文件,觀察結(jié)果,也可以在Storage Explorer工具中使用訂閱方式登錄后,上傳,讀取,刪除文件測試:
結(jié)果如下:
與本文相關(guān)的文檔:
從Azure AD獲取用于從客戶端應(yīng)用程序授權(quán)請求的令牌:
https://docs.microsoft.com/zh-cn/azure/storage/common/storage-auth-aad-app?toc=/azure/storage/blobs/toc.json
分配Azure 角色以訪問blob數(shù)據(jù):
https://docs.microsoft.com/zh-cn/azure/storage/blobs/assign-azure-role-data-access
使用Azure AD運(yùn)行Power Shell或Azure CLI以訪問blob數(shù)據(jù):
https://docs.microsoft.com/zh-cn/azure/storage/blobs/authorize-data-operations-powershell
關(guān)于在Azure門戶中訪問Azure Storage,優(yōu)先使用的方式是:
若要使用帳戶訪問密鑰訪問 blob 數(shù)據(jù),你必須已分配到一個(gè) Azure 角色,此角色包含 Azure RBAC 操作 Microsoft.Storage/storageAccounts/listkeys/action。此 Azure 角色可以是內(nèi)置角色,也可以是自定義角色。支持“Microsoft.Storage/storageAccounts/listkeys/action”的內(nèi)置角色(按權(quán)限從小到大排序)包括:
The Reader and Data Access role
The Storage Account Contributor role
The Azure Resource Manager Contributor role
The Azure Resource Manager Owner role
嘗試在 Azure 門戶中訪問 Blob 數(shù)據(jù)時(shí),門戶首先會(huì)檢查你是否擁有一個(gè)包含 Microsoft.Storage/storageAccounts/listkeys/action 的角色。如果你被分配了包含此操作的角色,則門戶將使用帳戶密鑰來訪問 blob 數(shù)據(jù)。如果你不擁有包含此操作的角色,則門戶會(huì)嘗試使用你的 Azure AD 帳戶訪問數(shù)據(jù)。
相關(guān)文檔:https://docs.microsoft.com/zh-cn/azure/storage/blobs/authorize-data-operations-portal