如何授予函数应用访问 Azure 存储帐户的权限?
上下文:
我不知道如何解决似乎无权访问 Azure 存储表的函数应用程序的安全访问异常。
目前,Function App 的访问控制角色分配设置为贡献者和读者。
我的假设是,Function App 需要分配一个存储数据表贡献者角色。
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
异常(exception):
Unexpected response code, Expected:OK or NotFound, Received:Forbidden
想法:
我认为我需要添加 Function App 权限:存储数据表贡献者。
步骤:
- 在 Azure 门户中,导航到正在观察安全问题的 Function App
- 在导航 Pane 中选择访问控制 (IAM)
- 选择页面上的“角色分配”选项卡
- 点击“添加”按钮
- 尝试输入“存储数据表贡献者”
请注意未找到“存储数据表贡献者”。
结论:
总之,我不知道如何解决似乎无权访问 Azure 存储表的函数应用程序的安全访问异常。
引用文献:
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
最佳答案
这是您需要执行的操作:
- 为您的 Azure Function 创建系统分配的托管标识。
- 现在转到您的存储帐户,然后将
存储数据表贡献者
角色分配给您在第 1 步中创建的托管身份。
您可能会发现本教程很有帮助:https://learn.microsoft.com/en-us/azure/app-service/scenario-secure-app-access-storage?tabs=azure-portal .
关于azure - 如何授予 Function App 访问 Azure 存储帐户的权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75686897/