首页 文章

建议将 Cloud 代工厂连接到mongodb Map 集

提问于
浏览
0

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

我现在想把它发布到关键的 Cloud 代工厂 .

PCF和 Map 集之间的安全连接

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

自动配置阻碍

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

1 回答

  • 1

    在mongodb Map 集中,我需要打开防火墙,允许某些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的代理,因此您可以列出代理白名单以仅允许访问您的应用程序 . 如果您不想运行自己的代理服务器,则可以使用公共代理提供程序 .

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

    可以禁用自动配置 . 这里的文档中描述了一种方法 . 如果包含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]'

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

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

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

    希望有所帮助!

相关问题