0829流水账 PPT素材

来源:互联网 发布:少儿编程 网易 编辑:程序博客网 时间:2024/04/30 06:12
Job List:
1、深入了解keystone,画出其基本结构图,了解基于keystone用户鉴权的开发流程以及可能遇到的问题
2、阅读代码,继续菜鸟教程中关于angularjs的学习
3、开始写css样式文件
4、第二步和第三部需要写成博客
5、了解keystone租户管理原理,尝试安装keystone并实验建立租户;
提出关于tenant管理的疑问,明天与人讨论
6、阅读的博客列表:http://www.cnblogs.com/sammyliu/p/4277178.html


Problems:


Gains:


PPT思路:
1、opentack整体架构,以及keystone在其中所处的位置
2、keystone中的基本概念
3、keystone的工作流程,给出文字性描述以及示例图(可以用书中的图,也可以在相关资料中寻找更好的结构)
4、




openstack,keystone相关知识点:


云安全需要考虑的因素:1、数据安全:云用户的数据不被窃取或丢失;keystone引用令牌机制来管理用户对资源的访问同时引入PKI(,公钥基础设施)对令牌加以保护;
 2、身份和访问管理安全 :有效的身份和访问控制是云平台中必不可少的环节;合理定义系统管理人员的控制边界,以防来自内部的攻击所造成的危害;
 keystone通过访问规则(Plolicy)来做到基于用户角色的访问控制;
 3、虚拟化安全:如何有效隔离各个虚拟机,以使得数据不被污染;不同敏感度和安全要求的虚拟机如何共存,以防止安全保护低的虚拟机成为多租户下的瓶颈;
 如何对虚拟机之间的通信进行安全控制;
 4、基础设施安全:服务器、存储、网络等核心IT基础设施的安全;
 
keystone主要负责OpenStack用户的身份认证、令牌管理、提供访问资源的服务目录,以及基于用户角色的访问控制;
User:用户。通过keystone访问OpenStack服务的个人、系统亦或是某个服务,keystone都会通过认证信息(Credential,比如密码等)验证用户请求的合法性,通过验证的用户将会分配
到一个特定的令牌,该令牌可以用于后续资源访问的一个通行证。用户必须属于某个特定的域,用户名不一定全局唯一,但是域内唯一;
Tenant:租户。租户可以理解为一个组织或者是一个项目,在Nova中,租户可以理解成一组虚拟机的拥有者。用户默认的总是绑定在某租户上,用户访问租户的资源前,必须与该租户关联,
并且指定该用户在该租户下的角色。重点关注,目前有疑虑;openstatck中所有的资源应该属于某个特定的Tenant;一个Tenant必须属于特定的域,Tenant名并非全局统一,而是域内统一,
如果Tenant没有指定所属的域,则会被添加到默认的domain中
Groups:一组用户的结合,属于某个特定的域,群组并非全局唯一,但是域内唯一;
Role:角色。一个用户所具有的角色,角色不同意味着被赋予的权限不同。在全局角色中,用户可以对所有的租户执行角色所规定的权限;在租户内的角色中,用户仅可以在当前租户内执行角色
规定的权限。角色名全局唯一;
Service:服务。根据User、Tenant和Role一个服务可以确认当前用户是否具有访问其资源的权限。服务对外暴露一个或多个端点,用户只有通过这些端点才可以访问所需资源或者执行某些操作。
Endpoint:端点。指一个可以用来访问某个具体服务的网络地址。一般以一个URL来表示一个端点,URL具有Public、Internal和Admin三种权限,Public为全局提供的服务端点,Internal提供内部
服务之间的访问,Admin是提供给管理员使用的
Token:令牌。用户通过Credential获取在某个租户下的令牌,以及令牌的颁发时间和有限时间。
Credentials:凭证。用户的用户名和密码,或者是用户名和API秘钥,或者是身份管理服务提供的认证令牌


keystone主要提供Identity(认证)、Token(令牌)、Catalog(目录)和Policy(安全策略,访问控制)四方面服务
Identity:对用户的身份进行验证,用户的身份凭证通常以用户名和密码的形式呈现,认证服务的同时提供了与该用户相关的元数据的提取
Token:Identity确认用户身份之后,会给用户提供一个核实该身份并且可以用于请求后续资源的令牌,Token服务则验证并管理用于验证身份的令牌。keystone会颁发两种令牌给用户,
一种是与Tenant无关的令牌,另一种是与某个人Tenant绑定的令牌
Catalog:Catalog服务对外提供一个服务的查询目录即每个服务的Endpoint列表
Policy:一个基于规则的身份验证引擎,通过配置文件来定义各种动作与用户角色的匹配关系。




Keystone的工作流程:用户从keystone获取令牌以及服务列表;用户访问服务时,发送自己的令牌;相关服务向Keystone求证令牌的合法性。


keystone目前存在安全问题:1、身份验证本身没有提供方法在重复出现非法登陆时来限制账户访问,这可能为暴力破解提供了方便。可以利用外部认证或者频繁审查访问控制日志检测出此类攻击 来解决该安全问题
 2、对于各种服务的管理员用户的认证采用身份验证以及支持双因子认证的外部认证服务,降低采用密码验证码可能带来的泄密风险




 
作为 OpenStack 的基础支持服务,Keystone 做下面这几件事情:


1、管理用户及其权限


2、维护 OpenStack Services 的 Endpoint


3、Authentication(认证)和 Authorization(鉴权)


Project 用于将 OpenStack 的资源(计算、存储和网络)进行分组和隔离。 根据 OpenStack 服务的对象不同,
Project 可以是一个客户(公有云,也叫租户)、部门或者项目组(私有云)。


 
 
Project 用于将 OpenStack 的资源(计算、存储和网络)进行分组和隔离。 根据 OpenStack 服务的对象不同,Project 可以是一个客户(公有云,也叫租户)、部门或者项目组(私有云)。


这里请注意:


1、资源的所有权是属于 Project 的,而不是 User。


2、在 OpenStack 的界面和文档中,Tenant / Project / Account 这几个术语是通用的,但长期看会倾向使用 Project


3、每个 User(包括 admin)必须挂在 Project 里才能访问该 Project 的资源。 一个User可以属于多个 Project。


4、admin 相当于 root 用户,具有最高权限


Service
OpenStack 的 Service 包括 Compute (Nova)、Block Storage (Cinder)、Object Storage (Swift)、Image Service (Glance) 、Networking Service (Neutron) 等。


每个 Service 都会提供若干个 Endpoint,User 通过 Endpoint 访问资源和执行操作。


Endpoint
Endpoint 是一个网络上可访问的地址,通常是一个 URL。 Service 通过 Endpoint 暴露自己的 API。 Keystone 负责管理和维护每个 Service 的 Endpoint。




可参考的结构图地址:已经保存在桌面


很多openstack服务维护Tenant的数据以及元数据


openstack管理Tenant:
一个用户必须至少属于一个Tenant,也可以属于多个Tenant,因此应该至少添加一个Tenant然后再添加用户
创建一个新用户,需要以下信息:用户名 邮箱 密码 所属主要项目 角色
Tenant必须要用户创建之前就存在,用户角色一般有两种,member admin




openstack多租户共享和隔离
 默认情况下,OpenStack 私有云和专有云是单租户模式的,因为其基础设施是由一个租户专享的;
 OpenStack 公有云或者社区云是多租户模式,因为其基础设施是由多个租户共享的。
 
 某些租户往往要求在计算、网络和存储等方面的物理或者逻辑隔离性。
 OpenStack 在这些方面分别有不同的技术来实现所需的隔离性。
 
 1、计算、虚机隔离(NOVA):租户的虚机被穿件在指定的计算节点上,有些对安全性和性能要求高的用户,往往会要求将它的虚机部署在指定的专有的服务器上。
 2、Cinder 物理隔离:不同租户的卷创建在不同的后端存储上
 3、Neutron的逻辑隔离(目前还没搞明白原理)
 4、Glance+Swift多租户逻辑性隔离
 5、Ceph的隔离性:1)使用pool做逻辑隔离
 2)定制CRUSH Rules对Pool做物理隔离
 定制合适的Rules,可以使得一个Pool的OSD分布在指定的存储节点上。


 
 
project: A logical grouping of users within Nova, used to define quotas and access to virtual machine images.


tenant: A group of users, used to isolate access to Nova resources, an alternative term for a Nova project.





  
0 0