如何用OpenStack安全构建私有云?

【TechTarget中国原创】如果你已经决定投入并构建你自己的云,那么恭喜你!现在不是仅仅构建安全的图片、锁定实例并管理你的数据,你也要确保运行的整个基础架构的安全。

  有人常常认为运行私有云来解决与公有提供商,像亚马逊和Rackspace相关的安全问题。但是仅仅因为你的源在防火墙之后并不意味着安全问题逐渐消失。你可能不必担心多租户的风险,但是先要对确保整个的物理硬件的安全负责。

  在使用像OpenStack这样的较为年轻的平台的时候尤其困难,这个平台仅仅才两年而且文档不健全。我个人学习了一些OpenStack的内容,在这篇技巧中,我讲讨论下如何使用OpenStack构建私有云,基于我的研究以及一些亲身体验的测试,会覆盖一些安全部署的步骤。

  OpenStack:如何构建私有云

  第一步是设置正确的硬件和网络环境。尽管OpenStack允许我们在一个单一的平面网络上部署一切,从安全的角度来看并不安全。取决于你所使用的管理程序以及虚拟网络接口,它会允许guest虚拟机嗅探管理流量。我建议你至少使用两个网络:一个用来管理流量,一个用来进行虚拟机之间的对话。这意味着所有的云计算结点中你需要两个网卡(一个运行实例)和网络管理者。这些应该运行在不同的IP范围中。

  计算结点和实例的网络也需要支持VLAN标记,因为这是在“项目”之间隔绝流量所使用的机制。一个项目等价于你的亚马逊EC2账户,除了你不能按照你所希望的数目创建和分配之外。每一个项目都有自己的管理员和用户,在既定项目中的所有实例可以彼此通信。通过指派每一个项目自己的VLAN以及内部和外部的IT地址池来执行。

  一旦硬件和网络设置好,下一步就是确定在哪里部署所有的OpenStack组件。标准部署颖有一个控制器和一系列计算结点。控制器运行消息服务器,数据库和其他的组件来编排云,同时计算几点运行实例。但是你也可以分解控制器为地理的部分,从而改善性能,像把MySQL放在不同的物理盒中。对于安全而言,最关键的是确保每一部分都安装在安全的主机上,你只需要将其附加在网络上,让云运转即可。

  只有两部分需要暴露给外面的世界(即使那只是你的企业网络):API服务器/Web 控制台(如果开启)和网络管理者。这些服务器需要过硬,你甚至可以使用第三方网络接口来隔离后端管理用户连接产生的流量。

  如果你遵循默认安装说明书,可能这些部分并不如他们应该的那样安全。下面是一些具体的改变:

  * MySQL服务器使用指定的用户账户,不是根MySQL管理账户。这个账户和密码将会暴露在每一个云结点上,即使使用基于证书的认证,因此所有结点需要访问这个数据库服务器。

  * MySQL配置文件中,限制访问服务器,OpenStack用户账户为唯一授权IP地址。

  * 移除任何不需要的OS组件并确保你所设置的服务器只支持通过SSH的基于密钥的登陆。

  * 默认MySQL和RabbitMQ(消息服务器)流量不加密。如果你隔离了管理网络和坚固的主机,这就不应该是一个很糟糕的风险。如果你的云网络易于嗅探(例如,它和其他服务器共享网络),你需要加密流量。你可以使用OpenSSL来进行MySQL 和RabbitMQ处理。(我个人还没进行测试,因此配置可能有点难。)

  下一步,记住如果你支持Web管理控制台,默认不适用SSL。这要比其他的管理组件更成问题,因为通常是外部访问。你会最清楚希望使用Apache和SSL来配置。

  这些仅仅是你开始做的一些基础。我们已经略过了像配置CloudPipe(专用VPN开发者可以用它访问项目实例),管理开发者证书,构建安全图片或者控制管理程序,但是这些步骤将会协助你开始项目,而且是一种安全的基础架构。

原文地址:http://www.searchcloudcomputing.com.cn/showcontent_59217.htm

你可能感兴趣的:(如何用OpenStack安全构建私有云?)