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

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

  • 相关阅读:
    Altova MapForce AMS/ACI/ISF自定义模板
    CSS currentColor 变量
    CSS之咖啡菜单网页设计
    css3之3D 旋转立方体与哆啦A梦
    CSS3 3D转换——rotateX(),rotateY(),rotateZ()
    Emmet常用语法
    CSS3 的动画属性
    CSS的五种基本选择器
    盒模型之标准模型与怪异模型
    CSS3的2D 转换——旋转,缩放,translate(),skew(),matrix()
  • 原文地址:https://www.cnblogs.com/52why/p/8081052.html
Copyright © 2020-2023  润新知