云计算相关的技术差点儿都对传统网络架构和安全规则产生一定的冲击。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. list map接口传递

    1.传参时可以设置为jsonArray的格式 JSONArray array = new JSONArray(); JSONObject json = new JSONObject(); json.p ...

  2. struts2 针对类型转换出错的处理

    在类型转换出错时,需要在页面上显示友好提示: 类型转换出错时,会抛出一个运行时异常,程序会根据建立的属性文件,显示相应的错误提示. 实现方法: 1)新建局部属性文件或者全局属性文件 局部属性文件:放置 ...

  3. CAD参数绘制直径标注(网页版)

    主要用到函数说明: _DMxDrawX::DrawDimDiametric 绘制一个直径标注.详细说明如下: 参数 说明 DOUBLE dChordPointX 在被标注的曲线上的第一个点X值 DOU ...

  4. gym100825G. Tray Bien(轮廓线DP)

    题意:3 * N的格子 有一些点是坏的 用1X1和1X2的砖铺有多少种方法 题解:重新学了下轮廓线 写的很舒服 #include <bits/stdc++.h> using namespa ...

  5. PHP 下基于 php-amqp 扩展的 RabbitMQ 简单用例 (三) -- Header Exchange

    此模式下,消息的routing key 和队列的 routing key 会被完全忽略,而是在交换机推送消息和队列绑定交换机时, 分别为消息和队列设置 headers 属性, 通过匹配消息和队列的 h ...

  6. 下载kaggle数据集,验证手机号

    https://blog.csdn.net/Tomxiaodai/article/details/80167765 kaggle上下载一下数据集必须手机验证,结果验证时一直提示错误输入的格式错误,试了 ...

  7. Python之目录结构

    Python之目录结构 项目名project_name project_name -|--bin (可执行文件) --|--start.py import os,sys #设置环境变量 BASE_DI ...

  8. 【02】AMD、CMD、UMD 模块的写法

    AMD.CMD.UMD 模块的写法 简介 最近几年,我们可以选择的Javascript组件的生态系统一直在稳步增长.虽然陡增的选择范围是极好的,但当组件混合匹配使用时就会出现很尴尬的局面.开发新手们会 ...

  9. Mac 共享无线网络

    dock栏启动『设置』进入下一步.   进入设置后,点击『共享』进入下一步.   进入共享后 1.选择左边框中『互联网共享』,就会看到截图右边的样子 2.『共享以下来源链接』一项选择『以太网』(默认应 ...

  10. 九度oj 题目1490:字符串链接

    题目1490:字符串链接 时间限制:1 秒 内存限制:128 兆 特殊判题:否 提交:2610 解决:1321 题目描述: 不用strcat 函数,自己编写一个字符串链接函数MyStrcat(char ...