每一个平台、系统都会对于用户的权限进行严格的管理与控制。

openstack是一个开源的项目,我们可以直接下载其源码,进行更改以达到我们的要求。

这里只是针对于用户的权限进行管理,以keystone:

keystone是使用policy.json定义权限,其它openstack组件也是一样的,都是存在文件policy.json(在这文件中保证的是该组件对于用户身份的管理   权限的控制):
/etc/nova/policy.json
/etc/keystone/policy.json
/etc/glance/policy.json
/etc/neutron/policy.json
/etc/cinder/policy.json

keystone的policy.json文件位于:
/etc/keystone/policy.json

其内容如下:
1 {
2 "admin_required": "role:admin or is_admin:1",

34 "identity:get_project": "rule:admin_required",
35 "identity:list_projects": "rule:admin_required",
36 "identity:list_user_projects": "rule:admin_or_owner",
37 "identity:create_project": "rule:admin_required",
38 "identity:update_project": "rule:admin_required",
39 "identity:delete_project": "rule:admin_required",

41 "identity:get_user": "rule:admin_required",
42 "identity:list_users": "rule:admin_required",
43 "identity:create_user": "rule:admin_required",
44 "identity:update_user": "rule:admin_required",
45 "identity:delete_user": "rule:admin_required",
46 "identity:change_password": "rule:admin_or_owner",

此文件的格式为   ------------    identity:行为名  :   rule:规则

每一个规则在这个文件的前面几行有规则的书写:

如34行:34 "identity:get_project": "rule:admin_required",

获取项目:rule:admin_required。这个规则在文本第二行有书写:2 "admin_required": "role:admin or is_admin:1",

如果满足这个规则,就说明这个用户可以进行前面的行为。

就34行来说:就是如果用户是管理员或者是管理员身份,他就可以进行get_project这个操作.

我们如果需要对这个行为进行一个自定义的控制的话,我们可以自行的修改policy.json文件,

并且这个文件在openstack中,是动态运行的,所以在修改之后,我们不需要去重新启动openstack。

下面是我自己做的修改:

"keystone01_role":"role:keystone01_role",

在此之前,我已经新建了一个role,名字是keystone01_role。

同时,我做了以下的修改:

"identity:create_project": "rule:keystone01_role",

我将创建项目的权限只给了keystone01_role这个角色。

这时候,我们就会发现,就算是admin管理员,他也是无法创建项目了的。

只有是keystone01_role角色的用户,才存在创建项目的权限。

要是要对其他的组件的权限进行修改的话,办法是一样的。

openstack 权限控制 (添加自定义角色)keystone等组件的更多相关文章

  1. MVC基于角色权限控制--管理角色

    管理角色分为 添加角色.删除角色.修改角色.给角色分配权限(修改角色权限) 新建RoleInfoController继承BaseController namespace CZBK.ItcastOA.W ...

  2. RabbitMQ用户增删及权限控制

    RabbitMQ用户增删及权限控制 用户角色分类 none:无法登录控制台 不能访问 management plugin,通常就是普通的生产者和消费者. management:普通管理者. 仅可登陆管 ...

  3. OAuth2.0 原理流程及其单点登录和权限控制

    2018年07月26日 07:21:58 kefeng-wang 阅读数:5468更多 所属专栏: Java微服务构架   版权声明:[自由转载-非商用-非衍生-保持署名]-转载请标明作者和出处. h ...

  4. CentOS7安装OpenStack(Rocky版)-02.安装Keyston认证服务组件(控制节点)

    本文分享openstack的认证服务组件keystone --------------- 完美的分割线 ---------------- 2.0.keystone认证服务 1)用户与认证:用户权限与用 ...

  5. python 全栈开发,Day108(客户管理之权限控制,客户管理之动态"一级"菜单,其他应用使用rbac组件,django static文件的引入方式)

    一.客户管理之权限控制 昨天的作业,有很多不完善的地方 下载代码,基本实现权限验证 https://github.com/987334176/luffy_permission/archive/v1.2 ...

  6. python 全栈开发,Day107(CRM初始,权限组件之权限控制,权限系统表设计)

    一.CRM初始 CRM,客户关系管理系统(Customer Relationship Management).企业用CRM技术来管理与客户之间的关系,以求提升企业成功的管理方式,其目的是协助企业管理销 ...

  7. CRM【第一篇】: 权限组件之权限控制

    1. 问:为什么程序需要权限控制? 答:生活中的权限限制,① 看灾难片电影<2012>中富人和权贵有权登上诺亚方舟,穷苦老百姓只有等着灾难的来临:② 屌丝们,有没有想过为什么那些长得漂亮身 ...

  8. RabbitMQ用户角色及权限控制

    RabbitMQ的用户角色分类:none.management.policymaker.monitoring.administrator RabbitMQ各类角色描述:none不能访问 managem ...

  9. RBAC角色权限控制

    RBAC角色权限控制 1. user (用户表) *  用户的基本信息(mid:用户信息id  如图) 2. node (节点表) * 页面(模块\控制器\方法) 3. role_node(角色.节点 ...

随机推荐

  1. 《BUG创造队》第四次作业:基于原型的团队项目需求调研与分析

    项目 内容 这个作业属于哪个课程 2016级软件工程 这个作业的要求在哪里 实验八 团队作业4:基于原型的团队项目需求调研与分析 团队名称 BUG创造队 作业学习目标 (1)体验以原型设计为基础的团队 ...

  2. 最详细的keepalived+lvs-dr配置文档

    四台台机器: 分发器主:192.168.0.154 分发器备:192.168.0.171 rs_1:192.168.0.131 rs_2:192.168.0.132 keepalived安装: yum ...

  3. Flume架构以及应用介绍(转)

    在具体介绍本文内容之前,先给大家看一下Hadoop业务的整体开发流程: 从Hadoop的业务开发流程图中可以看出,在大数据的业务处理过程中,对于数据的采集是十分重要的一步,也是不可避免的一步,从而引出 ...

  4. datediff(date1,date2) 函数的使用

    版权声明:本文为博主原创文章,未经博主允许不得转载. 在MySQL中可以使用DATEDIFF()函数计算两个日期之间的天数 语法: datediff(date1,date2) 注:date1和date ...

  5. 了解一下Elasticsearch的基本概念

    一.前文介绍 Elasticsearch(简称ES)是一个基于Apache Lucene(TM)的开源搜索引擎,无论在开源还是专有领域,Lucene 可以被认为是迄今为止最先进.性能最好的.功能最全的 ...

  6. laravel使用手札——使用PHPStorm提升开发速度

    laravel使用手札——使用PHPStorm提升开发速度 phpstormphplaravel  阅读约 4 分钟 PHPStorm安装 PHPStorm 使用手札——安装看这里 代码自动提示支持 ...

  7. nexus 3.17.0 做为golang 的包管理工具

    nexus 3.17.0 新版本对于go 包管理的支持是基于go mod 的,同时我们也需要一个athens server 然后在nexus 中配置proxy 类型的repo 参考配置 来自官方的配置 ...

  8. BZOJ1034 ZJOJ2008 泡泡堂BNB

    BZOJ1034 ZJOJ2008 泡泡堂BNB Description 第XXXX届NOI期间,为了加强各省选手之间的交流,组委会决定组织一场省际电子竞技大赛,每一个省的代表 队由n名选手组成,比赛 ...

  9. TP5验证码上传阿里云万网虚拟主机后,验证码不显示的解决办法

    TP5不显示验证码 清除缓冲区就应该可以了,今天我刚好也遇到了,解决的办法是在vendor/topthink/think-captcha/CaptchaController.php中加上这个ob_cl ...

  10. hdu1237 简单计算器[STL 栈]

    目录 题目地址 题干 代码和解释 参考 题目地址 hdu1237 题干 代码和解释 解本题时使用了STL 栈,要记得使用#include<stack>. 解本题时使用了isdigit()函 ...