本文介绍:
Azure database for MySQL的链接安全性中关于 拒绝/允许公网访问和IP防火墙
实战内容:
1. Deny public network access 设置为 Yes,验证从Internet 和 Azure 均无法连接数据库服务器;
2. Deny public network access 设置为 No,
对于Internet 连接:
验证本地IP不在白名单时无法访问数据库服务器;
验证将本地IP添加白名单后可以访问数据库服务器;
对于Azure 连接:
验证将Allow access to Azure services 设置为Yes,Azure VM可以访问数据库服务器;
验证将Allow access to Azure services 设置为No,Azure VM无法访问数据库服务器;
验证将Allow access to Azure services 设置为No,将Azure VM公网Ip添加到白名单后,可以访问数据库服务器;
视频介绍:
https://www.51azure.cloud/post/2020/8/23/azure-database-for-mysql-connection-security-1-public-network-access-and-firewall-rules
图文介绍:
对于Azure paas 层的MySQL的访问链接来自于两部分,一部分是 Azure 内部的访问,另一部分是Azure 外部的互联网访问,对于Paas的mysql,这两部分( Internet 和 Azure) 的连接必须首先通过防火墙,才能访问 Azure Database for MySQL 数据库。
对于如下图的界面:
2. Deny public network access 设置为“No”, 则此时来自于Internet 和 Azure的IP如果在防火墙白名单中,则可以通行。
对于防火墙白名单,有几个特别需要注意的事项:
a). 0.0.0.0-255.255.255.255,表示方形所有公网IP的连接
b) 针对Azure的资源特定设置:
i. Allow access to Azure services 设置为Yes ,允许来自Azure的连接:本选项允许来自Azure 云中的任意公网IP访问,包括其他人的订阅下的资源,但不包括国家云(例如 世纪互联运营的Azure),这样确实可能存在安全风险,其他人的虚拟机也能访问你的数据库,只剩下mysql的用户名和密码作为最后的屏障。
ii. 如果Allow access to Azure services 设置为 No,则需要对每个尝试使用数据库的ip手动添加到白名单中,这种方式,需要注意的是,比如你通过虚拟机访问数据库,你的虚拟机公网IP有可能是动态的,在重启后可能IP发生变更导致无法链接到数据库,这类情况下,需要将IP设置为静态;
可以看到下图Ip为 dyamic 类型,需要将其设定为 static 才能在虚拟机重启后保留ip地址不变:
关于虚拟机静态公共IP地址的配置,请参照官网《https://docs.microsoft.com/zh-cn/azure/virtual-network/virtual-network-deploy-static-pip-arm-portal》
比如你使用的是 APP Service或者Functions,这类服务的出站IP通常包含多个IP,需要将所有的IP都加入防火墙白名单,如下图所示:
在App service 进行 sacle up 时,IP地址可能发生变更,此时需要注意将变更后的ip添加到白名单中:
关于App service 出站IP变更的详细内容,可参照官网《https://docs.microsoft.com/zh-cn/azure/app-service/overview-inbound-outbound-ips#when-outbound-ips-change》
声明:
点击可查阅本站文章目录 《文章分类目录》
本站所有内容仅代表个人观点,如与官文档冲突,请以官方文档为准。
可在本页面下方留言或通过下方联系方式联系我:
微信:wxyusz;邮箱:[email protected]
欢迎关注公众号“云计算实战”,接收最新文章推送。
本作品由Sean Yu 采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
欢迎转载、使用、重新发布,但务必保留文章链接:https://www.51azure.cloud,且不得用于商业目的。