推荐的方式将云代工厂连接到mongodb地图集

时间:2017-02-26 14:21:06

标签: mongodb spring-boot cloudfoundry pivotal-cloud-foundry mongodb-atlas

我有一个连接到mongodb地图集的春季启动应用程序。 一切都在当地工作。

我现在想把它发布到关键的云代工厂。

PCF和地图集之间的安全连接

在mongodb地图集中,我需要打开防火墙,允许某些ip号码。 我应该如何配置mongodb atlas以最安全的方式连接到pcf?

自动配置阻碍

云代工厂覆盖我的连接网址指向localhost:27017而不是我的atlas集群。 连接mongodb atlas的推荐方法是什么?

1 个答案:

答案 0 :(得分:1)

  

在mongodb地图集中,我需要打开防火墙,允许某些ip号码。我应该如何配置mongodb atlas以最安全的方式连接到pcf?

白名单在CF上运行的应用程序的IP地址不是特别有效。它无效的原因是您不知道要连接的IP地址,因为它取决于Diego决定运行您的应用程序的位置。换句话说,它取决于您的应用程序被告知要运行的单元格。要复杂化,重新启动/重新启动应用程序时会发生变化。

因为IP可能会有所不同,所以您最终需要做的是列出所有单元格的白名单。这个问题及其无效的原因在于您最终列出了平台上运行的每个应用程序。

您可以采取哪些措施来提高安全性,以便利用应用程序安全组。 ASG可用于限制传出流量。您还可以在空间级别控制它们。这意味着您可以将默认运行安全组配置为不允许访问MongoDb服务器,但是您可以通过将ASG绑定到那些需要与MongoDb服务器通信的应用程序的空间来允许单个空间的访问。

这种方法的缺点是它要求您成为平台管理员,这意味着它只有在您拥有CF安装时才能工作(不适用于公共提供商)。

更多关于ASG的信息:https://docs.cloudfoundry.org/adminguide/app-sec-groups.html

对于公共提供者,您可以使用代理。要使其工作,您需要将应用程序配置为在尝试访问Mongodb服务器时通过代理进行通信。您可以控制具有固定IP的代理,因此您可以列出代理白名单以仅允许访问您的应用程序。如果您不想运行自己的代理服务器,可以使用公共代理提供程序。

  

云代工厂覆盖我的连接网址指向localhost:27017而不是我的atlas集群。连接mongodb atlas的推荐方法是什么?

可以禁用自动配置。这里的文档中描述了一种方法。如果包含Spring Cloud Connectors依赖项并手动使用它们,则自动配置将不会运行。

https://docs.cloudfoundry.org/buildpacks/java/spring-service-bindings.html#manual

另一个选择是告诉Java构建包不要安装自动配置。您可以通过为cf set-env或通过manifest.yml文件为应用程序设置以下环境变量来实现此目的。

例如:JBP_CONFIG_SPRING_AUTO_RECONFIGURATION='[enabled: false]'

如果您这样做,请小心,因为它会禁用自动重新配置提供的所有内容,包括为您的应用设置“云”配置文件。如果您使用此选项禁用自动重新配置,您可能还需要设置SPRING_PROFILES_ACTIVE='cloud'以手动启用云配置文件。

我想你的另一个选择是简单地接受自动配置。起初它有点令人困惑/神奇,但我发现这篇文章很好地解释了它。

https://spring.io/blog/2015/04/27/binding-to-data-services-with-spring-boot-in-cloud-foundry

希望有所帮助!