第 2 章 角色管理


2.1. 角色管理

OpenStack 使用基于角色的访问控制(RBAC)机制来管理对其资源的访问。角色定义用户可以执行的操作。默认情况下,有两个预定义角色:一个成员角色附加到租户,以及一个管理角色,使非管理员用户能够管理环境。请注意,有抽象级别的权限,可以创建管理员需要的角色,并充分配置服务。

2.1.1. 查看角色

使用以下命令列出可用的预定义角色:

$ keystone role-list
+----------------------------------+---------------+
|                id                |      name     |
+----------------------------------+---------------+
| 71ccc37d41c8491c975ae72676db687f |     Member    |
| 149f50a1fe684bfa88dae76a48d26ef7 | ResellerAdmin |
| 9fe2ff9ee4384b1894a90878d3e92bab |    _member_   |
| 6ecf391421604da985db2f141e46a7c8 |     admin     |
+----------------------------------+---------------+
Copy to Clipboard Toggle word wrap

要获取指定角色的详情,请运行:

$ keystone role-get [ROLE]
Copy to Clipboard Toggle word wrap

Example

$ keystone role-get admin
+----------+----------------------------------+
| Property |              Value               |
+----------+----------------------------------+
|    id    | 6ecf391421604da985db2f141e46a7c8 |
|   name   |             admin                |
+----------+----------------------------------+
Copy to Clipboard Toggle word wrap

2.1.2. 创建并分配角色

作为云管理员,您可以使用以下一组命令在 Keystone 客户端上创建和管理角色:每个 OpenStack 部署必须至少包含一个项目、一个用户和一个角色(链接在一起)。但是,用户可以是多个项目的成员。要将用户分配到多个项目,请创建一个角色,并将该角色分配给 user-project 对。请注意,您可以创建一个用户并在仪表板中分配主项目和默认角色。

注意

名称或 ID 可以用来指定用户、角色或项目。

  1. 创建 new-role 角色:

    $ keystone role-create --name [ROLE_NAME]
    Copy to Clipboard Toggle word wrap

    Example

    $ keystone role-create --name new-role
    +----------+----------------------------------+
    | Property |              Value               |
    +----------+----------------------------------+
    |    id    | 61013e7aa4ba4e00a0a1ab4b14bc6b2a |
    |   name   |             new-role             |
    +----------+----------------------------------+
    Copy to Clipboard Toggle word wrap

  2. 若要为用户分配项目,您必须将角色分配给 user-project 对。要做到这一点,获取用户、角色和项目名称或 ID:

    1. 列出用户:

      $ keystone user-list
      Copy to Clipboard Toggle word wrap
    2. 列出角色:

      $ keystone role-list
      Copy to Clipboard Toggle word wrap
    3. 列出项目:

      $ keystone tenant-list
      Copy to Clipboard Toggle word wrap
  3. 为 user-project 对分配一个角色。

    $ keystone user-role-add --user [USER_NAME] --role [ROLE_NAME] --tenant [TENANT_NAME]
    Copy to Clipboard Toggle word wrap

    Example

    在本例中,您要将 new-role 角色分配给 demo-demo 对:

    $ keystone user-role-add --user demo --role new-role --tenant demo
    Copy to Clipboard Toggle word wrap
  4. 验证用户 demo 的角色分配:

    $ keystone user-role-list --user [USER_NAME] --tenant [TENANT_NAME]
    Copy to Clipboard Toggle word wrap

    Example

    $ keystone user-role-list --user demo --tenant demo
    Copy to Clipboard Toggle word wrap

2.1.3. 删除角色

  1. 使用以下命令,从 user-project 对中删除角色。删除角色可确保相关的 user-project 对会丢失。

    $ keystone user-role-remove --user [USER_NAME] --role [ROLE] --tenant [TENANT_NAME]
    Copy to Clipboard Toggle word wrap
  2. 验证角色删除:

    $ keystone user-role-list --user [USER_NAME] --tenant [TENANT_NAME]
    Copy to Clipboard Toggle word wrap

    如果角色已被删除,命令输出将省略已删除的角色。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat