zoukankan      html  css  js  c++  java
  • openstack 权限控制 (添加自定义角色)keystone等组件

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

    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角色的用户,才存在创建项目的权限。

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

  • 相关阅读:
    帧同步与状态同步
    撸个服务端出来系列(五)
    撸个服务端出来系列(四)
    撸个服务端出来系列(三)
    撸个服务端出来系列(二)
    新博客手机适配的问题
    撸个服务端出来系列(一)
    高性能事件分发器,lua 版
    cocos2dx lua UI栈
    cocos2dx3.x+cocostudio多屏幕分辨率适配解决方案(干货)
  • 原文地址:https://www.cnblogs.com/52why/p/8081052.html
Copyright © 2011-2022 走看看