30.2. IdM ドメインでの Host-based Access Control の設定
重要
カスタムの HBAC ルールを作成する前にallow_allルールを無効化しないでください。作成してしまうと、ユーザーはどのホストにもアクセスできなくなります。
30.2.1. HBAC ルールの作成
- IdM web UI (「Web UI: HBAC ルールの作成」を参照してください)
- コマンドライン (「コマンドライン: HBAC ルールの作成」を参照してください)
Web UI: HBAC ルールの作成
- → → を選択します。
- をクリックして、新規ルールの追加を開始します。
- ルールの名前を入力して をクリックし、HBAC ルールの設定ページに直接移動します。
- Who エリアで対象ユーザーを指定します。
- 特定のユーザーまたはグループのみに HBAC ルールを適用するには、Specified Users and Groups を選択してから、 をクリックしてユーザーまたはグループを追加します。
- 全ユーザーに HBAC ルールを適用するには、Anyone を選択します。

図30.2 HBAC ルールの対象ユーザーの指定
- Accessing エリアで対象ホストを指定します。
- 特定のホストまたはグループのみに HBAC ルールを適用するには、Specified hosts and Groups を選択してから、 をクリックしてホストまたはグループを追加します。
- 全ホストに HBAC ルールを適用するには、Any Host を選択します。
- Via Service エリアでは、対象の HBAC サービスを指定します。
- 特定のサービスまたはグループのみに HBAC ルールを適用するには、Specified Services and Groups を選択してから、 をクリックしてサービスまたはグループを追加します。
- 全サービスに HBAC ルールを適用するには、Any Service を選択します。
注記
デフォルトでは HBAC ルール用に、最も一般的なサービスおよびサービスグループのみが設定されています。- 現在利用可能なサービス一覧を表示するには、 → → を選択します。
- 現在利用可能なサービスグループ一覧を表示するのは → → を選択します。
さらにサービスやサービスグループを追加するには、「カスタムの HBAC サービス用に HBAC サービスエントリーの追加」 および 「HBAC サービスグループの追加」 を参照してください。 - HBAC ルール設定ページで特定の設定を変更すると、ページの上部の ボタンがハイライトされます。ボタンがハイライトされたら、クリックして変更を確定します。
コマンドライン: HBAC ルールの作成
ipa hbacrule-addコマンドを使用して、ルールを追加します。$ ipa hbacrule-addRule name:rule_name--------------------------- Added HBAC rule "rule_name" --------------------------- Rule name: rule_name Enabled: TRUE- 対象のユーザーを指定します。
- 指定のユーザーまたはグループのみに HBAC ルールを適用するには、
ipa hbacrule-add-userコマンドを使用します。たとえば、グループを追加するには以下を実行します。$ ipa hbacrule-add-userRule name:rule_name[member user]: [member group]:group_nameRule name: rule_name Enabled: TRUE User Groups: group_name ------------------------- Number of members added 1 -------------------------複数のユーザーまたはグループを追加するには、--usersおよび--groupsオプションを使用します。$ ipa hbacrule-add-user rule_name --users=user1 --users=user2 --users=user3Rule name: rule_name Enabled: TRUE Users: user1, user2, user3 ------------------------- Number of members added 3 ------------------------- - HBAC ルールを全ユーザーに適用するには、
ipa hbacrule-modコマンドを使用して、allユーザーカテゴリーを指定します。$ ipa hbacrule-mod rule_name --usercat=all------------------------------ Modified HBAC rule "rule_name" ------------------------------ Rule name: rule_name User category: all Enabled: TRUE注記
HBAC ルールが個別ユーザーまたはグループに関連付けられている場合には、ipa hbacrule-mod --usercat=allは失敗します。このような場合には、ipa hbacrule-remove-userコマンドを使用してユーザーとグループを削除します。詳細は、--helpオプションを指定してipa hbacrule-remove-userを実行します。
- 対象のホストを指定します。
- 指定のホストまたはグループのみに HBAC ルールを適用するには、
ipa hbacrule-add-hostコマンドを使用します。たとえば、単一のホストを追加するには、以下を実行します。$ ipa hbacrule-add-hostRule name:rule_name[member host]:host.example.com[member host group]: Rule name: rule_name Enabled: TRUE Hosts: host.example.com ------------------------- Number of members added 1 -------------------------複数のホストまたはグループを追加するには、--hostsおよび--hostgroupsオプションを使用します。$ ipa hbacrule-add-host rule_name --hosts=host1 --hosts=host2 --hosts=host3Rule name: rule_name Enabled: TRUE Hosts: host1, host2, host3 ------------------------- Number of members added 3 ------------------------- - HBAC ルールを全ホストに適用するには、
ipa hbacrule-modコマンドを使用して、allホストカテゴリーを指定します。$ ipa hbacrule-mod rule_name --hostcat=all------------------------------ Modified HBAC rule "rule_name" ------------------------------ Rule name: rule_name Host category: all Enabled: TRUE注記
HBAC ルールが個別ホストまたはグループに関連付けられている場合には、ipa hbacrule-mod --hostcat=allは失敗します。このような場合には、ipa hbacrule-remove-hostコマンドを使用してホストとグループを削除します。詳細は、--helpオプションを指定してipa hbacrule-remove-hostを実行します。
- 対象の HBAC サービスを指定します。
- 指定のサービスまたはグループのみに HBAC ルールを適用するには、
ipa hbacrule-add-serviceコマンドを使用します。たとえば、単一のサービスを追加するには以下を実行します。$ ipa hbacrule-add-serviceRule name:rule_name[member HBAC service]:ftp[member HBAC service group]: Rule name: rule_name Enabled: TRUE Services: ftp ------------------------- Number of members added 1 -------------------------複数のサービスまたはグループを追加するには、--hbacsvcsおよび--hbacsvcgroupsオプションを使用します。$ ipa hbacrule-add-service rule_name --hbacsvcs=su --hbacsvcs=sudoRule name: rule_name Enabled: TRUE Services: su, sudo ------------------------- Number of members added 2 -------------------------注記
最も一般的なサービスおよびサービスグループのみが HBAC ルール用に設定されます。さらに追加するには「カスタムの HBAC サービス用に HBAC サービスエントリーの追加」および「HBAC サービスグループの追加」を参照してください。 - HBAC ルールを全サービスに適用するには、
ipa hbacrule-modコマンドを使用して、allサービスカテゴリーを指定します。$ ipa hbacrule-mod rule_name --servicecat=all------------------------------ Modified HBAC rule "rule_name" ------------------------------ Rule name: rule_name Service category: all Enabled: TRUE注記
HBAC ルールが個別サービスまたはグループに関連付けられている場合には、ipa hbacrule-mod --servicecat=allは失敗します。このような場合には、ipa hbacrule-remove-serviceコマンドを使用してサービスとグループを削除します。詳細は、--helpオプションを指定してipa hbacrule-remove-serviceを実行します。
- オプション: HBAC ルールが正しく追加されたことを確認します。
ipa hbacrule-findコマンドを使用して、HBAC ルールが IdM に追加されたことを確認します。ipa hbacrule-showコマンドを使用して、HBAC ルールのプロパティーを確認します。
詳細は、--helpオプションを指定してコマンドを実行します。
HBAC ルールの例
例30.1 サービスを使用して単一ユーザーに全ホストへのアクセス権を割り当てる手順
admin ユーザーがドメイン内の全システムにアクセスできるようにするには、新規の HBAC ルールを作成して、以下を設定します。
- ユーザーを
adminに設定します。 - ホストを Any host (web UI で) に設定します。または、
ipa hbacrule-add(ルールの追加) またはipa hbacrule-modを指定して--hostcat=allを実行します。 - サービスを Any service (web UI で) に設定します。または、
ipa hbacrule-add(ルールの追加) またはipa hbacrule-modを指定して--servicecat=allを実行します。
例30.2 特定のサービスのみを使用してホストにアクセスする手順
sudo 関連のサービスを使用して、host.example.com という名前のホストにアクセスするには、新規の HBAC ルールを作成して、以下を設定します。
- ユーザーを Anyone (web UI で) に設定します。または、
ipa hbacrule-add(ルールの追加) またはipa hbacrule-modを指定して--usercat=allを実行します。 - ホストを
host.example.comに設定します。 - HBAC サービスグループを
Sudoに設定します。この Sudo はsudoと関連サービスのデフォルトグループです。
30.2.2. HBAC ルールのテスト
重要
- IdM web UI (「Web UI: HBAC ルールのテスト」を参照してください)
- コマンドライン (「コマンドライン: HBAC ルールのテスト」を参照してください)
Web UI: HBAC ルールのテスト
- → → を選択します。
- Who 画面で、ID のテストを実行するユーザーを指定して、 をクリックします。

図30.3 HBAC テスト用の対象ユーザーの指定
- Accessing 画面でユーザーがアクセスを試みるホストを指定して、 をクリックします。
- Via Service 画面で、ユーザーが使用を試みるサービスを指定して、 をクリックします。
- Rules 画面で、テストする HBAC ルールを選択して をクリックします。ルールを選択しない場合には、すべてのルールがテストされます。Include Enabled を選択して、ステータスが
Enabledの全ルールに対してテストを実行します。Include Disabled を選択して、ステータスがDisabledの全ルールにテストを実行します。HBAC ルールの表示やステータスの変更は、 → → を選択します。重要
複数のルールでテストが実行される場合には、選択したルールの 1 つでアクセスが許可されるとテストに成功します。 - Run Test 画面で、 をクリックします。

図30.4 HBAC テストの実行
- テストの結果を確認します。
ACCESS DENIEDが表示されると、テストへのアクセス権が拒否されたことになります。ACCESS GRANTEDが表示されると、ホストへのアクセスが正常に許可されたことになります。

図30.5 HBAC テスト結果の確認
デフォルトでは、IdM はテスト結果を表示する際には、テスト済みの HBAC ルールをすべて表示します。- アクセスを許可するルールを表示するには、Matched を選択してください。
- アクセスを拒否するルールを表示するには、Unmatched を選択してください。
コマンドライン: HBAC ルールのテスト
ipa hbactest コマンドを使用して、最低でも以下を指定します。
- ID のテストを実行するユーザー
- ユーザーがアクセスを試みるホスト
- ユーザーが使用を試みるサービス
$ ipa hbactest
User name: user1
Target host: example.com
Service: sudo
---------------------
Access granted: False
---------------------
Not matched rules: rule1enabled の HBAC ルールすべてでテストを実行します。別の HBAC ルールを指定するには、以下を実行します。
- HBAC ルールを 1 つまたは複数定義するには、
--rulesオプションを使用します。 - ステータスが
disabledの HBAC ルールをすべてテストするには--disabledオプションを使用します。
ipa hbacrule-find コマンドを使用します。
例30.3 コマンドラインからの HBAC ルールのテスト
rule2 という名前の HBAC ルールを使用して、user1 が sudo を使用して example.com にアクセスできないようにします。
$ ipa hbactest --user=user1 --host=example.com --service=sudo --rules=rule1
---------------------
Access granted: False
---------------------
Not matched rules: rule1例30.4 コマンドラインからの複数の HBAC ルールのテスト
$ ipa hbactest --user=user1 --host=example.com --service=sudo --rules=rule1 --rules=rule2
--------------------
Access granted: True
--------------------
Matched rules: rule2
Not matched rules: rule1Matched rulesでは、正常なアクセスを許可するルールを表示します。Not matched rulesはアクセスを拒否するルールを表示します。
30.2.3. HBAC ルールの無効化
注記
allow_all HBAC ルールで上書きされないようにするには allow_all を無効にする必要があります。
- IdM web UI (「Web UI: HBAC ルールの無効化」を参照)
- コマンドライン (「コマンドライン: HBAC ルールの無効化」を参照)
Web UI: HBAC ルールの無効化
- → → を選択します。
- 無効化する HBAC ルールを選択して をクリックします。

図30.6 allow_all の HBAC ルールの無効化
コマンドライン: HBAC ルールの無効化
ipa hbacrule-disable コマンドを使用します。たとえば、allow_all ルールを無効にするには、以下を実行します。
$ ipa hbacrule-disable allow_all
------------------------------
Disabled HBAC rule "allow_all"
------------------------------
Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.