第1章 ユーザーとロール管理
1.1. ユーザー管理 リンクのコピーリンクがクリップボードにコピーされました!
1.1.1. ユーザーの作成 リンクのコピーリンクがクリップボードにコピーされました!
- Dashboard に管理ユーザーとしてログインして アイデンティティー > ユーザー を選択します。
- ユーザーの作成 をクリックします。
- ユーザーのユーザー名、メールアドレス、仮のパスワードを入力します。
- 主プロジェクト のリストからプロジェクトを選択します。
-
ロール のリストからロールを選択します (デフォルトは
_member_です)。 - ユーザーの作成 をクリックします。
1.1.2. ユーザーの有効化/無効化 リンクのコピーリンクがクリップボードにコピーされました!
一度に無効化/有効化することができるのは 1 ユーザーのみです。
- Dashboard に管理ユーザーとしてログインして アイデンティティー > ユーザー を選択します。
-
アクション コラムでドロップダウンリストをクリックし、ユーザーの有効化 または ユーザーの無効化 を選択すると、有効 コラムの値が
TrueまたはFalseに更新されます。
1.1.3. ユーザーの削除 リンクのコピーリンクがクリップボードにコピーされました!
- Dashboard に管理ユーザーとしてログインして アイデンティティー > ユーザー を選択します。
- 削除するユーザーを選択します。
- ユーザーの削除 をクリックします。
- 再度、ユーザーの削除 をクリックします。
削除の操作は元に戻すことはできません。
1.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. ロールの作成および割り当て リンクのコピーリンクがクリップボードにコピーされました!
ユーザーは複数のプロジェクトのメンバーにすることができます。複数のプロジェクトにユーザーを割り当てるには、ロールを作成してそのロールをユーザーとプロジェクトのペアに割り当てます。
ユーザー、ロール、プロジェクトの指定には名前または 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 demodemoのロール割り当てを確認するには、以下のコマンドを実行します。$ 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.2.4. プロジェクトユーザーの Compute クォータの表示 リンクのコピーリンクがクリップボードにコピーされました!
現在設定されているプロジェクトユーザー (テナントユーザー) のクォータ値を表示するには、以下を実行します。
$ 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.2.5. プロジェクトユーザーの Compute クォータの更新 リンクのコピーリンクがクリップボードにコピーされました!
特定のクォータ値を更新するには、以下を実行します。
$ 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.2.6. ロールアクセス制御の設定 リンクのコピーリンクがクリップボードにコピーされました!
異なるテナントで異なるロールをユーザーに割り当てることができます。また、同じテナントでユーザーに複数のロールを割り当てることも可能です。
/etc/[SERVICE-CODENAME]/policy.json ファイルは、特定のサービスでユーザーが実行できるタスクを制御します。以下に例を示します。
-
/etc/nova/policy.jsonは Compute Service のアクセスポリシーを指定します。 -
/etc/glance/policy.jsonは Imager Service のアクセスポリシーを指定します。 -
/etc/keystone/policy.jsonは Identity Service のアクセスポリシーを指定します。
Compute Service、Identity Service、Image Service 用のデフォルトの policy.json ファイルは、admin ロールのみを認識します。admin ロールが必要ない操作はすべて、テナント内のどのロールが割り当てられたユーザーでもアクセスすることができます。
たとえば、Compute Service でユーザーが操作を実行できないようにするには、Identity Service でロールを作成し、そのロールをユーザーに割り当ててから Compute の操作にはそのロールが必要となるように /etc/nova/policy.json を編集します。
例
/etc/nova/policy.json の以下の行は、ボリュームの作成が可能なユーザーに対する制限がないことを指定します。テナント内で何らかのロールが割り当てられていれば、そのテナントでボリュームを作成することができます。
"volume:create": [],
例
特定のテナントで compute-user ロールが割り当てられたユーザーに対してボリュームの作成を制限するには、Compute ポリシーに「role:compute-user」と追記してください。
"volume:create": ["role:compute-user"],
例
このロールがすべての Compute Service 要求に必要となるように制限すると、ファイルの値は以下のようになります (このサンプルは省略されています)。
{"admin_or_owner": [["role:admin"], ["project_id:%(project_id)s"]],
"default": [["rule:admin_or_owner"]],
"compute:create": ["role:compute-user"],
"compute:create:attach_network": ["role:compute-user"],
"compute:create:attach_volume": ["role:compute-user"],
"compute:get_all": ["role:compute-user"],
"compute:unlock_override": ["rule:admin_api"],
"admin_api": [["role:admin"]],
"compute_extension:accounts": [["rule:admin_api"]],
"compute_extension:admin_actions": [["rule:admin_api"]],
"compute_extension:admin_actions:pause": [["rule:admin_or_owner"]],
"compute_extension:admin_actions:unpause": [["rule:admin_or_owner"]],
"compute_extension:admin_actions:suspend": [["rule:admin_or_owner"]],
"compute_extension:admin_actions:resume": [["rule:admin_or_owner"]],
"compute_extension:admin_actions:lock": [["rule:admin_or_owner"]],
"compute_extension:admin_actions:unlock": [["rule:admin_or_owner"]],
"compute_extension:admin_actions:resetNetwork": [["rule:admin_api"]],
"compute_extension:admin_actions:injectNetworkInfo": [["rule:admin_api"]],
"compute_extension:admin_actions:createBackup": [["rule:admin_or_owner"]],
"compute_extension:admin_actions:migrateLive": [["rule:admin_api"]],
"compute_extension:admin_actions:migrate": [["rule:admin_api"]],
"compute_extension:aggregates": [["rule:admin_api"]],
"compute_extension:certificates": ["role:compute-user"],
"compute_extension:cloudpipe": [["rule:admin_api"]],
"compute_extension:console_output": ["role:compute-user"],
"compute_extension:consoles": ["role:compute-user"],
"compute_extension:createserverext": ["role:compute-user"],
"compute_extension:deferred_delete": ["role:compute-user"],
"compute_extension:disk_config": ["role:compute-user"],
"compute_extension:evacuate": [["rule:admin_api"]],
"compute_extension:extended_server_attributes": [["rule:admin_api"]],
...