本文属于【Azure 架构师学习笔记】系列。
前言
在做Azure 架构时,经常会被问到Service Endpoint这个点,那么这篇文章来介绍一下Service Endpoint(SE)。
Azure Service Endpoint
首先它是一个专用通道,在Azure 资源之间进行连接。
其次它使用Azure骨干网,由微软保证其稳定性和性能。
同时,Service Endpoint(SE)应用于一类资源,比如所有storage account, 而不是指定的某一个storage account。
SE 不经过VNet, 直接通过骨干网,可以在VNet下面的Subnet上面启用SE。
每个Azure的计算资源(如VM)都建立在特定的VNet上。
在常规的网络配置中,需要预留一些内网IP 地址给资源,并且如vm这种计算资源,会使用防火墙上的公网IP 作为私有IP 地址,但是使用SE 则不需要,它会使用VM 中的私有IP 作为资源的IP 地址。
例子
当你在Azure SQL DB上启用了SE,实际上是在一个subnet A 上启用,那么在subnet A 的VM 就会使用私有IP 去访问DB 。而在subnet B 上的VM 因为并不属于SE所在的Subnet, 所以里面的VM 将会使用公网IP 去访问DB。
我们可以到VNet里面的Subnet中启用某个服务的SE ,如下图。
Service Endpoint Policy
SE 是针对所有Azure Resource, 上图中并没有可以选择就某个资源的配置。如果你需要进一步限制不属于你环境的进入,那么就需要使用policy来控制, 启用它将可以筛选特定的VNet流量。SE policy是一个独立的资源并且启用在Subnet level。
但是目前对Azure Storage Account则可以限制在特定的某个SA上。
Virtual network service endpoint policies for Azure Storage
SE policy是“Allow” policy,也就是没有在里面的都不可以访问,跟常规的deny 不一样。所以一旦启用务必检查并把所有相关资源一并加入policy中。