# Azure Service Endpoints 概念和定义

**URL:** <https://www.isharkfly.com/t/azure-service-endpoints/17801>\
**Category:** 云计算\
**Tags:** azure\
**Created:** [October 7, 2025, 11:55am UTC](https://www.isharkfly.com/t/azure-service-endpoints/17801 "2025-10-07T11:55:10Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![hex](https://www.isharkfly.com/user_avatar/www.isharkfly.com/hex/32/21953_2.png) [@hex](https://www.isharkfly.com/u/hex)\
**Post date:** [October 7, 2025, 11:55am UTC](https://www.isharkfly.com/t/azure-service-endpoints/17801/1 "2025-10-07T11:55:10Z")

</div>

Azure Service Endpoints（Azure 服务终结点）是 Azure Virtual Network (VNet) 的一项安全功能，它允许你 **将你的 VNet 与受支持的 Azure 服务（如 Azure Storage、Azure SQL Database、Azure Cosmos DB 等）直接连接，并通过 Azure 骨干网络路由流量，而不是通过公共互联网。**

**核心概念：**

1. **VNet 的扩展：** 服务终结点实际上是将一个或多个 Azure 服务直接“扩展”到你的 VNet 中，使其看起来像是你的 VNet 的一部分。
2. **私有路由：** 启用服务终结点后，发往该 Azure 服务实例的流量将不再通过公共 IP 地址和公共互联网进行路由，而是通过 Azure 的内部骨干网络进行路由。
3. **增强安全性：**
  - **移除公共 IP 暴露：** 服务实例的公共 IP 地址仍然存在，但你的 VNet 中的资源不再通过该公共 IP 访问它，从而减少了暴露面。
  - **VNet 限制：** 启用服务终结点后，你可以在目标 Azure 服务（如存储账户或 SQL 数据库）上配置**网络规则 (Network Rules)**，仅允许来自特定 VNet 和子网的流量访问。这意味着即使你的服务仍然有公共 IP，也只有你指定的 VNet 能够访问它，大大限制了未经授权的访问。

4. **无额外费用：** 使用服务终结点本身不收取额外费用，但你仍然需要支付底层 Azure 服务的费用。

**Service Endpoints vs. Private Link (专用链路)：**

在讨论服务终结点时，常常会将其与 Azure Private Link 进行比较。虽然它们都是为了安全地访问 Azure 服务，但它们有几个关键区别：

| 特性 | Azure Service Endpoints | Azure Private Link |
| --- | --- | --- |
| **工作方式** | 将服务扩展到 VNet，流量通过 Azure 骨干网路由。 | 将服务的私有 IP 地址映射到你的 VNet 中。 |
| **访问方式** | 你的 VNet 子网直接访问服务的公共终结点（但流量是私有的）。 | 通过服务的私有 IP 地址和私有 DNS 区域访问服务。 |
| **防火墙配置** | 在服务防火墙上配置 VNet 和子网规则。 | 无需在服务防火墙上配置，因为流量默认只来自你的 VNet。 |
| **暴露面** | 服务的公共 IP 终结点仍然存在，但只接受来自指定 VNet 的流量。 | 服务的公共 IP 终结点可以完全禁用，或从未创建。 |
| **跨区域访问** | **通常只适用于同一区域或配对区域的服务。** | 支持 **跨区域** 访问服务。 |
| **与本地连接** | **无法直接从本地网络通过 ExpressRoute/VPN 网关访问。** | **可以** 从本地网络通过 ExpressRoute/VPN 网关访问。 |
| **支持服务** | Azure Storage, SQL DB, Cosmos DB, Key Vault, Event Hubs, 等。 | 更多服务，包括你自己的应用程序（通过 Private Link Service）。 |
| **复杂性** | 配置相对简单。 | 配置稍微复杂，涉及到私有 DNS 区域。 |
| **费用** | 无额外费用。 | 有额外费用（按小时和处理的数据量计费）。 |

**何时使用 Service Endpoints：**

- 你希望加强 VNet 内资源与 Azure 平台服务之间的安全性。
- 你的应用程序和 Azure 服务都在 **同一个 Azure 区域** 。
- 你不需要从 **本地网络** 通过私有连接访问 Azure 服务。
- 你更注重 **成本效益** ，不需要 Private Link 提供的更高级别的隔离和功能。
- 你的安全模型允许 Azure 服务的公共 IP 存在，但只接受来自你 VNet 的流量。

**使用步骤示例（以 Azure Storage 为例）：**

假设你有一个存储账户和一个部署在 VNet 中的虚拟机，你想让虚拟机安全地访问存储账户，并阻止其他公共访问。

1. **创建一个 VNet 和一个子网。**

2. **创建一个 Azure 存储账户。**

3. **在 VNet 的子网中启用服务终结点：**
