基于 IP 范围的对来自 Azure 上不同存储帐户的其他资源的访问控制
Posted
技术标签:
【中文标题】基于 IP 范围的对来自 Azure 上不同存储帐户的其他资源的访问控制【英文标题】:IP range based access control to additional resources from different storage account on Azure 【发布时间】:2020-06-21 13:51:46 【问题描述】:目标是让单个地址 (static.example.com) 通过动态访问控制(基于 IP 范围)从多个存储帐户访问静态资源。
static.example.com/resource-1/... - accessible to all users and served via CDN
static.example.com/resource-2/... - accessible to all users and served via CDN
static.example.com/resource-3/... - accessible only to internal users
static.example.com/resource-4/... - accessible only to internal users
static.example.com/resource-5/... - accessible only to internal users
static.example.com/resource-6/... - accessible only to internal users
约束:
必须为来自内部网络的用户提供可用资源 在相同的主机名下 static.example.com 可供用户使用的资源 来自内部网络的必须存储在不同的存储帐户中下图中突出显示的区域标记了要使用 Azure Service(-es) 的位置。 问题是可以使用哪些 Azure 服务(以及如何)来实现所描述的要求?
感谢任何帮助或建议。
【问题讨论】:
我可能会尝试 API 管理或函数代理 serverless360.com/blog/azure-function-proxies @silent 感谢您的想法,我将研究这些选项。我只是想知道 Function Proxy 是否会使 CDN 过时。基本上,用户总是从托管函数的位置下载资源,而不是从地理位置接近的 POP 下载资源。考虑到这一点和要求,是否有可能拥有这种类型的带有访问控制的路由,并且仍然可以获得 CDN 的好处。 嗯可能不会。进一步考虑这一点,您也许可以使用 Azure Frontdoor。内置缓存(在边缘节点上)。您需要检查这是否适用于您的文件大小 谢谢@silent。 AFD 看起来很有前途,我会试一试,如果我设法通过 AFD 达到预期的要求,我会用答案更新主题。 【参考方案1】:您可以使用 Azure 应用程序网关 (AAGW) 轻松实现所需的场景。
我做过一个类似的场景,比这个复杂一点。前面还有一个 Azure 流量管理器。您可以使用 AAGW 中的 URL 路由和重定向来实现结果。
https://docs.microsoft.com/en-us/azure/application-gateway/url-route-overview
https://docs.microsoft.com/en-us/azure/application-gateway/redirect-overview
【讨论】:
【参考方案2】:你需要 Azure CDN :)
Azure CDN 可以进行基于路径的路由: https://docs.microsoft.com/en-us/previous-versions/azure/mt757336(v=azure.100)?redirectedfrom=MSDN#url
Azure CDN 可以做 IP 过滤: https://docs.microsoft.com/en-us/previous-versions/azure/mt757336(v=azure.100)?redirectedfrom=MSDN#match-conditions
【讨论】:
以上是关于基于 IP 范围的对来自 Azure 上不同存储帐户的其他资源的访问控制的主要内容,如果未能解决你的问题,请参考以下文章
限制来自 Blob 存储中静态网站的 Azure 函数调用?