限制从 Azure 函数子网访问存储帐户

     2023-03-28     105

关键词:

【中文标题】限制从 Azure 函数子网访问存储帐户【英文标题】:Limiting access to Storage Account from Azure Function Subnet 【发布时间】:2020-06-01 23:53:11 【问题描述】:

我有一个托管在 (S1) 应用服务计划上的 azure 函数。 Azure 函数已集成到 VNet 子网。此子网启用了 Microsoft.StorageMicrosoft.Web 服务端点,并且它被委派给 Microsoft.Web/serverFarms

另一方面,存储帐户被配置为仅接受来自 azure 函数所属子网的请求。

不幸的是,这不起作用。当我尝试从 Azure 功能与存储帐户通信时,我收到以下错误

2020-02-18T02:03:03.505 [Error] Faliure Occured
Azure.RequestFailedException : This request is not authorized to perform this operation.
RequestId:0b034a99-701e-002c-09ff-e5bd0a000000
Time:2020-02-18T02:03:03.1177265Z
Status: 403 (This request is not authorized to perform this operation.)
ErrorCode: AuthorizationFailure

Headers:
Server: Microsoft-HTTPAPI/2.0
x-ms-request-id: 0b034a99-701e-002c-09ff-e5bd0a000000
x-ms-client-request-id: 0bbe8185-4657-47f3-8566-5bcbd16c4274
x-ms-error-code: AuthorizationFailure
Date: Tue, 18 Feb 2020 02:03:02 GMT
Content-Length: 246
Content-Type: application/xml

   at Azure.Storage.Blobs.BlobRestClient.Container.GetPropertiesAsync_CreateResponse(ClientDiagnostics clientDiagnostics,Response response)
   at async Azure.Storage.Blobs.BlobRestClient.Container.GetPropertiesAsync(ClientDiagnostics clientDiagnostics,HttpPipeline pipeline,Uri resourceUri,String version,Nullable`1 timeout,String leaseId,String requestId,Boolean async,String operationName,CancellationToken cancellationToken)
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at async Azure.Storage.Blobs.BlobContainerClient.GetPropertiesInternal(BlobRequestConditions conditions,Boolean async,CancellationToken cancellationToken)
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Azure.Storage.TaskExtensions.EnsureCompleted[T](Task`1 task)
   at Azure.Storage.Blobs.BlobContainerClient.GetProperties(BlobRequestConditions conditions,CancellationToken cancellationToken)
   at SharedLib.Utils.TestStorageAccountAccess() at D:\poc-code\NetworkSecurityPoc\SharedLib\Utils.cs : 13
   at async MessengerFunction.Trigger.Run(HttpRequest req,ILogger log) at D:\poc-code\NetworkSecurityPoc\MessengerFunction\Trigger.cs : 25

但是当我禁用存储帐户的 vnet 限制时,一切正常。

我做错了什么?

谢谢。

【问题讨论】:

您是否需要使用区域虚拟网络集成或网关? Azure 函数应用是在 Windows 还是 Linux 上运行? 我正在使用区域虚拟网络集成(显示“预览”的那个)。并且函数应用在 Windows 上运行。实际上我的 Vnet 没有网关子网。 集成子网中除了azure功能外,不应使用其他资源。另外推荐使用this template自动部署。 如果取消选中子网中启用的Microsoft.Web服务端点,是否有效? 我已在当前​​设置中取消选中 Microsoft.Web,但它仍然无法正常工作。我也按原样部署了引用的模板,也没有工作 【参考方案1】:

以下文档可能有助于说明为什么会发生这种情况: 来自 MS 文档: 创建函数应用时,必须创建或链接到支持 Blob、队列和表存储的通用 Azure 存储帐户。您目前无法对此帐户使用任何虚拟网络限制。如果在用于函数应用的存储帐户上配置虚拟网络服务终结点,该配置将破坏你的应用。 参考:enter link description here

【讨论】:

【参考方案2】:

我会说这是Function networking这里的网络问题所以设置WEBSITE_VNET_ROUTE_ALL to 1然后它应该可以工作..

【讨论】:

Azure 函数访问存储帐户

】Azure函数访问存储帐户【英文标题】:Azurefunctionaccesstostorageaccount【发布时间】:2021-10-1216:22:52【问题描述】:就我而言,我想从Azure函数应用访问存储帐户。两者都在同一个订阅和资源组中。我已修改IAM策略以允许azure函数访... 查看详情

如何从 C# 代码轮换 Azure 存储帐户访问密钥?

】如何从C#代码轮换Azure存储帐户访问密钥?【英文标题】:HowtorotateanAzurestorageaccountaccesskeyfromC#code?【发布时间】:2021-12-2105:50:36【问题描述】:我有一个Azure存储帐户。它有许多相关联的访问密钥。从AzureWebGUI可以“轮换”这些... 查看详情

从 Azure Function App 访问带有防火墙的 Azure Blob 存储

...的网络。我想从在我知道出站IP地址的动态计划上运行的函数应用访问此存储帐户。问题是我将这些出站ip添加到blob 查看详情

从 ASP.NET 应用程序访问 Azure 存储帐户文件共享

】从ASP.NET应用程序访问Azure存储帐户文件共享【英文标题】:AccessinganAzureStorageAccountFileSharefromanASP.NETApplication【发布时间】:2016-06-1600:37:35【问题描述】:我有一个需要从Azure文件共享读取和写入的ASP.NET应用程序。我无法直接在... 查看详情

如何允许 Azure 逻辑应用访问受保护的 blob 存储帐户

...,我将blob存储在容器中。我想将此存储帐户的访问权限限制为特定的Azure资源并阻止Internet连接。我目前只能访问我们办公地点的IP。这使我们能够支持 查看详情

带有 QueueTrigger 的 Azure 函数:是不是可以仅配置存储帐户 URL 并使用托管标识访问队列?

】带有QueueTrigger的Azure函数:是不是可以仅配置存储帐户URL并使用托管标识访问队列?【英文标题】:AzureFunctionwithQueueTrigger:isitpossibletoconfigureonlytheStorageAccountUrlandaccesstheQueueusingaManagedIdentity?带有QueueTrigger的Azure函数:是否可以仅... 查看详情

从 Azure VM 访问 Azure 存储,无需出站 Internet

...2016-11-1406:22:38【问题描述】:我配置了带有DMZ和多个内部子网的VNET。存在阻止内部子网的所有出站Internet连接的安全要求。现在,此VM需要访问托管在同一区域的AzureBlob存储。我想知道在没有出站Internet 查看详情

Azure 功能:访问存储帐户时出现 403 错误

...收到了与Azure存储帐户禁止访问相关的错误403。我尝试在函数配置中添加AzureWebJobsStorageK 查看详情

Azure 存储 - 使用存储访问策略时限制 SAS 中的 IP

】Azure存储-使用存储访问策略时限制SAS中的IP【英文标题】:AzureStorage-RestrictIPinSASwhenusingStoredAccessPolicy【发布时间】:2021-05-0114:43:09【问题描述】:在Azure存储帐户中,我已开始使用SAS(共享访问签名)和SAP(存储访问策略)来... 查看详情

从 webapp (azure) 访问 blob 存储

】从webapp(azure)访问blob存储【英文标题】:Accessblobstoragefromwebapp(azure)【发布时间】:2021-12-1806:28:59【问题描述】:我正在尝试在Azure上将应用程序投入生产。此应用程序包含一个webapp(运行Docker容器),它应该与Azure存储帐户(blob... 查看详情

python 从 azure 存储帐户读取

...存储在存储容器中的.csv文件。我有这些详细信息供容器访问:“BlobSAS令牌”和“BlobSASURL”我一直在提到this、this,但他们不使用“BlobSAS令牌”或“BlobSASURL”有人可以帮助编写一个可以将数据作为数据框读取的py 查看详情

Azure 逻辑应用可以从存储帐户中读取 excel 文件吗?

...。我可以使用带有“获取Blob内容”的Azure逻辑应用程序来访问该文件。但我找不到任何文档讨论从blob存储中实际读取Azure逻辑应用程 查看详情

Azure 存储帐户 - 容器级访问和 ACL

】Azure存储帐户-容器级访问和ACL【英文标题】:AzureStorageAccount-ContainerlevelaccessandACL【发布时间】:2021-02-0113:38:37【问题描述】:Azure存储帐户在我们的一个用例中,我们希望使用Azure存储与客户共享它,以便他们可以将数据上传... 查看详情

保护 Azure 存储免受公共 Internet 访问

】保护Azure存储免受公共Internet访问【英文标题】:SecureAzureStoragefrompublicinternetacces【发布时间】:2020-09-0622:13:59【问题描述】:我们从Azure安全中心收到一条消息:存储帐户中的异常访问检查表示存储帐户的访问权限已被与最近... 查看详情

使用 Powershell 列出所有 Azure 存储帐户和网络规则

...络访问仅限于特定的虚拟网络。一些存储帐户设置了网络限制,但大多数没有。我需要一种方法来选择所有存储帐户, 查看详情

如何通过服务主体通过 Azure Key Vault 访问 Azure 存储帐户

】如何通过服务主体通过AzureKeyVault访问Azure存储帐户【英文标题】:HowtoaccessAzurestorageaccountViaAzureKeyVaultbyserviceprincipal【发布时间】:2022-01-0320:28:43【问题描述】:我有一个外部Web应用程序,它可以选择使用服务主体访问存储帐... 查看详情

Azure 函数无法访问 Azure Blob

】Azure函数无法访问AzureBlob【英文标题】:AzurefunctioncannotaccessAzureBlob【发布时间】:2021-09-1712:47:56【问题描述】:我正在尝试从Azure功能访问存储帐户。但是在尝试检索文件时出现403错误。我没有看到为什么我收到此错误的任何... 查看详情

Azure CLI - 如何从帐户密钥中找到可用的“端点”?

...它的存储选项?使用:az存储帐户列表检索我的订阅有权访问的帐户,并获得访问点:"primaryEndpoints":"blob":"https://M 查看详情