云计算相关的技术差点儿都对传统网络架构和安全规则产生一定的冲击。Pivotal Cloud Foundry(PCF)也不例外,去年8月为了说服专业安全组织允许PaaS部署方案,特意为他们深入讲了下PCF的安全机制,尽管这种原理性的东西不符合开博的宗旨,可是为了防止大家也要说服这种组织,分享出来也算是云计算实务的一部分。只是说实话,个人以为既然我们開始拥抱云计算和大数据,那在安全上就应该有新的认识和实践。

本文是基于PCF1.2进行的说明,如今的版本号里Availability Zone和App Security Group都已经是存在的功能了。首先给出PCF的系统结构图,用于在下文进行说明时进行对比。然后将以条目的格式列举PCF安全原理的所有要点。

  1. 外部应用訪问PCF应用仅通过HAProxy的IP,PCF应用訪问外部应用通过DEA的IP或者DEA被SNAT之后的IP。要说明的是。PCF自带的负载均衡器为开源软件HAProxy,可是支持使用不论什么自由的负载均衡器,即下图中的Load Balancer的位置。





  2. warden与不论什么其它部分(同一host上的其它warden、不同host上的warden、PCF组件、service instance、PCF外部应用)均需先NAT成所在host的IP。
  3. warden们互相是不知道对方的存在,每一个warden都用255.255.255.252为掩码的网络与主机联系。主机们的iptables保证不会将一个warden连到还有一个warden。

  4. warden所在主机的iptables保证它仅仅能訪问特定的PCF组件。而不能訪问其它的组件。

  5. PCF的服务绑定机制通过主机iptables保证仅仅有合法应用才干訪问服务。

  6. Host的iptables保证了除了router谁也没法訪问warden。
  7. PCF通过ORG上的角色Manager/Auditor、SPACE上的角色Manager/Developer/Auditor保证了授权用户才干管理应用。

  8. HAProxy的作用是SSL和负载均衡http请求到router上,所有相应用訪问造成的数据通讯都须要通过router,在CC的帮助下,router将请求放到正确的应用实例上。假设应用指定了jseesionid,则router会尽量保证请求被路由到同一个应用实例上。
  9. PCF内部组件通讯均通过订阅公布式消息队列,互相之间不做网络通讯,其訪问控制均通过iptables实现。即使没有app security group功能,仍然能够通过登录到OS中。改动iptables来改变安全策略(默认的安全策略是all deny,东西向全不通)。Security group给了一个用户接口去改动这些策略。

  10. Availability Zone从资源池层面攻克了网络隔离,应用实例,各个服务实例均可依照原有的网络规划放置。可是弹性执行环境还是仅仅能在一个zone里。
  11. PCF可通过syslog的方式将组件日志和应用日志均公布出来。用于安全审计。

Pivotal Cloud Foundry安全原理解析的更多相关文章

  1. Pivotal Cloud Foundry学习笔记(1)

    PCF是一个PAAS平台 注册PCF账号 https://account.run.pivotal.io/sign-up 安装cf CLI 访问 https://console.run.pivotal. ...

  2. 在pivotal cloud foundry上申请账号和部署应用

    Created by Wang, Jerry, last modified on Jul 04, 2016 URL: http://run.pivotal.io/ maintain your mobi ...

  3. Cloud Foundry技术全貌及核心组件分析

    原文链接:http://www.programmer.com.cn/14472/ 历经一年多的发展,Cloud Foundry的架构设计和实现有了众多改进和优化.为了便于大家了解和深入研究首个开源Pa ...

  4. Cloud Foundry和微服务Meetup重磅来袭

    CF 同学们: Cloud Foundry 2016 上海 Meetup 将在10月22日在上海港汇广场进行! 想要参会的小伙伴,请直戳  ~ 在过去的一年,CF 的技术有很多进展,微服务也是2016 ...

  5. Cloud Foundry中vmc tunnel与caldecott原理

    在Cloud Foundry中,用户可以vmc create-service创建一个service instance,但是常规情况下,用户不能手动地进一步对service instance进行设计.以 ...

  6. 基于Cloud Foundry平台部署nodejs项目上线

    Cloud Foundry(以下简称CF),CF是Vmware公司的PaaS服务平台,Paas(Platform as a Service,平台即服务), 是为开发者提供一个应用运行的平台,有了这人平 ...

  7. Cloud Foundry warden container 安全性探讨

    本文将从Cloud Foundry中warden container的几个方面探讨warden container的安全性. 1. warden container互訪 1.1.  互訪原理· 在Cl ...

  8. 12月2日,上海Cloud Foundry Summit, Azure Cloud Foundry 团队期待和你见面!

    12月2日,上海Cloud Foundry Summit, Azure Cloud Foundry 团队期待和你见面! 12日2日对中国Cloud Foundry的用户和开源社区来说,是极有意义的一天 ...

  9. Cloud Foundry中 JasperReports service集成

    Cloud Foundry作为业界第一个开源的PaaS解决方案,正越来越多的被业界接受和认可.随着PaaS的发展,Cloud Foundry顺应潮流,充分发挥开源项目的特点,到目前为止,已经支持了大批 ...

随机推荐

  1. SQL条件语句(IF, CASE WHEN, IF NULL)

    1.IF   表达式:IF( expr1 , expr2 , expr3 )   expr1条件,条件为true,则值是expr2 ,false,值就是expr3 SELECT o.id,u.acco ...

  2. day23-1 isinstance、issubclass和反射

    目录 isinstance和issubclass 反射(hasattr,getattr,setattr,delattr) isinstance和issubclass isinstance(obj,cl ...

  3. 由于未清除缓存引发的bug

    在写页面的时候,首先引入了本地react.js和react-dom.js 16版本(cjs)的文件,出现如下错误 发现bug后,将本地的react.js和react-dom.js文件改成16.2(um ...

  4. 关于Maven项目的pom.xml中的依赖或插件失效的解决方法

    1.请将<dependency>标签包含的依赖从<dependencyManagement>中拿出来,单独放在<dependencies>标签里面.2.请将< ...

  5. wpf Command 携带当前窗口

    Command="{Binding GoPayCommand}" CommandParameter="{Binding RelativeSource={RelativeS ...

  6. PHP生成文档,并把数据加入文档的小案例

    PHP生成文档,可以利用file_put_contents($filename, $data),其中$filename表示文档名,$data表示需要放入的数据, 若存放的是数组,这还需要使用seria ...

  7. redis中基本命令

    记录一下redis中的基本命令.redis中有redis-cli工具客户端,使用这个客户端来发送一些命令 一.redis-cli的使用  1.redis-cli使用之发送命令 2.redis-cli使 ...

  8. cssrefresh.js-CSS文件自动刷新

    一.如何使用cssrefresh.js 使用很简单,类似下面的代码: <head> <link rel="stylesheet" type="text/ ...

  9. scrollfix.js插件:滚动固定在某个位置

    插件文件在/文件 scrollfix.js 用法: var fix = $(".fix"), fixtop = $(".fix-top"), fixStartT ...

  10. 树莓派 -- 输入设备驱动 (key)

    输入设备(如按键,键盘,触摸屏等)是典型的字符设备,其一般工作原理是底层在按键或触摸等动作发生时产生一个中断,然后CPU通过SPI,I2C总线读取键值. 在这些工作中之后中断和读键值是与设备相关的,而 ...