Red Hat Training

A Red Hat training course is available for Red Hat OpenStack Platform

第1章 ユーザーとロール管理

1.1. ユーザー管理

クラウド管理者は、Dashboard でユーザーの追加、変更、削除ができます。ユーザーは、1 つまたは複数のプロジェクトに所属することができます。また、プロジェクトとユーザーは個別に管理することができます。

1.1.1. ユーザーの作成

Dashboard でユーザーを作成するには、以下の手順に従ってください。主要なプロジェクトとロールをユーザーに割り当てることができます。Dashboard で作成したユーザーは、デフォルトでは Keystone のユーザーとなっています。Active Directory ユーザーを統合するには、Red Hat OpenStack Platform の Identity サービスに含まれる LDAP プロバイダーを設定してください。

  1. Dashboard に管理ユーザーとしてログインして アイデンティティー > ユーザー を選択します。
  2. ユーザーの作成 をクリックします。
  3. ユーザーのユーザー名、メールアドレス、仮のパスワードを入力します。
  4. 主プロジェクト のリストからプロジェクトを選択します。
  5. ロール のリストからロールを選択します (デフォルトは _member_ です)。
  6. ユーザーの作成 をクリックします。

1.1.2. ユーザーの編集

以下の手順に従って、主プロジェクトなど、ユーザーの詳細を更新します。

  1. Dashboard に管理ユーザーとしてログインして アイデンティティー > ユーザー を選択します。
  2. ユーザーの アクション コラムで、編集 をクリックします。
  3. ユーザーの更新 ウィンドウで、ユーザー名メール主プロジェクト を更新できます。
  4. ユーザーの更新 をクリックします。

1.1.3. ユーザーの有効化/無効化

以下の手順に従って、ユーザーを有効化または無効化します。1 度に 1 ユーザーしか無効化または有効化できません。無効化されたユーザーは Dashboard にはログインできず、OpenStack サービスへのアクセスもできません。また、無効化されたユーザーの主プロジェクトもアクティブに設定できません。アクションを元に戻せないユーザーの削除とは異なり、無効化されたユーザーをもう 1 度有効化することができます。また、ユーザーが無効な場合には、Dashboard のユーザーとプロジェクトのアクションを実行するには、ユーザーを有効化する必要があります。

  1. Dashboard に管理ユーザーとしてログインして アイデンティティー > ユーザー を選択します。
  2. アクション コラムでドロップダウンリストをクリックし、ユーザーの有効化 または ユーザーの無効化 を選択すると、有効 コラムの値が True または False に更新されます。

1.1.4. ユーザーの削除

管理者ユーザーが Dashboard を使用してユーザーを削除するには、以下の手順を実行します。このアクションは、ユーザーの無効化とは異なり、元に戻すことはできません。ユーザーを無効にした場合には、所属するプロジェクトのメンバー一覧から削除されます。ユーザーとプロジェクトのペアに関連付けられたロールはすべて失われます。

  1. Dashboard に管理ユーザーとしてログインして アイデンティティー > ユーザー を選択します。
  2. 削除するユーザーを選択します。
  3. ユーザーの削除 をクリックします。ユーザーの削除の確認 ウィンドウが表示されます。
  4. ユーザーの削除 をクリックしてアクションを確認します。

1.2. ロールの管理

OpenStack はロールベースアクセス制御 (RBAC) のメカニズムを使用して、リソースへのアクセスを管理します。ロールは、ユーザーが実行可能なアクションを定義します。デフォルトでは、テナントにアタッチされるメンバーロールと、管理者以外のユーザーが環境を管理できるようにする管理者ロールという事前定義済みのロールが 2 つあります。パーミッションには抽象レベルがあり、管理者が必要なロールを作成して適切にサービスを設定することができる点に注意してください。

1.2.1. ロールの表示

利用可能な事前定義済みのロールを一覧表示するには、以下のコマンドを使用します。

$ keystone role-list
+----------------------------------+---------------+
|                id                |      name     |
+----------------------------------+---------------+
| 71ccc37d41c8491c975ae72676db687f |     Member    |
| 149f50a1fe684bfa88dae76a48d26ef7 | ResellerAdmin |
| 9fe2ff9ee4384b1894a90878d3e92bab |    _member_   |
| 6ecf391421604da985db2f141e46a7c8 |     admin     |
+----------------------------------+---------------+

指定したロールの詳細を取得するには、以下のコマンドを実行します。

$ keystone role-get [ROLE]

$ keystone role-get admin
+----------+----------------------------------+
| Property |              Value               |
+----------+----------------------------------+
|    id    | 6ecf391421604da985db2f141e46a7c8 |
|   name   |             admin                |
+----------+----------------------------------+

1.2.2. ロールの作成および割り当て

クラウド管理者は、以下のコマンド一式を使用して Keystone クライアントでロールを作成、管理できます。各 OpenStack のデプロイメントには、最低でもプロジェクト、ユーザー、ロールが 1 つずつ必要で、それぞれ連携されている必要があります。ただし、ユーザーは複数のプロジェクトのメンバーになることができます。複数のプロジェクトにユーザーを割り当てるには、ロールを作成して、ユーザーとプロジェクトのペアにそのロールを割り当てます。Dashboard でユーザーを作成して、主プロジェクトとデフォルトのロールを割り当てることができる点に注意してください。

注記

ユーザー、ロール、プロジェクトの指定には名前または ID を使用することができます。

  1. new-role という名前のロールを作成します。

    $ keystone role-create --name [ROLE_NAME]

    $ keystone role-create --name new-role
    +----------+----------------------------------+
    | Property |              Value               |
    +----------+----------------------------------+
    |    id    | 61013e7aa4ba4e00a0a1ab4b14bc6b2a |
    |   name   |             new-role             |
    +----------+----------------------------------+

  2. ユーザーをプロジェクトに割り当てるには、ロールをユーザーとプロジェクトのペアに割り当てる必要があります。これには、ユーザー、ロール、プロジェクト名/ID を取得してください。

    1. ユーザーを一覧表示します。

      $ keystone user-list
    2. ロールを一覧表示します。

      $ keystone role-list
    3. プロジェクトを一覧表示します。

      $ keystone tenant-list
  3. ユーザーとプロジェクトのペアにロールを割り当てます。

    $ keystone user-role-add --user [USER_NAME] --role [ROLE_NAME] --tenant [TENANT_NAME]

    以下の例では、new-role ロールが demodemo のペアに割り当てられます。

    $ keystone user-role-add --user demo --role new-role --tenant demo
  4. demo のロール割り当てを確認するには、以下のコマンドを実行します。

    $ keystone user-role-list --user [USER_NAME] --tenant [TENANT_NAME]

    $ keystone user-role-list --user demo --tenant demo

1.2.3. ロールの削除

  1. ユーザーとプロジェクトのペアからロールを削除するには、以下のコマンドを使用します。ロールが削除されると、ユーザーとプロジェクトのペアの関連性も削除されます。

    $ keystone user-role-remove --user [USER_NAME] --role [ROLE] --tenant [TENANT_NAME]
  2. ロールが削除されていることを確認します。

    $ keystone user-role-list --user [USER_NAME] --tenant [TENANT_NAME]

    ロールが削除された場合、そのロールはコマンドの出力から省略されます。

1.3. クォータ管理

クラウド管理者は、プロジェクトのクォータを設定、管理できます。各プロジェクトには、リソースが割り当てられており、プロジェクトユーザーには、これらのリソースを消費するアクセス権が授与されています。これにより、それぞれのパーミッションやリソースを干渉することなく、複数のプロジェクトが単一のクラウドを使用できるようにします。リソースクォータセットは、新規テナントの作成時に事前設定されます。クォータには、テナントに割り当て可能な仮想 CPU、インスタンス、Floating IP の数量が含まれます。クォータは、テナント (またはプロジェクト) およびテナントとユーザーレベルの両方で強制できます。Dashboard を使用して新規/既存のテナントのコンピュートまたは Block Storage クォータを設定または変更できる点に注意してください。Dashboard でのプロジェクトクォータの設定および更新の手順については、「2章プロジェクト管理」を参照してください。

1.3.1. ユーザーのコンピュートクォータの表示

ユーザーに現在設定されているクォータの値を一覧表示するには、以下のコマンドを実行します。

$ nova quota-show --user [USER] --tenant [TENANT]

$ nova quota-show --user demoUser --tenant demo
+-----------------------------+-------+
| Quota                       | Limit |
+-----------------------------+-------+
| instances                   | 10    |
| cores                       | 20    |
| ram                         | 51200 |
| floating_ips                | 5     |
| fixed_ips                   | -1    |
| metadata_items              | 128   |
| injected_files              | 5     |
| injected_file_content_bytes | 10240 |
| injected_file_path_bytes    | 255   |
| key_pairs                   | 100   |
| security_groups             | 10    |
| security_group_rules        | 20    |
| server_groups               | 10    |
| server_group_members        | 10    |
+-----------------------------+-------+

1.3.2. ユーザーのコンピュートクォータの更新

特定のクォータ値を更新するには、以下のコマンドを実行します。

$ nova quota-update --user [USER] --[QUOTA_NAME] [QUOTA_VALUE] [TENANT]
$ nova quota-show --user [USER] --tenant [TENANT]

$ nova quota-update --user demoUser --floating-ips 10 demo
$ nova quota-show --user demoUser --tenant demo
+-----------------------------+-------+
| Quota                       | Limit |
+-----------------------------+-------+
| instances                   | 10    |
| cores                       | 20    |
| ram                         | 51200 |
| floating_ips                | 10    |
| ...                         |       |
+-----------------------------+-------+

注記

quota-update コマンドのオプション一覧を表示するには、以下を実行します。

$ nova help quota-update

1.3.3. ユーザーのオブジェクトストレージクォータの設定

オブジェクトストレージクォータは、以下のカテゴリーに分類できます。

  • コンテナークォータ: 合計サイズ (バイト単位) または単一のコンテナーで保存可能なオブジェクト数を制限します。
  • アカウントクォータ: Object Storage サービスでユーザーが利用可能な合計サイズ (バイト単位) を制限します。

コンテナークォータまたはアカウントクォータのいずれかを設定するには、Object Storage プロキシーサーバーにおいて、proxy-server.conf ファイルの [pipeline:main] セクションに container_quotas または account_quotas (または両方) のパラメーターを追加する必要があります。

[pipeline:main]
pipeline = catch_errors [...] tempauth container-quotas \
account-quotas slo dlo proxy-logging proxy-server

[filter:account_quotas]
use = egg:swift#account_quotas

[filter:container_quotas]
use = egg:swift#container_quotas

オブジェクトストレージクォータの表示および更新には、以下のコマンドを使用します。プロジェクトに含まれるすべてのユーザーには、そのプロジェクトに指定されているクォータが表示されます。プロジェクトに設定されているオブジェクトストレージのクォータを更新するには、そのプロジェクトの ResellerAdmin のロールが必要です。

アカウントクォータを表示するには、以下のコマンドを実行します。

# swift stat

Account: AUTH_b36ed2d326034beba0a9dd1fb19b70f9
Containers: 0
Objects: 0
Bytes: 0
Meta Quota-Bytes: 214748364800
X-Timestamp: 1351050521.29419
Content-Type: text/plain; charset=utf-8
Accept-Ranges: bytes

クォータを更新するには、以下を実行します。

# swift post -m quota-bytes:<BYTES>

たとえば、アカウントに 5 GB のクォータを指定します。

# swift post -m quota-bytes:5368709120

クォータの確認をするには swift stat コマンドをもう 1 度実行します。

# swift stat

Account: AUTH_b36ed2d326034beba0a9dd1fb19b70f9
Containers: 0
Objects: 0
Bytes: 0
Meta Quota-Bytes: 5368709120
X-Timestamp: 1351541410.38328
Content-Type: text/plain; charset=utf-8
Accept-Ranges: bytes