自定义策略角色

除了默认策略角色之外,Neutron 还支持使用自定义角色。例如,使用只读访问所有资源的自定义角色需要配置允许全局 访问资源的策略规则。

为了授予审计员角色访问从数据库获取所有资源的权限,应该将以下规则添加到policy.yaml文件中

"context_with_global_access": "role:auditor"

这将使 neutron 以审计员角色在上下文中发出的所有 SQL 查询都不受项目 ID 的限制。但是,这并不能授予审计员角色从 Neutron API 接收所有资源的权限。要授予此类权限,例如对于get_network操作,应该将以下规则添加到policy.yaml文件中

"get_network": "role:admin_only or (role:reader and project_id:%(project_id)s) or rule:shared or rule:external or rule:context_is_advsvc or role:auditor"

有了这两个规则,审计员角色将能够从 Neutron API 获取所有网络。