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 プロバイダーを設定してください。
- Dashboard に管理ユーザーとしてログインして アイデンティティー > ユーザー を選択します。
- ユーザーの作成 をクリックします。
- ユーザーのユーザー名、メールアドレス、仮のパスワードを入力します。
- 主プロジェクト のリストからプロジェクトを選択します。
-
ロール のリストからロールを選択します (デフォルトは
_member_
です)。 - ユーザーの作成 をクリックします。
1.1.2. ユーザーの編集
以下の手順に従って、主プロジェクトなど、ユーザーの詳細を更新します。
- Dashboard に管理ユーザーとしてログインして アイデンティティー > ユーザー を選択します。
- ユーザーの アクション コラムで、編集 をクリックします。
- ユーザーの更新 ウィンドウで、ユーザー名、メール、主プロジェクト を更新できます。
- ユーザーの更新 をクリックします。
1.1.3. ユーザーの有効化/無効化
以下の手順に従って、ユーザーを有効化または無効化します。1 度に 1 ユーザーしか無効化または有効化できません。無効化されたユーザーは Dashboard にはログインできず、OpenStack サービスへのアクセスもできません。また、無効化されたユーザーの主プロジェクトもアクティブに設定できません。アクションを元に戻せないユーザーの削除とは異なり、無効化されたユーザーをもう 1 度有効化することができます。また、ユーザーが無効な場合には、Dashboard のユーザーとプロジェクトのアクションを実行するには、ユーザーを有効化する必要があります。
- Dashboard に管理ユーザーとしてログインして アイデンティティー > ユーザー を選択します。
-
アクション コラムでドロップダウンリストをクリックし、ユーザーの有効化 または ユーザーの無効化 を選択すると、有効 コラムの値が
True
またはFalse
に更新されます。
1.1.4. ユーザーの削除
管理者ユーザーが Dashboard を使用してユーザーを削除するには、以下の手順を実行します。このアクションは、ユーザーの無効化とは異なり、元に戻すことはできません。ユーザーを無効にした場合には、所属するプロジェクトのメンバー一覧から削除されます。ユーザーとプロジェクトのペアに関連付けられたロールはすべて失われます。
- Dashboard に管理ユーザーとしてログインして アイデンティティー > ユーザー を選択します。
- 削除するユーザーを選択します。
- ユーザーの削除 をクリックします。ユーザーの削除の確認 ウィンドウが表示されます。
- ユーザーの削除 をクリックしてアクションを確認します。
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 を使用することができます。
new-role
という名前のロールを作成します。$ keystone role-create --name [ROLE_NAME]
例
$ keystone role-create --name new-role +----------+----------------------------------+ | Property | Value | +----------+----------------------------------+ | id | 61013e7aa4ba4e00a0a1ab4b14bc6b2a | | name | new-role | +----------+----------------------------------+
ユーザーをプロジェクトに割り当てるには、ロールをユーザーとプロジェクトのペアに割り当てる必要があります。これには、ユーザー、ロール、プロジェクト名/ID を取得してください。
ユーザーを一覧表示します。
$ keystone user-list
ロールを一覧表示します。
$ keystone role-list
プロジェクトを一覧表示します。
$ keystone tenant-list
ユーザーとプロジェクトのペアにロールを割り当てます。
$ keystone user-role-add --user [USER_NAME] --role [ROLE_NAME] --tenant [TENANT_NAME]
例
以下の例では、
new-role
ロールがdemo
とdemo
のペアに割り当てられます。$ keystone user-role-add --user demo --role new-role --tenant demo
demo
のロール割り当てを確認するには、以下のコマンドを実行します。$ keystone user-role-list --user [USER_NAME] --tenant [TENANT_NAME]
例
$ keystone user-role-list --user demo --tenant demo
1.2.3. ロールの削除
ユーザーとプロジェクトのペアからロールを削除するには、以下のコマンドを使用します。ロールが削除されると、ユーザーとプロジェクトのペアの関連性も削除されます。
$ keystone user-role-remove --user [USER_NAME] --role [ROLE] --tenant [TENANT_NAME]
ロールが削除されていることを確認します。
$ 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