云计算相关的技术差点儿都对传统网络架构和安全规则产生一定的冲击。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. Swift protocol extension method is called instead of method implemented in subclass

    Swift protocol extension method is called instead of method implemented in subclass protocol MyProto ...

  2. cal - 显示一个日历

    总览 cal [-mjy ] [月份 [年份 ] ] 描述 Cal 显示一个简单的日历.. 如果没有指定参数, 则显示当前月份. 选项如下所列: -m 显示星期一作为一周的第一天.. (缺省为星期日. ...

  3. ie11 突然不能加载外部css 很神奇 头部改为 <!DOCTYPE> <html>

    <!DOCTYPE html> <html> 改为 <!DOCTYPE> <html>   OK了

  4. viewport 640宽的做法 针对iphone和安卓单独设置

    <!DOCTYPE html> <html lang="ch"> <head> <meta charset="utf-8&quo ...

  5. 双引号" "和单引号' '区别

    双引号是字符串,单引号是字符 “\n”与'\n': 相同点: 都能起到换行作用     不同点: "\n" <=> {'\n', '\0'} '\n' <=> ...

  6. hdfs深入:03、hdfs的架构以及副本机制和block块存储

    HDFS分布式文件系统设计目标 1.            硬件错误  由于集群很多时候由数量众多的廉价机组成,使得硬件错误成为常态 2.            数据流访问  所有应用以流的方式访问数 ...

  7. 扫黑除恶Team第四次团队作业

    二.博客撰写要求 文章开头给出团队序号,开发的软件名称,仓库地址. 给出完成本次冲刺需要做的事情(Sprint Backlog)及相应说明. 本次冲刺总结. 三.评分规则 注意:本次作业总分61分.发 ...

  8. JZOJ5776. 【NOIP2008模拟】小x游世界树

    题目:[NOIP2008模拟]小x游世界树: 题目的附加题解给的很清楚,这里只给一个代码: #include<iostream> #include<cstdio> #inclu ...

  9. 笔试算法题(18):常数时间删除节点 & 找到仅出现一次的两个数字

    出题:给定链表的头指针和一个节点指针,要求在O(1)的时间复杂度下删除该节点 分析: 如果需要删除的节点为A,其前序节点为A-,其后续节点为A+,所以删除A之后,需要使得A-的下一个节点就是A+,常规 ...

  10. [JOYOI] 自然数拆分Lunatic版

    题目背景 话说小小鱼看了P1171(自然数拆分)之后感觉异常不爽,于是异常邪恶地将题目加强. 题目描述 输入自然数n,然后将其拆分成由若干数相加的形式,参与加法运算的数可以重复. 输入格式 输入只有一 ...