OpenStack J版本 policy.json限制用户action权限

OpenStack J版本 policy.json限制用户action权限

首先,我们知道在keystone中有User(用户)、Project(租户)、role(角色)三个概念。
keystone命令与模型的对应关系:
1.创建租户


2.创建用户



3.创建角色


4.将角色给用户和租户


其中actor_id表示用户id,target_id表示租户id


只是这样,权限并没有限制住。。。。


其实在OpenStack中,真正限制用户action操作的是policy.json文件,每一个模块都有这样一个文件,在/ect/模块名/下
打开/etc/nova下的policy.json来看:


左侧代表左右域和域内的action,右侧代表一个策略,只有当用户通过这个策略之后,才具有左侧action的操作权限
这个策略目前包含三种:role型、rule型、generic型。
role型如:"role:admin";
rule型如:"admin_or_owner"
generic型如:"is_admin:True or project_id:%(project_id)s"


下面以创建虚拟机为例,看policy流程:
开始在/usr/lib/python2.7/site-packages/nova/compute/api.pi中







进入/usr/lib/python2.7/site-packages/nova/policy.py的






/usr/lib/python2.7/site-packages/nova/openstack/common下的policy.py下的enforce方法

接下来加载规则,找policy地址,检测policy.json是否修改过,是否重新读取policy.json文件并解析
此py中还包含Rules类以及各种Check类

实验将/etc/nova/policy.json中的"compute:create": "",改为"compute:create": "role:admin",
source demo-openrc.sh
用nova命令创建虚拟机

无法创建:权限不够

或者使用dashboard来验证
使用demo用户登录

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值