azure - 如何授予 Function App 访问 Azure 存储帐户的权限?

标签 azure azure-functions azure-managed-identity azure-service-principal

如何授予函数应用访问 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 权限:存储数据表贡献者。

步骤:

  1. 在 Azure 门户中,导航到正在观察安全问题的 Function App
  2. 在导航 Pane 中选择访问控制 (IAM)
  3. 选择页面上的“角色分配”选项卡
  4. 点击“添加”按钮
  5. 尝试输入“存储数据表贡献者”

请注意未找到“存储数据表贡献者”。

结论:

总之,我不知道如何解决似乎无权访问 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

最佳答案

这是您需要执行的操作:

  1. 为您的 Azure Function 创建系统分配的托管标识。
  2. 现在转到您的存储帐户,然后将存储数据表贡献者角色分配给您在第 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/

相关文章:

.net - 使用 .NET 5 和 Docker 创建 Azure Functions

azure - 在 Azure Functions 中,使用 Bash 脚本是否可以从队列消息触发器访问属性?

azure-devops - 在 Azure DevOps 构建管道中使用托管标识

azure-service-fabric - Service Fabric 群集的 MSI/托管服务标识)

azure - 有没有办法将第三方程序/应用程序添加到此代理

c# - 成功部署后Az​​ure Web应用程序未更新

azure - Microsoft 从 oauth2 登录问题

function - 从Azure功能(powershell)访问IP受限的URI

node.js - Azure Functions - NodeJS - 响应正文作为流

Azure Webapp Keyvault 引用以及暂存槽的用户分配标识