第 2 章 角色管理
2.1. 角色管理 复制链接链接已复制到粘贴板!
OpenStack 使用基于角色的访问控制(RBAC)机制来管理对其资源的访问。角色定义用户可以执行的操作。默认情况下,有两个预定义角色:一个成员角色附加到租户,以及一个管理角色,使非管理员用户能够管理环境。请注意,有抽象级别的权限,可以创建管理员需要的角色,并充分配置服务。
2.1.1. 查看角色 复制链接链接已复制到粘贴板!
使用以下命令列出可用的预定义角色:
要获取指定角色的详情,请运行:
keystone role-get [ROLE]
$ keystone role-get [ROLE]
Example
2.1.2. 创建并分配角色 复制链接链接已复制到粘贴板!
作为云管理员,您可以使用以下一组命令在 Keystone 客户端上创建和管理角色:每个 OpenStack 部署必须至少包含一个项目、一个用户和一个角色(链接在一起)。但是,用户可以是多个项目的成员。要将用户分配到多个项目,请创建一个角色,并将该角色分配给 user-project 对。请注意,您可以创建一个用户并在仪表板中分配主项目和默认角色。
名称或 ID 可以用来指定用户、角色或项目。
创建
new-role角色:keystone role-create --name [ROLE_NAME]
$ keystone role-create --name [ROLE_NAME]Copy to Clipboard Copied! Toggle word wrap Toggle overflow Example
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 若要为用户分配项目,您必须将角色分配给 user-project 对。要做到这一点,获取用户、角色和项目名称或 ID:
列出用户:
keystone user-list
$ keystone user-listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 列出角色:
keystone role-list
$ keystone role-listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 列出项目:
keystone tenant-list
$ keystone tenant-listCopy to Clipboard Copied! Toggle word wrap Toggle overflow
为 user-project 对分配一个角色。
keystone user-role-add --user [USER_NAME] --role [ROLE_NAME] --tenant [TENANT_NAME]
$ keystone user-role-add --user [USER_NAME] --role [ROLE_NAME] --tenant [TENANT_NAME]Copy to Clipboard Copied! Toggle word wrap Toggle overflow Example
在本例中,您要将
new-role角色分配给demo-demo对:keystone user-role-add --user demo --role new-role --tenant demo
$ keystone user-role-add --user demo --role new-role --tenant demoCopy to Clipboard Copied! Toggle word wrap Toggle overflow 验证用户
demo的角色分配:keystone user-role-list --user [USER_NAME] --tenant [TENANT_NAME]
$ keystone user-role-list --user [USER_NAME] --tenant [TENANT_NAME]Copy to Clipboard Copied! Toggle word wrap Toggle overflow Example
keystone user-role-list --user demo --tenant demo
$ keystone user-role-list --user demo --tenant demoCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.1.3. 删除角色 复制链接链接已复制到粘贴板!
使用以下命令,从 user-project 对中删除角色。删除角色可确保相关的 user-project 对会丢失。
keystone user-role-remove --user [USER_NAME] --role [ROLE] --tenant [TENANT_NAME]
$ keystone user-role-remove --user [USER_NAME] --role [ROLE] --tenant [TENANT_NAME]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证角色删除:
keystone user-role-list --user [USER_NAME] --tenant [TENANT_NAME]
$ keystone user-role-list --user [USER_NAME] --tenant [TENANT_NAME]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果角色已被删除,命令输出将省略已删除的角色。