3.4. 创建简化的角色
Identity 服务(keystone)强制执行访问控制,确认用户已分配给特定的角色。Identity 服务使用 implied 角色分配。如果您明确为用户分配角色,那么用户也可以隐式分配给其他角色。您可以在 Red Hat OpenStack Platform 中查看默认含义的角色:
$ openstack implied role list +----------------------------------+-----------------+----------------------------------+-------------------+ | Prior Role ID | Prior Role Name | Implied Role ID | Implied Role Name | +----------------------------------+-----------------+----------------------------------+-------------------+ | 54454217f38247e5a2131c8a47138d32 | admin | b59703369e194123b5c77dad60d11a25 | member | | b59703369e194123b5c77dad60d11a25 | member | 382761de4a9c4414b6f8950f8580897c | reader | +----------------------------------+-----------------+----------------------------------+-------------------+
注意
Identity 服务(keystone)也添加了 reader
角色,该角色将显示在角色列表中。只有在启用了安全 RBAC 时,才使用 reader
角色。
具有较高权限的角色意味着与角色关联的权限较少。在上面的默认代表角色中,admin 表示成员,成员代表读者。通过简化角色,用户的角色分配会累计处理,以便用户继承下级角色。
如果使用自定义角色,您可以创建简化的关联。
注意
当您创建新角色时,它默认具有与 member
角色相同的访问策略。有关为自定义角色创建唯一策略的详情,请参考 使用策略文件进行访问控制。
流程
使用以下命令指定代表另一个角色的角色:
$ openstack implied role create manager --implied-role poweruser +------------+----------------------------------+ | Field | Value | +------------+----------------------------------+ | implies | ab0b966e0e5e411f8d8b0cc6c26fefd1 | | prior_role | 880761f64bff4e4a8923efda73923b7a | +------------+----------------------------------+
验证
列出所有简化的角色:
$ openstack implied role list +----------------------------------+-----------------+----------------------------------+-------------------+ | Prior Role ID | Prior Role Name | Implied Role ID | Implied Role Name | +----------------------------------+-----------------+----------------------------------+-------------------+ | 54454217f38247e5a2131c8a47138d32 | admin | b59703369e194123b5c77dad60d11a25 | member | | 880761f64bff4e4a8923efda73923b7a | manager | ab0b966e0e5e411f8d8b0cc6c26fefd1 | poweruser | | b59703369e194123b5c77dad60d11a25 | member | 382761de4a9c4414b6f8950f8580897c | reader | +----------------------------------+-----------------+----------------------------------+-------------------+
如果简化关联出错,您可以撤销您的更改:
openstack implied role delete manager --implied-role poweruser