1 RBAC简介
RBAC(Role-Based Access Control)策略框架使得操作者允许一个或多个项目(租户)访问自己的资源。通过创建rbac_policy,指定action{access_as_share,access_as_external}、target_tenant_id、object_type{network, qos_policy}等参数来完成。
RBAC可指定网络、qos_policy两种资源类型对其他租户共享。若创建的网络或者qos_policy 是shared,则表示已创建rbac_policy,其target_tenant=*。
使用RBAC,其他项目能够在可访问的网络上创建端口(L版已支持);向可访问的网络或端口绑定QoS策略(M版支持);向网络绑定router gateway(M版支持)。
默认policy.json文件允许普通租户与其他指定的project共享objects。若阻止这种行为,可将create_rbac_policy调整为rule:admin_only.
2 RBAC操作命令
2.1网络共享
1. 指定demo项目来访问admin创建的网络net1,在demo项目下指定net1创建端口。
Admin租户下创建网络net1:
创建policy entry,使得demo用户能够访问网络net1.
进入demo用户,执行net-list,并在net1上创建端口
阻止demo用户访问admin下的网络net1.只需删除RBAC policy。注:demo租户下创建的端口必须先删除,才可删除demo访问权限。
2.2 qos_policy 共享
Demo项目可访问admin租户下的QoS policy
Admin 租户下创建 QoS policy qos1
创建rbac策略
在demo租户下执行qos-policy-list,qos-policy-show命令能够看到admin创建的qos policy. Demo租户可使用该qos policy绑定自身的端口或网络,其他租户不能看到和使用。
取消demo租户使用secret-policy,需执行rbac-delete命令。如果demo租户将secret-policy与端口进行绑定操作,需要先取消绑定,才能执行rbac-delete操作。
2.3设置外部网络
Admin 租户下创建非外部网络,demo租户有权访问该网络并设置成外部网络。
Admin租户下创建网络net11-ext:
创建RBAC 策略: