繁体   English   中英

使 Azure Functions 不可公开访问?

[英]Make Azure Functions not publicly accessible?

目前我的功能可以公开访问。 有没有办法让它们只能通过其他东西访问,比如 API 网关,而不是直接访问? 我尝试通过“网络”刀片添加 VNET,但我认为这没有任何作用(我仍然可以公开调用这些函数)……我认为这只是使函数可以访问专用网络上的资源。 我在设置中没有看到任何将 IP 设为私有的选项。 我不是很精通网络相关的问题,所以如果我不清楚,请见谅。

内置密钥支持旨在为此提供一个选项。 您可以要求所有请求都包含一个仅与您关心的资源共享的 API 密钥。 事实上,所有 HTTP 触发的函数默认都需要一个键。 您必须明确选择删除此要求。

但是,密钥不是网络解决方案,如果您泄露了密钥,有人可以访问您的 API(直到您滚动密钥)。 您是正确的 VNet 支持是点到站点,这意味着它可以访问资源,但函数应用程序本身不受保护。 应用服务环境可以解决这个问题,尽管 Kai 对原始问题的评论是正确的 - ASE 尚不可用于函数。

除了密钥之外,您还可以考虑使用应用服务身份验证/授权来要求 AAD 服务主体。 这实际上就像一个键,但如果您在 AAD 中对其他实体建模,则具有额外的好处。 除非你知道你需要这个,否则我会坚持使用钥匙。

使用 CORS 功能,您可以限制对 Azure 函数的访问。 要对此进行配置,请检查以下链接: Azure 功能设置,位于 CORS 部分。

可以对 Azure 函数应用访问限制。 文档可以在这里找到。

您可以使用 PowerShell AZ 模块来创建规则(如果您愿意,也可以使用门户)。

Add-AzWebAppAccessRestrictionRule `
    -ResourceGroupName "ResourceGroup" `
    -WebAppName "AppName" `
    -Name "Ip example rule" `
    -Priority 100 `
    -Action Allow `
    -IpAddress 122.133.144.0/24

可以在此处找到Add-AzWebAppAccessRestrictionRule文档。

IP 限制可用于限制对列入白名单的 IP 的访问。 您可以通过门户来完成 -

https://docs.microsoft.com/en-gb/azure/app-service/app-service-ip-restrictions

或在带有 ipSecurity 的 web.config 中

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM