OpenStack(2) -- プロジェクト (テナント)、ユーザー、ロール

1. プロジェクト(テナント)、ユーザー、ロールの関係

プロジェクト (プロジェクト/テナント)、ユーザー (ユーザー)、およびロール (役割) の関係を理解することに重点を置きます。まず、これら 3 つは個別に作成できますが、バインド関係は openstack role add コマンドを通じて行われます。

プロジェクト (プロジェクト/テナント)

openstack の下位バージョンにはテナントという概念がありますが、新しいバージョンではテナントは徐々にプロジェクトに置き換えられます。テナントはプロジェクトであり、プロジェクトはテナントであると理解してください。今後はテナントについては触れません。同様です。プロジェクト呼び出しを使用します。

ユーザー

ユーザーとプロジェクトには多対多の関係があり、プロジェクトには複数のユーザーが存在でき、また、1 人のユーザーが複数のプロジェクトに同時に存在することもできます。

役割

ロール role は権限の集合です。プロジェクトには複数のユーザーを含めることができますが、各ユーザーの権限は一貫していない可能性があります。プロジェクトには複数の管理者ロールまたは複数の _member を含めることができます。権限の違いはロールによって決まります。ユーザーは同時に複数のプロジェクトを所有しており、プロジェクト内の権限は必ずしも同じであるとは限りません。たとえば、ユーザー Z はプロジェクト A では管理者ですが、ユーザー Z はプロジェクト B では _member_ です。openstack には 4 つのデフォルトのロール タイプがあります (異なるバージョン)異なる場合がありますが、少なくとも 2 (admin、member) があり、q バージョンのデフォルトは 4、SwiftOperator、admin、_member_ ResellerAdmin です。

2. プロジェクト(テナント)、ユーザー、バインディングを作成します

プロジェクト (テナント) の作成、ユーザーの作成、バインドされたプロジェクトとユーザーの割り当て

[root@localhost ~(keystone_admin)]# openstack project create --domain default --description "learn to ues Openstack" test
+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | learn to ues Openstack           |
| domain_id   | default                          |
| enabled     | True                             |
| id          | 2dd4545690d849dd881c454f472524c7 |
| is_domain   | False                            |
| name        | test                             |
| parent_id   | default                          |
| tags        | []                               |
+-------------+----------------------------------+
[root@localhost ~(keystone_admin)]# openstack user create --domain default --password-prompt lgb
User Password:
Repeat User Password:
+---------------------+----------------------------------+
| Field               | Value                            |
+---------------------+----------------------------------+
| domain_id           | default                          |
| enabled             | True                             |
| id                  | ea90a34c00ef45b4a2b83d1ea69a0b91 |
| name                | lgb                              |
| options             | {}                               |
| password_expires_at | None                             |
+---------------------+----------------------------------+


###新建lgb用户角色为_menber_ 并绑定项目test
[root@localhost ~(keystone_admin)]# openstack role add --project test --user lgb _member_

新しく作成された lgb ユーザー ロールは _menber_ で、プロジェクト テストにバインドされています。_menber_ の通常のメンバーは、バインドされたプロジェクトの操作 (新しいネットワークの作成と新しいインスタンスの作成を含む) のみが可能で、このプロジェクトのメンバーを管理することはできません (パスワードは変更可能です)。  

openstack role list を使用してロール タイプのリストを表示し、openstack role show _member_ を使用してロールの詳細情報を表示します。

[root@localhost ~(keystone_admin)]# openstack role list
+----------------------------------+---------------+
| ID                               | Name          |
+----------------------------------+---------------+
| 53d1711053f74530950e45a8a2f75ed2 | SwiftOperator |
| 904ccc9da08f4cb9bd9cb49f0d01b8a2 | admin         |
| 9fe2ff9ee4384b1894a90878d3e92bab | _member_      |
| b69b66c9e9144633a7330d2bc5f0f38f | ResellerAdmin |
+----------------------------------+---------------+

[root@localhost ~(keystone_admin)]# openstack role show _member_
+-----------+----------------------------------+
| Field     | Value                            |
+-----------+----------------------------------+
| domain_id | None                             |
| id        | 9fe2ff9ee4384b1894a90878d3e92bab |
| name      | _member_                         |
+-----------+----------------------------------+

新しく作成された lgb0 ユーザー ロール _menber_ はプロジェクト管理者にバインドされ、新しく作成された lgb0 ユーザー ロールはテストする管理プロジェクトにバインドされます。

[root@localhost ~(keystone_admin)]# openstack role add --project admin --user lgb0 _member_
[root@localhost ~(keystone_admin)]# openstack role add --project test --user lgb0 admin

lgb0 にログインすると、lgb0 は 2 つのプロジェクト (test/admin) を自由に切り替えることができますが、「admin」プロジェクトを選択すると、左側の機能バーに「admin (管理者)」オプションが表示されなくなります。なぜなら、管理プロジェクト lgb0 には _member_ の普通のメンバーだけが含まれているからです。

ID 管理権限も異なり、管理者ユーザーは「グループ」と「ロール タイプ」を編集できます。

 

 

現時点では、lgb0 ユーザーは同時に 2 つのプロジェクトを所有しており、異なるプロジェクトで異なる役割を持っていますが、プロジェクト内のユーザーの役割が管理者の場合、ユーザーの権限は、プロジェクトの管理者ユーザーと同等であることに注意する必要があります。 openstack システム、両方とも同等の権限を持ちます。

 

おすすめ

転載: blog.csdn.net/weixin_48878440/article/details/131291546