从本地访问 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.net
是 blob.[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 存储帐户创建专用终结点连接时出现 ResourceNotFound 错误
用于 postgresql 的 Azure 专用终结点无法与多个 Vnet 一起使用
您应该为 VNET 专用终结点的每个 Azure 资源(CosmosDB、KeyVault、存储)创建多个子网还是只使用一个?