Nova中的policy
本博客欢迎转发,但请保留原作者信息!内容系本人学习、研究和总结,如有雷同,实属荣幸!
任何对外暴露接口的系统,都必须有分权分域以及认证鉴权的功能。在openstack中,keystone组件用来对用户进行认证,说白了就是看用户是否是系统的合法用户,而policy机制则主要看用户的操作是否满足特定的条件,比如一些接口是特权接口(仅限管理员使用),普通用户不允许调用。下面以Nova中创建虚拟机为例,讲述Nova中policy机制的原理。
在nova.compute.api.API::create()函数中:
<!--[endif]-->
_check_create_policies函数就是完成校验的工作。
首先,policy.json文件预定义了不同操作的策略,目前有三种类型策略,rule类型,role类型,generic类型。1.rule定义了一些要从文件中读取的规则,比如rule