如何在 OpenStack 中创建项目、用户和角色 您所在的位置:网站首页 linux添加用户并赋予权限命令 如何在 OpenStack 中创建项目、用户和角色

如何在 OpenStack 中创建项目、用户和角色

2024-07-08 12:10| 来源: 网络整理| 查看: 265

如何在 OpenStack 中创建项目、用户和角色

作为 OpenStack 云管理员,您可以在 Horizon 仪表板或 OpenStack CLI 中创建、删除或修改项目、用户和角色。 OpenStack 用户可以是一个或多个项目的成员。在OpenStack中,使用基于角色的访问控制(RBAC)机制来管理对云资源的访问。如果用户具有执行操作所需的角色,这将强制授予授权。角色定义用户可以执行哪些操作。

OpenStack 中预定义了三个主要角色:

admin:这是一个管理角色,允许非管理员用户管理环境。成员:分配给新用户的默认角色。这会附加到租户。reader:主要用于只读 API 和操作。

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

$ openstack role list +----------------------------------+--------+ | ID | Name | +----------------------------------+--------+ | 1d07e8e4730e453f88fb14c5d342a7cd | member | | 69952e0bf4bb44feaed4fd4f892eb424 | admin | | d638006a45cf49a7823cfcda5bf0c429 | reader | +----------------------------------+--------+

要获取指定角色的详细信息,请使用以下命令:

$ openstack role show reader +-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | None | | domain_id | None | | id | d638006a45cf49a7823cfcda5bf0c429 | | name | reader | +-------------+----------------------------------+

在本教程中,我们将创建一个项目、用户并向用户分配角色。

1:创建OpenStack项目

项目是一组消耗云资源的零个或多个用户。我们将使用 OpenStack CLI 进行所有操作。如果您是新手,请查看我们之前的指南:

如何在 Linux 上安装和配置 OpenStack 客户端

要从 CLI 创建 OpenStack 项目,请运行以下命令:

$ openstack project create --description "Development Project" dev +-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | Development Project | | domain_id | default | | enabled | True | | id | be1444931c0949b49db107b893017379 | | is_domain | False | | name | dev | | parent_id | default | | tags | [] | +-------------+----------------------------------+

如果您有多个域,请使用 –domain 选项为新项目指定域。我只有一个域名。

$ openstack domain list +---------+---------+---------+--------------------+ | ID | Name | Enabled | Description | +---------+---------+---------+--------------------+ | default | Default | True | The default domain | +---------+---------+---------+--------------------+

列出已创建的项目。

$ openstack project list +----------------------------------+---------+ | ID | Name | +----------------------------------+---------+ | 06bcc3c56ab1489282b65681e782d7f6 | admin | | 0766331616c7429a9b459d0d642cc4db | service | | 587cfc85df274629a2d7a7b33b52446c | lab | | be1444931c0949b49db107b893017379 | dev | +----------------------------------+---------+

要显示项目信息,请运行:

$ openstack project show dev +-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | Development Project | | domain_id | default | | enabled | True | | id | be1444931c0949b49db107b893017379 | | is_domain | False | | name | dev | | parent_id | default | | tags | [] | +-------------+----------------------------------+常见项目操作重命名项目:openstack project set PROJECT_ID --name newprojectname暂时禁用项目:openstack project set PROJECT_ID --disable启用已禁用的项目:openstack project set PROJECT_ID --enable删除项目openstack project delete PROJECT_ID2:创建OpenStack用户

我们将添加两个用户 - user1 和 user2。这两个用户的默认项目是我们之前创建的 dev 。

$ openstack user create --email "[email " --description "Dev User1" --project dev --password-prompt user1 User Password: Repeat User Password: +---------------------+----------------------------------+ | Field | Value | +---------------------+----------------------------------+ | default_project_id | be1444931c0949b49db107b893017379 | | description | Dev User1 | | domain_id | default | | email | [email  | | enabled | True | | id | eb0f38e04c124288bc1f3a6c8c9b265f | | name | user1 | | options | {} | | password_expires_at | None | +---------------------+----------------------------------+

通过使用 --password-prompt 参数,您将获得交互式密码提示。

创建用户2:

$ openstack user create --email "[email " --description "Dev User2" --project dev --password "StrongUserPass" user2 +---------------------+----------------------------------+ | Field | Value | +---------------------+----------------------------------+ | default_project_id | be1444931c0949b49db107b893017379 | | description | Dev User2 | | domain_id | default | | email | [email  | | enabled | True | | id | 7322efdb32da4b2d9ee695d63f60c930 | | name | user2 | | options | {} | | password_expires_at | None | +---------------------+----------------------------------+

将使用通过 --password 参数提供的密码创建用户。

列出 OpenStack 用户:

$ openstack user list +----------------------------------+-----------+ | ID | Name | +----------------------------------+-----------+ | 10b837c94f3f47d0aeacd9a814af26d8 | nova | | 336acbb7421f47f8be4891eabf0c9cc8 | admin | | 3ee7a2ae291b48dba21c450f48fc6f75 | placement | | 79bdacc586444278bc4e0e0a533227e7 | cinder | | 858dcd522daa4bffa71eef82246c81b1 | swift | | 97c71757453749948cc22dce0ffc5722 | neutron | | c6f7a4ae1cc041efb3e6653aefd02082 | glance | | eb0f38e04c124288bc1f3a6c8c9b265f | user1 | | 7322efdb32da4b2d9ee695d63f60c930 | user2 | +----------------------------------+-----------+普通用户操作更改用户帐户的名称和描述:openstack user set USER_NAME --name new-name --email [email 暂时禁用用户帐户:openstack user set USER_NAME --disable启用已禁用的用户帐户:openstack user set USER_NAME --enable删除指定用户帐户:openstack user delete USER_NAME3:为用户分配角色

首先列出可用的角色:

$ openstack role list +----------------------------------+--------+ | ID | Name | +----------------------------------+--------+ | 1d07e8e4730e453f88fb14c5d342a7cd | member | | 69952e0bf4bb44feaed4fd4f892eb424 | admin | | d638006a45cf49a7823cfcda5bf0c429 | reader | +----------------------------------+--------+

用户可以是多个项目的成员。要将用户分配给项目,您必须将角色分配给用户-项目对。我们将使用之前创建的项目和用户。

获取要分配角色的用户列表 - 记下用户 ID/名称。

$ openstack user list +----------------------------------+-----------+ | ID | Name | +----------------------------------+-----------+ | 10b837c94f3f47d0aeacd9a814af26d8 | nova | | 336acbb7421f47f8be4891eabf0c9cc8 | admin | | 3ee7a2ae291b48dba21c450f48fc6f75 | placement | | 7322efdb32da4b2d9ee695d63f60c930 | user2 | | 79bdacc586444278bc4e0e0a533227e7 | cinder | | 858dcd522daa4bffa71eef82246c81b1 | swift | | 97c71757453749948cc22dce0ffc5722 | neutron | | c6f7a4ae1cc041efb3e6653aefd02082 | glance | | eb0f38e04c124288bc1f3a6c8c9b265f | user1 | +----------------------------------+-----------+

列出要分配的角色 - 记下角色 ID/名称。

$ openstack role list +----------------------------------+--------+ | ID | Name | +----------------------------------+--------+ | 1d07e8e4730e453f88fb14c5d342a7cd | member | | 69952e0bf4bb44feaed4fd4f892eb424 | admin | | d638006a45cf49a7823cfcda5bf0c429 | reader | +----------------------------------+--------+

获取项目名称/ID。

$ openstack project list +----------------------------------+---------+ | ID | Name | +----------------------------------+---------+ | 06bcc3c56ab1489282b65681e782d7f6 | admin | | 0766331616c7429a9b459d0d642cc4db | service | | 587cfc85df274629a2d7a7b33b52446c | lab | | be1444931c0949b49db107b893017379 | dev | +----------------------------------+---------+

将角色分配给用户-项目对的语法是:

openstack role add --user USER_NAME --project TENANT_ID ROLE_NAME

示例1:

为开发项目分配 user1 管理员角色。

openstack role add --user user1 --project dev admin

在开发和实验室项目中分配 user2 成员角色:

openstack role add --user user2 --project dev member openstack role add --user user2 --project lab member

查看用户角色分配。

$ openstack role assignment list --user user1 +----------------------------------+----------------------------------+-------+----------------------------------+--------+--------+-----------+ | Role | User | Group | Project | Domain | System | Inherited | +----------------------------------+----------------------------------+-------+----------------------------------+--------+--------+-----------+ | 69952e0bf4bb44feaed4fd4f892eb424 | eb0f38e04c124288bc1f3a6c8c9b265f | | be1444931c0949b49db107b893017379 | | | False | +----------------------------------+----------------------------------+-------+----------------------------------+--------+--------+-----------+ $ openstack role assignment list --user user2 +----------------------------------+----------------------------------+-------+----------------------------------+--------+--------+-----------+ | Role | User | Group | Project | Domain | System | Inherited | +----------------------------------+----------------------------------+-------+----------------------------------+--------+--------+-----------+ | 1d07e8e4730e453f88fb14c5d342a7cd | 7322efdb32da4b2d9ee695d63f60c930 | | 587cfc85df274629a2d7a7b33b52446c | | | False | | 1d07e8e4730e453f88fb14c5d342a7cd | 7322efdb32da4b2d9ee695d63f60c930 | | be1444931c0949b49db107b893017379 | | | False | +----------------------------------+----------------------------------+-------+----------------------------------+--------+--------+-----------+

从用户-项目对中删除角色:

openstack role remove --user USER_NAME --project TENANT_ID ROLE_NAME openstack role list --user USER_NAME --project TENANT_ID测试用户角色

登录 OpenStack 仪表板并检查 user1 的视图:

具有管理员角色的用户的仪表板视图。

user2 的仪表板视图 – 两个项目的成员。

有关 OpenStack 的更多信息:

使用 Packstack 在 CentOS 7 上部署 OpenStack

如何将 OpenStack 实例/虚拟机配置为在 Nova 计算重启后自动启动

如何调整 OpenStack 实例/虚拟机的大小

如何将 OpenStack 实例从一台计算主机迁移到另一台计算主机



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有