JClouds 在 AWS EC2 中创建默认安全组,我该如何阻止它?

JClouds creates default security group in AWS EC2, how can I block that?

我正在使用 JClouds 在 AWS 中创建 EC2 机器。这些机器创建时没有任何问题,但它们被放入由 JClouds 创建的默认安全组中。 JClouds 的典型默认安全组将具有 "jclouds#" 前缀,如下所示:

jclouds#euweawlt-c96-j40788-26

因为我们有预定义的安全组,所以我想改用它们。

根据 link JClouds AWS guide 这应该可以通过简单的代码行实现:

template.getOptions().as(EC2TemplateOptions.class).securityGroups(group1, group2);

所以我也将它添加到我的代码中:

computeTemplate.getOptions().as(EC2TemplateOptions.class).securityGroups(securityGroup);

...其中 securityGroup 是我们预定义的安全组的名称。

同一文档页面指出这应该足够了:

"With respect to the security group, jclouds creates a security group for you, with rules corresponding to the inboundPorts() option (defaults to open port 22), unless you use the option EC2TemplateOptions.securityGroups()."

最终结果是 EC2 机器被添加到上述代码指定的安全组以及默认的 "jcloud#..." 安全组中。因此 JClouds 确实创建了一个默认安全组。

我真的很想摆脱它,因为我们已经有了一个安全组,当机器终止时它不会被删除,并且由于安全组没有被 JClouds API 抛出异常创建后可用,无论如何。

欢迎指点。

正在查看 the code, it looks like you're right and jclouds will always create that security group by default. I think there is no current workaround for that and I'd suggest you report that as an issue in the jclouds JIRA

我认为修复应该很简单,只需将突出显示的行移动到前面的 else 子句中,但我们最好打开问题以便正确跟踪它