想象一下,我们有一个生成Ambari服务器和带有两个节点的Hadoop集群的蓝图。
我们正在使用以下项目 - > https://github.com/brooklyncentral/brooklyn-ambari
在这种情况下,创建了三个实体(1个Ambari Server + 2个Hadoop节点),因此生成了3个安全组。每个实体都有自己的安全组。
最佳做法是什么:上面提到的(每个实体一个安全组)或所有实体只有一个安全组(如果可能的话)?
答案 0 :(得分:0)
选项包括以下内容:
让Brooklyn为每个VM自动生成一个安全组。这是默认设置,但它不是最安全的,因为它公开打开端口而不仅仅是其他Ambari虚拟机。
为所有Ambari VM使用预先存在的安全组。您可以使用securityGroups: nameOfMySecurityGroup
配置位置。此安全组将不加修改地使用,因此可用于在Ambari VM之间提供访问。
配置Brooklyn以创建一个由所有Ambari虚拟机共享的新安全组。这需要使用“位置定制程序”来创建安全组,并将其添加到用于创建VM的配置中。它可以在https://github.com/apache/incubator-brooklyn/blob/0.7.0-incubating/locations/jclouds/src/main/java/brooklyn/location/jclouds/networking/JcloudsLocationSecurityGroupCustomizer.java上使用或构建。布鲁克林将受益于开箱即用的更容易使用!
最佳做法取决于您的安全要求。选项(3)为您提供了根据您的需求安全配置的最大灵活性,因此可以说是最佳实践。对于不经常部署,选项(2)很简单,但如果您必须提前手动创建安全组,则会很烦人。选项(1)是最简单的,但是暴露的端口比绝对必要的多,所以应该不鼓励生产使用。