47.2. CLI を使用した IdM ドメインでの HBAC ルールの設定
ホストベースのアクセス制御用にドメインを設定するには、次の手順を実行します。
- IdM CLI で HBAC ルールを作成 します。
- 新しい HBAC ルールをテスト します。
-
デフォルトの
allow_all
HBAC ルールを無効化 します。
カスタム HBAC ルールを作成する前に、allow_all
ルールを無効にしないでください。カスタムルールを作成する前にこれを無効にすると、すべてのユーザーのすべてのホストへのアクセスが拒否されます。
47.2.1. IdM CLI での HBAC ルールの作成
IdM CLI を使用してホストベースのアクセス制御用にドメインを設定するには、以下の手順に従います。この例では、任意のサービスを使用してドメイン内のすべてのシステムにアクセスする権限を、1 人のユーザー sysadmin に付与する方法を説明します。
IdM は、ユーザーのプライマリーグループを、IdM グループオブジェクトへのリンクの代わりに、gidNumber
属性の数値として保存します。このため、HBAC ルールで参照できるのはユーザーの補助グループだけで、プライマリーグループは参照できません。
前提条件
- ユーザー sysadmin が IdM に存在する。
手順
ipa hbacrule-add
コマンドを使用して、ルールを追加します。$ ipa hbacrule-add Rule name: rule_name --------------------------- Added HBAC rule "rule_name" --------------------------- Rule name: rule_name Enabled: TRUE
sysadmin ユーザーのみに HBAC ルールを適用するには、
ipa hbacrule-add-user
コマンドを使用します。$ ipa hbacrule-add-user --users=sysadmin Rule name: rule_name Rule name: rule_name Enabled: True Users: sysadmin ------------------------- Number of members added 1 -------------------------
注記すべてのユーザーに HBAC ルールを適用するには、
ipa hbacrule-mod
コマンドを使用して、all ユーザーカテゴリー--usercat=all
を指定します。HBAC ルールが個々のユーザーまたはグループに関連付けられていると、ipa hbacrule-mod --usercat=all
は失敗します。この場合は、ipa hbacrule-remove-user
コマンドを使用して、ユーザーとグループを削除します。ターゲットホストを指定します。すべてのホストに 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 Users: sysadmin
注記HBAC ルールが個々のホストまたはグループに関連付けられていると、
ipa hbacrule-mod --hostcat=all
は失敗します。この場合は、ipa hbacrule-remove-host
コマンドを使用して、ホストとグループを削除します。ターゲットの HBAC サービスを指定します。すべてのサービスに HBAC ルールを適用するには、
ipa hbacrule-mod
コマンドを使用して、all サービスカテゴリーを指定します。$ ipa hbacrule-mod rule_name --servicecat=all ------------------------------ Modified HBAC rule "rule_name" ------------------------------ Rule name: rule_name Host category: all Service category: all Enabled: True Users: sysadmin
HBAC ルールが個々のサービスまたはグループに関連付けられていると、ipa hbacrule-mod --servicecat=all
は失敗します。この場合は、ipa hbacrule-remove-service
コマンドを使用して、サービスとグループを削除します。
検証
HBAC ルールが正しく追加されたことを確認します。
-
ipa hbacrule-find
コマンドを使用して、HBAC ルールが IdM に存在することを確認します。 -
ipa hbacrule-show
コマンドを使用して、HBAC ルールのプロパティーを確認します。
-
関連情報
- 詳細は、ipa hbacrule-add --help を参照してください。
- カスタム HBAC サービス用の HBAC サービスエントリーの追加 を参照してください。
- HBAC サービスグループの追加 を参照してください。
47.2.2. IdM CLI での HBAC ルールのテスト
IdM では、シミュレートシナリオを使用して、さまざまな状況で HBAC 設定をテストできます。シミュレートしたテストを実行することで、実稼働環境に HBAC ルールをデプロイする前に、設定ミスやセキュリティーリスクを見つけることができます。
実稼働環境で使用する前に、カスタム HBAC ルールを常にテストしてください。
IdM では、信頼された Active Directory (AD) ユーザーに対する HBAC ルールの影響については検証されない点に注意してください。IdM LDAP ディレクトリーには AD データが保存されないため、IdM は、HBAC シナリオをシミュレートするときに AD ユーザーのグループメンバーシップを解決できません。
手順
ipa hbactest
コマンドを使用して、HBAC ルールをテストします。1 つの HBAC ルールをテストする方法と、複数の HBAC ルールをテストする方法があります。1 つの HBAC ルールをテストするには、以下を実行します。
$ ipa hbactest --user=sysadmin --host=server.idm.example.com --service=sudo --rules=rule_name --------------------- Access granted: True --------------------- Matched rules: rule_name
複数の HBAC ルールをテストするには、以下を実行します。
sysadmin にすべてのホストで
ssh
の使用のみを許可する 2 番目のルールを追加します。$ ipa hbacrule-add --hostcat=all rule2_name $ ipa hbacrule-add-user --users sysadmin rule2_name $ ipa hbacrule-add-service --hbacsvcs=sshd rule2_name Rule name: rule2_name Host category: all Enabled: True Users: admin HBAC Services: sshd ------------------------- Number of members added 1 -------------------------
次のコマンドを実行して、複数の HBAC ルールをテストします。
$ ipa hbactest --user=sysadmin --host=server.idm.example.com --service=sudo --rules=rule_name --rules=rule2_name -------------------- Access granted: True -------------------- Matched rules: rule_name Not matched rules: rule2_name
出力において、Matched rules には正常なアクセスを許可したルールがリスト表示され、Not matched rules にはアクセスを妨げたルールがリスト表示されます。--rules
オプションを指定しない場合は、すべてのルールが適用されることに注意してください。--rules
を使用すると、各ルールを個別にテストするのに役立ちます。
関連情報
-
詳細は、
ipa hbactest --help
を参照してください。
47.2.3. IdM CLI での HBAC ルールの無効化
HBAC ルールを無効にすることはできますが、ルールは非アクティブ化されるだけで、削除されません。HBAC ルールを無効にした場合は、後で再度有効にできます。
カスタム HBAC ルールを初めて設定する場合は、HBAC ルールを無効にすると便利です。新しい設定がデフォルトの low_all
HBAC ルールで上書きされないようにするには、low_all
を無効にする必要があります。
手順
ipa hbacrule-disable
コマンドを使用します。たとえば、allow_all
ルールを無効にするには、次のコマンドを実行します。$ ipa hbacrule-disable allow_all ------------------------------ Disabled HBAC rule "allow_all" ------------------------------
関連情報
-
詳細は、
ipa hbacrule-disable --help
を参照してください。