默认情况下在新子网上应用 NSG/ASG (Azure)

Posted

技术标签:

【中文标题】默认情况下在新子网上应用 NSG/ASG (Azure)【英文标题】:Apply NSG/ASG by default on new subnets (Azure) 【发布时间】:2020-09-22 04:29:12 【问题描述】:

我们管理由多个国家/地区运营的 Azure 订阅。他们每个人都非常独立于他们可以做的事情(创建/编辑/删除资源)。已向他们发送了良好实践指南,但我们(安全团队)希望确保为每个创建的新子网/vnet 系统地应用一组 NSG。

看看 Azure 触发器,我不确定子网创建是否属于可审计事件。我还被告知要查看 Azure 策略,但我再次不确定这是否符合我们的预期:对于每个新的 vnet/子网,自动应用一组预定义的 NSG

您对满足我们需求的解决方案有任何想法吗?

【问题讨论】:

【参考方案1】:

我过去做过这样的工作(不是这个确切的问题),我解决它的方法是使用 Azure 函数遍历订阅并查找此类问题。您可以将代码作为具有订阅者权限的托管标识运行以报告问题,或作为贡献者运行以更新设置。下面是一些代码,展示了如何使用 PowerShell https://github.com/Azure/azure-policy/tree/master/samples/Network/enforce-nsg-on-subnet

您可以考虑使用具有 DeployIfNotExists 操作的策略来部署包含 NSG 的所有数据的 ARM 模板。 https://docs.microsoft.com/en-us/azure/governance/policy/samples/pattern-deploy-resources

您可以通过创建 NSG 并获取模板来获取 ARM 模板: GettingNSGTemplate

另请注意,创建子网是经过审核的,您可以在 VNet 的活动日志中看到它。查看屏幕截图。

AddingASubnet

【讨论】:

我找到了第一个链接,但我真的很喜欢您使用 DeployIfNotExist 操作建议的第二个解决方案。谢谢 @MedAl 你能告诉我你是如何定义模板来使用DeployIfNotExists部署nsg的吗? 嗨@JimXu。老实说,我没有时间继续讨论这个话题。该项目可能会在我们这边被放弃。祝你好运

以上是关于默认情况下在新子网上应用 NSG/ASG (Azure)的主要内容,如果未能解决你的问题,请参考以下文章

Yii2 如何在不使用 all()、one() 或其他执行方法的情况下在新查询中设置数据库配置?

电容器 - 从科尔多瓦迁移后,默认情况下在 Android 上禁用浮动通知

如何在不发送消息的情况下在 Android 中打开默认电子邮件客户端?

默认情况下在浏览器中打开自定义团队应用程序 (Teams Mobile)

默认情况下在包中声明的权限 CAMERA

如何在没有MariaDB的情况下在Debian GNU / Linux 9上安装MySQL(延伸)?