ユーザーおよびアイデンティティー管理ガイド
ユーザーおよび認証メカニズムの管理
概要
前書き リンクのコピーリンクがクリップボードにコピーされました!
クラウドの管理者は、プロジェクト、ユーザー、ロールを管理することができます。プロジェクトとは、ユーザーの割り当てが可能な、クラウド内の組織単位のことです。プロジェクトは、テナントまたはアカウントとしても知られています。ユーザーは、1 つまたは複数のプロジェクトに所属することができます。ロールは、ユーザーが実行することのできるアクションを定義します。
各 OpenStack デプロイメントには、最低でもプロジェクト、ユーザー、ロールが 1 つずつあり、それらが連携している必要があります。クラウド管理者は、プロジェクトとユーザーの追加、更新、削除、1 つまたは複数のプロジェクトへのユーザーの割り当てを行うことができます。プロジェクトとユーザーは、個別に管理することが可能です。
Keystone Identity サービスでユーザー認証を設定して、サービスおよびエンドポイントへのアクセスを制御することも可能です。Keystone では、トークンベースの認証が提供され、LDAP と Active Directory と統合することができるため、ユーザーとアイデンティティーを外部で管理し、Keystone とユーザーデータを同期できます。
第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 に管理ユーザーとしてログインして アイデンティティー > ユーザー を選択します。
-
Actions コラムでドロップダウンリストをクリックし、Enable User または Disable User を選択します。これにより、有効 コラムの値が
TrueまたはFalseに更新されます。
1.1.4. ユーザーの削除 リンクのコピーリンクがクリップボードにコピーされました!
管理ユーザーが Dashboard を使用してユーザーを削除するには、以下の手順を実行します。このアクションは、ユーザーの無効化とは異なり、元に戻すことはできません。ユーザーを無効にした場合には、所属するプロジェクトのメンバーリストから削除されます。ユーザーとプロジェクトのペアに関連付けられたロールはすべて失われます。
- Dashboard に管理ユーザーとしてログインして アイデンティティー > ユーザー を選択します。
- 削除するユーザーを選択します。
- Delete Users をクリックします。Confirm Delete Users ウィンドウが表示されます。
- ユーザーの削除 をクリックしてアクションを確認します。
第2章 ロールの管理 リンクのコピーリンクがクリップボードにコピーされました!
2.1. ロールの管理 リンクのコピーリンクがクリップボードにコピーされました!
OpenStack はロールベースアクセス制御 (RBAC) のメカニズムを使用して、リソースへのアクセスを管理します。ロールは、ユーザーが実行可能なアクションを定義します。デフォルトでは、テナントにアタッチされるメンバーロールと、管理者以外のユーザーが環境を管理できるようにする管理者ロールという事前定義済みのロールが 2 つあります。パーミッションには抽象レベルがあり、管理者が必要なロールを作成して適切にサービスを設定することができる点に注意してください。
2.1.1. ロールの表示 リンクのコピーリンクがクリップボードにコピーされました!
利用可能な事前定義済みのロールをリスト表示するには、以下のコマンドを使用します。
指定したロールの詳細を取得するには、以下のコマンドを実行します。
keystone role-get [ROLE]
$ keystone role-get [ROLE]
例
2.1.2. ロールの作成および割り当て リンクのコピーリンクがクリップボードにコピーされました!
クラウド管理者は、以下のコマンド一式を使用して Keystone クライアントでロールを作成、管理できます。各 OpenStack デプロイメントには、最低でもプロジェクト、ユーザー、ロールが 1 つずつあり、それらが連携している必要があります。ただし、ユーザーは複数のプロジェクトのメンバーになることができます。複数のプロジェクトにユーザーを割り当てるには、ロールを作成して、ユーザーとプロジェクトのペアにそのロールを割り当てます。Dashboard でユーザーを作成して、主プロジェクトとデフォルトのロールを割り当てることができる点に注意してください。
ユーザー、ロール、プロジェクトの指定には名前または ID を使用することができます。
new-roleという名前のロールを作成します。keystone role-create --name [ROLE_NAME]
$ keystone role-create --name [ROLE_NAME]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ユーザーをプロジェクトに割り当てるには、ロールをユーザーとプロジェクトのペアに割り当てる必要があります。これには、ユーザー、ロール、プロジェクト名/ID を取得してください。
ユーザーをリスト表示します。
keystone user-list
$ keystone user-listCopy to Clipboard Copied! Toggle word wrap Toggle overflow ロールをリスト表示します。
keystone role-list
$ keystone role-listCopy to Clipboard Copied! Toggle word wrap Toggle overflow プロジェクトをリスト表示します。
keystone tenant-list
$ keystone tenant-listCopy to Clipboard Copied! Toggle word wrap Toggle overflow
ユーザーとプロジェクトのペアにロールを割り当てます。
keystone user-role-add --user [USER_NAME] --role [ROLE_NAME] --tenant [TENANT_NAME]
$ keystone user-role-add --user [USER_NAME] --role [ROLE_NAME] --tenant [TENANT_NAME]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
以下の例では、
new-roleロールをdemo-demoペアに割り当てます。keystone user-role-add --user demo --role new-role --tenant demo
$ keystone user-role-add --user demo --role new-role --tenant demoCopy to Clipboard Copied! Toggle word wrap Toggle overflow ユーザー
demoのロール割り当てを確認します。keystone user-role-list --user [USER_NAME] --tenant [TENANT_NAME]
$ keystone user-role-list --user [USER_NAME] --tenant [TENANT_NAME]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
keystone user-role-list --user demo --tenant demo
$ keystone user-role-list --user demo --tenant demoCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.1.3. ロールの削除 リンクのコピーリンクがクリップボードにコピーされました!
以下のコマンドを使用して、ユーザーとプロジェクトのペアからロールを削除します。ロールを削除すると、関連するユーザーとプロジェクトのペアリングが失われます。
keystone user-role-remove --user [USER_NAME] --role [ROLE] --tenant [TENANT_NAME]
$ keystone user-role-remove --user [USER_NAME] --role [ROLE] --tenant [TENANT_NAME]Copy to Clipboard Copied! Toggle word wrap Toggle overflow ロールの削除を確認します。
keystone user-role-list --user [USER_NAME] --tenant [TENANT_NAME]
$ keystone user-role-list --user [USER_NAME] --tenant [TENANT_NAME]Copy to Clipboard Copied! Toggle word wrap Toggle overflow ロールが削除されると、コマンドの出力により、削除されたロールが省略されます。
第3章 グループの管理 リンクのコピーリンクがクリップボードにコピーされました!
3.1. keystone グループの管理 リンクのコピーリンクがクリップボードにコピーされました!
3.1.1. コマンドラインの使用 リンクのコピーリンクがクリップボードにコピーされました!
Identity サービス (keystone) グループを使用すると、一定のパーミッションを複数のユーザーアカウントに割り当てることができます。以下の例では、グループを作成して、そのグループにパーミッションを割り当てます。その結果、そのグループに割り当てられているのと同じパーミッションがグループのメンバーに継承されます。
openstack group サブコマンドには keystone v3 が必要です。
grp-Auditorsというグループを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow keystone グループのリストを表示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow _member_ロールを使用してdemoプロジェクトにアクセスするためのgrp-Auditorsグループパーミッションを付与します。openstack role add _member_ --group grp-Auditors --project demo
$ openstack role add _member_ --group grp-Auditors --project demoCopy to Clipboard Copied! Toggle word wrap Toggle overflow 既存のユーザー
user1をgrp-Auditorsグループに追加します。openstack group add user grp-Auditors user1 user1 added to group grp-Auditors
$ openstack group add user grp-Auditors user1 user1 added to group grp-AuditorsCopy to Clipboard Copied! Toggle word wrap Toggle overflow user1がgrp-Auditorsのメンバーであることを確認します。openstack group contains user grp-Auditors user1 user1 in group grp-Auditors
$ openstack group contains user grp-Auditors user1 user1 in group grp-AuditorsCopy to Clipboard Copied! Toggle word wrap Toggle overflow user1に割り当てられている有効なパーミッションを確認します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.1.2. Dashboard の使用 リンクのコピーリンクがクリップボードにコピーされました!
Dashboard を使用して keystone グループのメンバーシップを管理することができます。グループへのロールパーミッションの割り当てには、上記の例で説明したようにコマンドラインを使用する必要があります。
3.1.2.1. グループの作成 リンクのコピーリンクがクリップボードにコピーされました!
- Dashboard に管理ユーザーとしてログインして アイデンティティー > グループ を選択します。
- +グループの作成 をクリックします。
- グループの名前と説明を入力します。
- グループの作成 をクリックします。
3.1.2.2. グループメンバーシップの管理 リンクのコピーリンクがクリップボードにコピーされました!
Dashboard を使用して keystone グループのメンバーシップを管理することができます。
- Dashboard に管理ユーザーとしてログインして アイデンティティー > グループ を選択します。
- 編集する必要のあるグループの メンバーの管理 をクリックします。
- ユーザーの追加 を使用して、グループにユーザーを追加します。ユーザーを削除する必要がある場合には、そのユーザーのチェックボックスを選択して、ユーザーの削除 をクリックします。
第4章 クォータ管理 リンクのコピーリンクがクリップボードにコピーされました!
4.1. クォータ管理 リンクのコピーリンクがクリップボードにコピーされました!
クラウド管理者は、プロジェクトのクォータを設定、管理できます。各プロジェクトには、リソースが割り当てられており、プロジェクトユーザーには、これらのリソースを使用するパーミッションが付与されます。これにより、相互のパーミッションやリソースを干渉することなく、複数のプロジェクトが単一のクラウドを使用できます。リソースクォータのセットは、新規テナントの作成時に事前設定されます。クォータには、テナントに割り当て可能な仮想 CPU、インスタンス、RAM、Floating IP の数量が含まれます。クォータは、テナント (またはプロジェクト) と、テナントのユーザーレベルの両方で強制できます。Dashboard を使用して新規/既存のテナントの Compute または Block Storage のクォータを設定または変更できる点に注意してください。Dashboard でのプロジェクトクォータの設定および更新の手順については、5章プロジェクト管理を参照してください。
4.1.1. ユーザーのコンピュートクォータの表示 リンクのコピーリンクがクリップボードにコピーされました!
ユーザーに現在設定されているクォータの値をリスト表示するには、以下のコマンドを実行します。
nova quota-show --user [USER] --tenant [TENANT]
$ nova quota-show --user [USER] --tenant [TENANT]
例
4.1.2. ユーザーのコンピュートクォータの更新 リンクのコピーリンクがクリップボードにコピーされました!
特定のクォータ値を更新するには、以下のコマンドを実行します。
nova quota-update --user [USER] --[QUOTA_NAME] [QUOTA_VALUE] [TENANT] nova quota-show --user [USER] --tenant [TENANT]
$ nova quota-update --user [USER] --[QUOTA_NAME] [QUOTA_VALUE] [TENANT]
$ nova quota-show --user [USER] --tenant [TENANT]
例
quota-update コマンドのオプションリストを表示するには、以下を実行します。
nova help quota-update
$ nova help quota-update
4.1.3. ユーザーのオブジェクトストレージクォータの設定 リンクのコピーリンクがクリップボードにコピーされました!
オブジェクトストレージクォータは、以下のカテゴリーに分類できます。
- コンテナークォータ: 合計サイズ (バイト単位) または単一のコンテナーで保存可能なオブジェクト数を制限します。
- アカウントクォータ: Object Storage サービスでユーザーが利用可能な合計サイズ (バイト単位) を制限します。
コンテナークォータまたはアカウントクォータのいずれかを設定するには、Object Storage プロキシーサーバーにおいて、proxy-server.conf ファイルの [pipeline:main] セクションに container_quotas または account_quotas (または両方) のパラメーターを追加する必要があります。
オブジェクトストレージクォータの表示および更新には、以下のコマンドを使用します。プロジェクトに含まれるすべてのユーザーには、そのプロジェクトに指定されているクォータが表示されます。プロジェクトに設定されているオブジェクトストレージのクォータを更新するには、そのプロジェクトの ResellerAdmin のロールが必要です。
アカウントクォータを表示するには、以下のコマンドを実行します。
クォータを更新するには、以下を実行します。
swift post -m quota-bytes:<BYTES>
# swift post -m quota-bytes:<BYTES>
たとえば、アカウントに 5 GB のクォータを指定します。
swift post -m quota-bytes:5368709120
# swift post -m quota-bytes:5368709120
クォータの確認をするには swift stat コマンドをもう 1 度実行します。
第5章 プロジェクト管理 リンクのコピーリンクがクリップボードにコピーされました!
5.1. プロジェクト管理 リンクのコピーリンクがクリップボードにコピーされました!
クラウド管理者は、プロジェクト (テナント) を作成、管理することができます。テナントは、OpenStack ユーザーとリソースの数が割り当てられたプロジェクトです。テナントごとにクォータを設定することができます。これにより、相互のパーミッションやリソースを干渉することなく、複数のプロジェクトが単一のクラウドを使用できます。プロジェクトとテナントという用語はいずれも同じ意味で使用されます。ユーザーは、複数のプロジェクトに割り当てることができます。ユーザーとプロジェクトのペアごとに、ロールを 1 つ割り当てる必要があります。
5.1.1. プロジェクトの作成 リンクのコピーリンクがクリップボードにコピーされました!
プロジェクトの作成、プロジェクトへのメンバーの追加、プロジェクトのリソース制限の設定は、以下の手順を実行します。
- Dashboard に管理ユーザーとしてログインして アイデンティティー > プロジェクト を選択します。
- プロジェクトの作成 をクリックします。
- プロジェクト情報 タブでプロジェクトの名前と説明を入力します (有効 のチェックボックスはデフォルトで選択されます)。
- プロジェクトへのメンバーの追加は、プロジェクトメンバー タブの すべてのユーザー リストから行います。
- Quotas タブで、プロジェクトのリソースの上限を指定します。
- プロジェクトの作成 をクリックします。
5.1.2. プロジェクトの編集 リンクのコピーリンクがクリップボードにコピーされました!
プロジェクトを編集して名前や説明を変更したり、プロジェクトを有効化または一時的に無効化したり、メンバーを更新したりすることができます。
- Dashboard に管理ユーザーとしてログインして アイデンティティー > プロジェクト を選択します。
- プロジェクトの アクション コラムで、下向きの三角をクリックして プロジェクトの編集 をクリックします。
- プロジェクトの編集 ウィンドウでプロジェクトを更新して名前や説明を変更したり、プロジェクトを有効化または一時的に無効化したりすることができます。
- Project Members タブで、必要に応じてメンバーをプロジェクトに追加または削除します。
- Save をクリックします。
デフォルトで、Enabled のチェックボックスが選択されています。プロジェクトを一時的に無効にするには、Enabled のチェックボックスのチェックマークを外します。無効なプロジェクトを有効にするには、有効 チェックボックスを選択します。
5.1.3. プロジェクトの削除 リンクのコピーリンクがクリップボードにコピーされました!
- Dashboard に管理ユーザーとしてログインして アイデンティティー > プロジェクト を選択します。
- 削除するプロジェクトを選択します。
- プロジェクトの削除 をクリックします。Confirm Delete Projects ウィンドウが表示されます。
- プロジェクトの削除 をクリックしてアクションを確認します。
プロジェクトが削除され、ユーザーとのペアリングの関連付けは解除されます。
5.1.4. プロジェクトクォータの更新 リンクのコピーリンクがクリップボードにコピーされました!
クォータとは、クラウドリソースを最適化するためにプロジェクトごとに設定可能な操作の制約のことです。クォータを設定して、通知なしにプロジェクトのリソースが使い果たされないようにします。クォータは、プロジェクトレベルとプロジェクトとユーザーレベルの両方で実行できます。
- Dashboard に管理ユーザーとしてログインして アイデンティティー > プロジェクト を選択します。
- プロジェクトの アクション コラムで、下向きの三角をクリックして クォータの変更 をクリックします。
- クォータ タブで、必要に応じてプロジェクトクォータを変更します。
- 保存 をクリックします。
5.1.5. 現在のプロジェクトの変更 リンクのコピーリンクがクリップボードにコピーされました!
ユーザーは、メンバーとなっているプロジェクトのみ、現在のプロジェクトとして設定することができます。また、現在のプロジェクトに設定 オプションを有効にするには、ユーザーが複数のプロジェクトのメンバーである必要があります。現在のプロジェクトとして設定すると、現在のプロジェクトとして指定されたプロジェクトのオブジェクトに、Dashboard からアクセスできるようになります。無効にしたプロジェクトは、有効化しない限り、現在のプロジェクトとして設定できません。
- Dashboard に管理ユーザーとしてログインして アイデンティティー > プロジェクト を選択します。
- プロジェクトの アクション コラムで、下向きの三角をクリックして 現在のプロジェクトに設定 をクリックします。
- または、管理者権限のないユーザーで、プロジェクトの アクション コラムの下向きの三角をクリックして 現在のプロジェクトに設定 をクリックすると、このコラムのデフォルトアクションになります。
5.2. プロジェクトのセキュリティー管理 リンクのコピーリンクがクリップボードにコピーされました!
セキュリティーグループとは、プロジェクトのインスタンスに割り当て可能な IP フィルターのルールセットで、インスタンスへのネットワークのアクセス権限を定義します。セキュリティーグループはプロジェクト別になっており、プロジェクトメンバーは自分のセキュリティーグループのデフォルトルールを編集して新規ルールセットを追加できます。
プロジェクトにはすべて default セキュリティーグループが存在し、他にセキュリティーグループが定義されていないインスタンスに対して適用されます。このセキュリティーグループは、デフォルト値を変更しない限り、インスタンスへの受信トラフィックをすべて拒否し、送信トラフィックのみを許可します。
5.2.1. セキュリティーグループの作成 リンクのコピーリンクがクリップボードにコピーされました!
- Dashboard で プロジェクト > コンピュート > アクセスとセキュリティー を選択します。
- セキュリティーグループ タブで、セキュリティーグループの作成 をクリックします。
- セキュリティーグループに名前と説明を指定して、セキュリティーグループの作成 をクリックします。
5.2.2. セキュリティーグループのルールの追加 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、新しいグループには、送信アクセスのルールのみが指定されます。他のアクセスを指定するには、新しいルールを追加する必要があります。
- Dashboard で プロジェクト > コンピュート > アクセスとセキュリティー を選択します。
- Security Groups タブで、編集するセキュリティーグループの Manage Rules をクリックします。
- Add Rule をクリックして、新規ルールを追加します。
ルールの値を指定して、Add をクリックします。
以下のルールのフィールドは必須です。
- ルール
ルールタイプ。ルールテンプレート (例: SSH) を指定する場合には、そのフィールドは自動的に入力されます。
- TCP: 一般的には、システム間のデータの交換や、エンドユーザーの通信に使用されます。
- UDP: 一般的には、システム間のデータ交換に (特にアプリケーションレベルで) 使用されます。
- ICMP: 一般的には、ルーターなどのネットワークデバイスがエラーや監視メッセージを送信するのに使用されます。
- 方向
- 受信 (インバウンド) または送信 (アウトバウンド)
- 開放するポート
TCP または UDP ルールでは、開放する Port または Port Range (単一のポートまたはポートの範囲) を入力します。
- ポート範囲では、From Port と To Port フィールドにポートの値を入力します。
- 単一のポートの場合は Port フィールドにポートの値を入力します。
- タイプ
- ICMP ルールのタイプ。-1:255 の範囲で指定する必要があります。
- コード
- ICMP ルールのコード。-1:255 の範囲で指定する必要があります。
- 接続相手
このルールが適用されるトラフィックの接続元
- CIDR (Classless Inter-Domain Routing): 指定のブロック内の IP へのアクセスを制限する IP アドレスブロック。ソースフィールドに CIDR を入力します。
- セキュリティーグループ: グループ内のインスタンスが他のグループインスタンスにアクセスできるようにするソースのセキュリティーグループ
5.2.3. セキュリティーグループルールの削除 リンクのコピーリンクがクリップボードにコピーされました!
- Dashboard で プロジェクト > コンピュート > アクセスとセキュリティー を選択します。
- Security Groups タブで、セキュリティーグループの Manage Rules をクリックします。
- セキュリティーグループルールを選択し、Delete Rule ボタンをクリックします。
- 再度、Delete Rule をクリックします。
削除の操作は元に戻すことはできません。
5.2.4. セキュリティーグループの削除 リンクのコピーリンクがクリップボードにコピーされました!
- Dashboard で プロジェクト > コンピュート > アクセスとセキュリティー を選択します。
- Security Groups タブで、グループを選択して、Delete Security Groups をクリックします。
- Delete Security Groups をクリックします。
削除の操作は元に戻せません。
5.3. Identity サービスにおける階層型マルチテナンシー リンクのコピーリンクがクリップボードにコピーされました!
OpenStack Identity サービス(keystone)では、マルチテナンシーを使用してプロジェクトをネストできます。ドメインは、各ユーザー、グループ、およびプロジェクトのコレクションを表し、それぞれが 1 つのドメインによって所有されます。他のドメインが所有するプロジェクトを含め、ユーザーをプロジェクトのそれらに付与することで、ユーザーは複数のプロジェクトに関連付けることができます。プロジェクトはリソースのコンテナーであり、これは仮想マシンイメージへのクォータおよびアクセスを定義します。
マルチテナンシーはテクノロジープレビューとして利用できます。テクノロジープレビューと記した機能のサポート範囲についての詳細は、https://access.redhat.com/support/offerings/techpreview/を参照してください。
第6章 ドメイン管理 リンクのコピーリンクがクリップボードにコピーされました!
Identity サービス (keystone) ドメインは、keystone で作成可能な追加の名前空間です。keystone ドメインは、ユーザー、グループ、プロジェクトの分割に使用できます。そのように分離されたドメインは、異なる LDAP または Active Directory 環境でユーザーを認証するために設定することも可能です。詳細は、Identity サービスとの統合 を 参照してください。
Identity Service には、Default という名前のドメインが組み込まれています。このドメインは、サービスアカウント専用に確保し、ユーザーアカウント用には別のドメインを作成することを推奨します。
6.1. ドメインリストの表示 リンクのコピーリンクがクリップボードにコピーされました!
openstack domain list でドメインのリストを表示することができます。以下に例を示します。
このコマンドが利用できない場合には、コマンドラインセッションで keystone v3 が有効化されているかどうかを確認してください。
6.2. 新規ドメインの作成 リンクのコピーリンクがクリップボードにコピーされました!
openstack domain create を使用して新規ドメインを作成することができます。以下に例を示します。
6.3. ドメインの詳細情報の表示 リンクのコピーリンクがクリップボードにコピーされました!
openstack domain show でドメインの詳細情報を表示することができます。以下に例を示します。
6.4. ドメインの無効化 リンクのコピーリンクがクリップボードにコピーされました!
--disableでドメインを無効にすることができます。以下に例を示します。openstack domain set TestDomain --disable
$ openstack domain set TestDomain --disableCopy to Clipboard Copied! Toggle word wrap Toggle overflow ドメインが無効化されたことを確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 必要な場合には、ドメインを再度有効化することができます。
openstack domain set TestDomain --enable
$ openstack domain set TestDomain --enableCopy to Clipboard Copied! Toggle word wrap Toggle overflow
第7章 アイデンティティー管理 リンクのコピーリンクがクリップボードにコピーされました!
7.1. セキュアな LDAP 通信 リンクのコピーリンクがクリップボードにコピーされました!
Identity サービス (Keystone) が LDAP サーバーに対して認証を行うか、LDAP サーバーから識別情報を取得するように設定した場合に、CA 証明書を使用して Identity サービスの LDAP 通信をセキュリティー保護することができます。
本項では、Active Directory からの CA 証明書の取得、CA 証明書ファイルの Privacy Enhanced Mail (PEM) ファイル形式への変換、Identity サービスのセキュアな LDAP 通信設定の 3 つの方法について説明します。それぞれの方法での手順は、CA 信頼が設定された場所および方法に応じて実行するようにしてください。
7.1.1. Active Directory からの CA 証明書の取得 リンクのコピーリンクがクリップボードにコピーされました!
以下のコードは、Active Directory に対してクエリーを実行して CA 証明書を取得する方法の例を示しています。CA_NAME は証明書の名前に置き換え (mmc.exe で確認可能)、その他のパラメーターは実際の設定に応じて変更することができます。
7.1.2. CA 証明書の PEM ファイル形式への変換 リンクのコピーリンクがクリップボードにコピーされました!
/path/cacert.pem という名前のファイルを作成し、以下の例に示したように、Active Directory から CA 証明書を取得するための LDAP クエリーの内容をヘッダーとフッターの間に追加します。
-----BEGIN CERTIFICATE----- MIIDbzCCAlegAwIBAgIQQD14hh1Yz7tPFLXCkKUOszANB... -----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDbzCCAlegAwIBAgIQQD14hh1Yz7tPFLXCkKUOszANB... -----END
CERTIFICATE-----
トラブルシューティングを行う場合には、以下のクエリーを実行して LDAP が稼働しているかをチェックし、PEN 証明書ファイルが正しく作成されたことを確認してください。
LDAPTLS_CACERT=/path/cacert.pem ldapsearch -xLLL -ZZ -H $LDAPURL -s base -b "" "objectclass=*" currenttime
LDAPTLS_CACERT=/path/cacert.pem ldapsearch -xLLL -ZZ -H $LDAPURL -s base -b "" "objectclass=*" currenttime
このクエリーによって、以下のような結果が返されるはずです。
dn: currentTime: 20141022050611.0Z
dn: currentTime:
20141022050611.0Z
CA 証明書が Web サーバーでホストされていた場合には、以下のコマンドを実行して CA 証明書を取得することができます。
例
- $HOST=redhat.com
- $PORT=443
echo Q | openssl s_client -connect $HOST:$PORT | sed -n -e '/BEGIN CERTIFICATE/,/END CERTIFICATE/ p'
# echo Q | openssl s_client -connect $HOST:$PORT | sed -n -e '/BEGIN CERTIFICATE/,/END CERTIFICATE/ p'
7.1.3. Identity サービスのセキュアな LDAP 通信を設定する方法 リンクのコピーリンクがクリップボードにコピーされました!
7.1.3.1. 方法 1 リンクのコピーリンクがクリップボードにコピーされました!
CA 信頼が PEM ファイルを使用して LDAP レベルで設定されている場合は、この方法を使用してください。CA 証明書ファイルの場所は手動で指定します。以下の手順では、Identity サービスだけでなく、OpenLDAP ライブラリーを使用する全アプリケーションの LDAP 通信が保護されます。
-
CA 証明書チェーンが含まれているファイルを PEM 形式で
/etc/openldap/certsディレクトリーにコピーします。 /etc/openldap/ldap.confを編集して以下のディレクティブを追加します。[CA_FILE] は CA 証明書ファイルの場所と名前に置き換えます。TLS_CACERT /etc/openldap/certs/[CA_FILE]
TLS_CACERT /etc/openldap/certs/[CA_FILE]Copy to Clipboard Copied! Toggle word wrap Toggle overflow openstack-keystone サービスを再起動します。
systemctl restart openstack-keystone.service
# systemctl restart openstack-keystone.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
7.1.3.2. 方法 2 リンクのコピーリンクがクリップボードにコピーされました!
CA 信頼が Network Security Services (NSS) データベースを介して LDAP ライブラリーレベルで設定されている場合は、この方法を使用します。certutil コマンドを使用して、OpenLDAP ライブラリーが使用する NSS 証明書データベースに CA 証明書をインポートし、信頼します。以下の手順では、Identity サービスだけでなく、OpenLDAP ライブラリーを使用する全アプリケーションの LDAP 通信が保護されます。
証明書をインポートして信頼します。[CA_FILE] は CA 証明書ファイルの場所と名前に置き換えます。
certutil -d /etc/openldap/certs -A -n "My CA" -t CT,, -a -i [CA_FILE]
# certutil -d /etc/openldap/certs -A -n "My CA" -t CT,, -a -i [CA_FILE]Copy to Clipboard Copied! Toggle word wrap Toggle overflow CA 証明書が正しくインポートされていることを確認します。
certutil -d /etc/openldap/certs -L
# certutil -d /etc/openldap/certs -LCopy to Clipboard Copied! Toggle word wrap Toggle overflow CA 証明書がリストされ、信頼の属性が CT,, に設定されます。
openstack-keystone サービスを再起動します。
systemctl restart openstack-keystone.service
# systemctl restart openstack-keystone.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
7.1.3.3. 方法 3 リンクのコピーリンクがクリップボードにコピーされました!
CA 信頼が PEM ファイルを使用して Keystone レベルで設定されている場合は、この方法を使用します。Identity サービスと LDAP サーバー間の通信をセキュリティー保護する最後のメソッドは、Identity サービスに TLS を設定する方法です。
ただし、上記の 2 つのメソッドとは異なり、このメソッドでは、Identity サービスの LDAP 通信のみがセキュリティー保護され、OpenLDAP ライブラリーを使用する他のアプリケーションの LDAP 通信はセキュリティー保護されません。
以下の手順では、openstack-config コマンドを使用して /etc/keystone/keystone.conf ファイル内の値を編集します。
TLS を有効化します。
openstack-config --set /etc/keystone/keystone.conf ldap use_tls True
# openstack-config --set /etc/keystone/keystone.conf ldap use_tls TrueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 証明書の場所を指定します。[CA_FILE] は CA 証明書ファイルの名前に置き換えます。
openstack-config --set /etc/keystone/keystone.conf ldap tls_cacertfile [CA_FILE]
# openstack-config --set /etc/keystone/keystone.conf ldap tls_cacertfile [CA_FILE]Copy to Clipboard Copied! Toggle word wrap Toggle overflow LDAP サーバーから受信した TLS セッションに対して実行するクライアント証明書チェックを指定します。[CERT_BEHAVIOR] は、以下にあげる動作のいずれか 1 つに置き換えてください。
- demand
- LDAP サーバーにより証明書が常に要求されます。証明書が提供されなかった場合、または提供された証明書が既存の認証局ファイルに対して検証できなかった場合には、セッションは終了します。
- allow
- LDAP サーバーにより証明書が常に要求されます。証明書が提供されなくてもセッションは通常どおり続行されます。証明書が提供されたにもかかわらず、既存の認証局ファイルに対して検証できなかった場合、その証明書は無視され、セッションは通常どおり続行されます。
- never
- 証明書は一切要求されません。
openstack-config --set /etc/keystone/keystone.conf ldap tls_req_cert [CERT_BEHAVIOR]
# openstack-config --set /etc/keystone/keystone.conf ldap tls_req_cert [CERT_BEHAVIOR]Copy to Clipboard Copied! Toggle word wrap Toggle overflow openstack-keystone サービスを再起動します。
systemctl restart openstack-keystone.service
# systemctl restart openstack-keystone.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow