如何授予功能应用对Azure存储帐户的访问权限?
背景:
我不知道如何解决似乎未被授权访问Azure存储表的功能应用程序的安全访问异常。
当前,功能应用程序的访问控制角色分配设置为参与者和读者。
我的假设是,功能应用程序需要分配一个存储数据表参与者角色。
Azure存储表:
以下代码尝试访问Azure存储表:
let storageAccount = CloudStorageAccount.Parse connectionString
let cloudTableClient = storageAccount.CreateCloudTableClient()
let cloudTable = cloudTableClient.GetTableReference(tableName);
// ** EXCEPTION THROWN ON LINE BELOW **
let! exists = cloudTable.ExistsAsync() |> Async.AwaitTask
例外情况:
Unexpected response code, Expected:OK or NotFound, Received:Forbidden
想法:
我想我需要添加功能应用程序权限:存储数据表参与者。
步骤:
1.在Azure门户中,导航到正在观察安全问题的功能应用程序
1.在导航窗格中选择访问控制(IAM
1.选择第页上的“角色分配”选项卡
1.单击添加按钮
1.尝试输入“存储数据表参与者”
***注意***未找到“存储数据表贡献者”。
结论:
总之,我不知道如何解决似乎未被授权访问Azure存储表的Function应用程序的安全访问异常。
参考资料:
https://learn.microsoft.com/en-us/azure/storage/common/authorize-data-access
https://learn.microsoft.com/en-us/azure/storage/tables/authorize-access-azure-active-directory
Azure Function App Read/Write to table storage - InvalidAuthenticationInfoContent
2条答案
按热度按时间zxlwwiss1#
以下是您需要做的事情:
1.为你的Azure功能创建系统分配的托管标识。
1.现在转到您的存储帐户,然后将
Storage Data Table Contributor
角色分配给您在步骤1中创建的托管身份。您可能会发现本教程很有帮助:https://learn.microsoft.com/en-us/azure/app-service/scenario-secure-app-access-storage?tabs=azure-portal .
k5ifujac2#
您需要在表存储上设置角色分配,而不是在函数上。
在函数上,您需要启用托管身份。这是您需要授予表存储访问权限的对象。