【问题标题】:How to limit access in Cloud Foundry如何限制 Cloud Foundry 中的访问
【发布时间】:2021-06-10 09:41:40
【问题描述】:

我是 Cloud Foundry 的新手。 是否只有特定用户才能查看和更新​​部署在 Cloud Foundry 中的应用程序?

1.我使用“cf push”命令在 Cloud Foundry 中部署了一个应用程序。 2.输入“cf push”命令后,下面有一条消息。

    Using manifest file /home/stevemar/node-hello-world/manifest.yml
    enter Creating app node-hello-world-example...

name:              node-hello-world-example
requested state:   started
routes:            {route-information}
last uploaded:     Mon 14 Sep 13:46:54 UTC 2020
stack:             cflinuxfs3
buildpacks:        sdk-for-nodejs
type:            web
instances:       1/1
memory usage:    256M

3.使用上面的{route-information},我可以通过浏览器输入下面的URL看到部署的应用程序。

https://{路由信息}

通过这种方式,任何人都可以从浏览器中看到应用程序,但我不希望每个人都看到它并限制特定用户的访问。

听说这个全局IP会默认分配给{route-information}。 有没有办法限制特定用户之间的访问? (例如,Cloud Foundry 中的 Kubernetes 是否有“私有注册表”之类的功能不对外开放)

由于我在 IBM Cloud 中使用 Cloud Foundry,如果有使用 IBM Cloud 的解决方案会更好。 我已将 Cloud Foundry 角色授予其他用户。

谢谢。

【问题讨论】:

  • 您部署了一个基于 Cloud Foundry 的 Internet 应用程序并希望限制对它的访问,对吗?
  • 你好。是的,这是正确的。比你。
  • 您只能允许经过身份验证的用户访问。有很多方法可以实现,一种是使用 App ID 服务。有它的教程。

标签: ibm-cloud cloud-foundry


【解决方案1】:

CloudFoundry 平台本身不为应用程序提供任何访问控制。如果您将公共路由分配给您的应用程序,其中 DNS 是可公开解析的,并且基础位于公共 Internet 上(如 IBM Bluemix),那么任何人都可以访问您的应用程序。

你可以做很多事情来限制访问,但它们确实需要你做一些工作。

  1. 使用私有 DNS。您可以将任何您想要的域添加到 Cloud Foundry,即使是那些无法解析的域。这意味着您可以添加my-cool-domain.local,它在任何地方都无法解决。然后,您可以将此域的记录添加到 /etc/hosts,或者在本地网络上运行 DNS 以解析此 DNS 域并将流量定向到 CloudFoundry。

    使用此设置,大多数人无法访问您的应用程序,因为您的应用程序路由的 DNS 域无法在任何地方解析。重要的是要了解这不是真正的安全性,而是默默无闻。它会阻止大多数流量进入您的应用程序,但如果有人知道该域,他们可以添加自己的 /etc/hosts 标头或发送虚假的 Host 标头来访问您的应用程序。

    如果您有轻微的安全要求,例如您只想在处理某事时隐藏某些内容,或者与以下其他选项配合使用,这种设置可以很好地工作。

  2. 您可以在应用程序中设置访问控制。许多应用服务器和框架可以做一些事情,比如通过 IP 地址限制访问或要求用户访问(基本身份验证很简单,没关系,如果您只允许 HTTPS 流量到您的应用,您应该始终这样做无论如何做)。

    您也可以使用 OAuth2 来保护应用。同样,许多应用程序服务器和框架都支持这一点,并使保护您的应用程序变得相对简单。如果您没有企业 OAuth2 解决方案,则有 public providers you can use。究竟如何在您的应用程序中执行 OAuth2 超出了这个问题的范围,但是有很多关于如何执行此操作的材料。您选择的应用程序语言/框架的 Google 信息。

  3. 您可以设置访问网关。这将是一个应用程序,其工作是将流量代理到基础上的其他应用程序。网关可以是 Nginx、Apache HTTPD 或 Spring Cloud Gateway。这个想法是网关可以公开访问,并且几乎可以肯定会应用访问控制/限制(参见 #2,其中许多代理具有访问控制选项,只需要几行配置)。但是,您的实际应用程序不会公开部署。当您部署实际应用程序时,它们只会位于内部 Cloud Foundry 域中。

    CloudFoundry 有 local domains,通常是 apps.internal(运行 cf domains 以查看是否显示),您可以使用它们轻松地通过内部容器到容器网络路由流量。使用此域和 C2C 网络,您可以将应用程序部署到 CF,这些应用程序无法通过公共 Internet 访问,除非通过您的网关。

    同样,您如何准确地配置它超出了这个问题的范围,但请查看我链接到的文档以获取有关使用 C2C 网络和内部路由的信息。然后查看您选择的代理服务器的文档。

【讨论】:

    猜你喜欢
    • 2015-01-24
    • 1970-01-01
    • 2021-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-06
    相关资源
    最近更新 更多