从本地访问 Azure 专用终结点

Posted

技术标签:

【中文标题】从本地访问 Azure 专用终结点【英文标题】:Access Azure Private Endpoint from on-premise 【发布时间】:2021-09-05 19:39:36 【问题描述】:

上下文

我在 Azure 中有一个 hub-spoke network architecture,并且中心 vnet 具有与本地的站点到站点 *** 连接。

我有一个想要私下访问的存储帐户。因此,我在分支 vnet 中创建了一个专用终结点,并将集线器 vnet 连接到 privatelink.blob.core.windows.net 专用 DNS 区域。

为了从本地解析存储帐户专用链接,我在集线器 vnet 中添加了一个 Azure 防火墙作为 DNS 代理,privatelink.core.windows.net 的所有流量都发送到此防火墙。

此设置汇总here。

问题

当我执行nslookup [xxx].blob.core.windows.net 时,我第一次获得了存储帐户专用 IP。但是,随后,我获得了存储帐户公共 IP。

问题

这怎么可能?

我的猜测

第一次尝试

客户端向本地 DNS 服务器发送 [xxx].blob.core.windows.net 请求 本地 DNS 服务器将请求转发到中心防火墙 中心防火墙将请求转发到 Azure DNS Azure DNS 响应 [xxx].blob.core.windows.net[xxx].privatelink.blob.core.windows.net 的 CNAME,而后者又是 blob.[yyy].store.core.windows.net 的 CNAME 并解析为专用 IP

后续尝试

客户端向本地 DNS 服务器发送 [xxx].blob.core.windows.net 请求 本地 DNS 服务器在其缓存中看到 [xxx].blob.core.windows.netblob.[yyy].store.core.windows.net 的 CNAME,并尝试解析该名称 本地 DNS 服务器解析公共 IP

【问题讨论】:

【参考方案1】:

为存储帐户创建专用终结点时,并不意味着无法从 Internet 访问该存储帐户。这仅意味着您可以从 VNet 和 Internet 访问存储帐户。你可以从下面的截图中理解:

因此,如果您只希望只能从中心 VNet 访问存储帐户,则需要将 Allow access from 更改为 Selected networks,然后将所选网络在中心 VNet 中。

【讨论】:

感谢您的回复。在我的情况下,只允许从选定的网络进行访问,并且下面没有选择虚拟网络,因为我不想通过其公共终结点与存储帐户通信。但是,我有两个专用端点连接:一个用于 blob,一个用于 dfs。 @flappy 好的,那么您需要添加网络规则以将默认操作设置为拒绝,并且只允许来自所选 VNet 的流量。步骤here。然后您只能从 VNet 访问存储帐户,而不能从 Internet 访问。

以上是关于从本地访问 Azure 专用终结点的主要内容,如果未能解决你的问题,请参考以下文章

什么是Azure Private Endpoint

为 Azure 存储帐户创建专用终结点连接时出现 ResourceNotFound 错误

用于 postgresql 的 Azure 专用终结点无法与多个 Vnet 一起使用

您应该为 VNET 专用终结点的每个 Azure 资源(CosmosDB、KeyVault、存储)创建多个子网还是只使用一个?

Azure 中无法访问的终结点

使用 Bicep 创建 Azure Purview 私有终结点