【Azure 架构师学习笔记】- Azure Networking(1) -- Service Endpoint 和 Private Endpoint
本文属于【Azure 架构师学习笔记】系列。
本文属于【Azure Networking】系列。
前言
最近公司的安全部门在审计云环境安全性时经常提到service endpoint(SE)和priavate endpoint(PE)的术语,为此做了一些研究储备。
云计算的本质就是网络, 默认情况下资源间及外部都是通过公网也就是互联网访问。为了安全,Azure引入了SE和PE 等服务。
云环境网络流动主要有两个:inbound(入境)和outbound(出境),前者意味着站在某个资源角度比如一个storage account, 外部的数据流入。 后者则表示storage account的数据返回。
网络流量的载体也有两个:internet(公网)和微软骨干网络(私网)。企业会认为最起码流量都应该只经过骨干网, 只在最外层建设必要的防护措施用于与互联网交互。
在Azure云中,会使用虚拟网络(Virtual Network, VNet)保护资源。通过配置可以使其与云上其他网络,本地网络等进行交互。VNet之间可以经过配对(peering)来互访,在VNet之下,还细分了不同的Subnet。
当一个资源如VM 被创建时,会有一到多个网卡NIC,这些网卡实际上就是建立在所属VNET之上。可以通过动态或者静态IP来指定特定的网卡。
Service Endpoint
在某个VNet 资源上使用private IP(这里就要精确到subnet)连接一个Azure 资源的public endpoint。这里的VNet不一定就是目标资源所在的VNet。
意味着资源间的流量是发生在Azure 骨干网络而不是互联网。实际上就是把服务资源“锁定”, 只允许来自于相连subnet的service endpoint 流量。
如果需要进一步收紧网络,还可以使用VNET上的NSG(network security group)拒绝除了预期Azure 服务之外的其他outbound(出境) 流量。
比如在VM 中,一个VNet需要和Azure Storage Account交互。可以通过组合service endpoint, storage account和NSG从而限制VM 的流量是来自于private subnet,而不是互联网。Storage account也只允许这些subnet的访问。 NSG 则对从资源到互联网的流量进行限制。
但是跨region的VNet间不能使用service endpoint。 只能使用PE。 同时它也只能在Azure网络中使用。附上几个图以便理解。
Private Endpoint
PE 是允许Vnet资源间(同一个VNet)资源的私有访问, 同样也是发生在MS 的骨干网络而不是互联网。比如从VNet中选一个private IP并分配给storage account,这样在同一个VNet下的所有资源如VM 就可以直接访问Storage account而不需要经过互联网。
相对于SE 来说, PE 更像一个通用的私有访问云资源的方案。
差异
通过service endpoints,依旧可以连接目标资源的public endpoint,它更像是延展, 把VNet的标识延展到目标资源。
通过private endpoints, 通过分配一个VNet里私有IP 到目标资源上,本质就是把这个资源“带进”网络。它并没有删除public IP, 但是可以通过控制网络来阻隔。
VNet是一个边界,控制网络的入和出,如果你想让资源只在VNET内交互,那么开方outbound将会是风险,这时候就可以使用service endpoint或者PE 来控制资源受限在某个区域。
一个简单的区别在于PE是针对特定的某个azure 资源而SE 针对的是特定类型资源而不是单纯的某个。
其他差异
费用
SE 没有额外费用。
PE 则需要按时和数据处理的量来收费。
本地支持
SE不支持本地流量,因为它局限于特定VNET。
PE可以通过专线(expressroute)、私有配对(private peering)和VPN 来连同本地跟云环境。
维护
SE没有什么维护成本。
PE的存在需要额外进行DNS 配置。
小结
使用场景
- 阻止全部公网流量——PE
- 混合云环境——PE
- 控制特定资源连接到VNET内的资源——PE
- 控制特定storage account跟VNET 资源间的安全操作——both
- 不希望有额外的配置和使用成本下的安全操作——SE
- 需要跨region——PE