47.2. CLI を使用した IdM ドメインでの HBAC ルールの設定
ホストベースのアクセス制御用にドメインを設定するには、次の手順を実行します。
- IdM CLI で HBAC ルールを作成します。
- 新しい HBAC ルールをテストします。
-
デフォルトの
allow_allHBAC ルールを無効にします。
カスタム HBAC ルールを作成する前に、allow_all ルールを無効にしないでください。カスタムルールを作成する前にこれを無効にすると、すべてのユーザーのすべてのホストへのアクセスが拒否されます。
47.2.1. IdM CLI での HBAC ルールの作成 リンクのコピーリンクがクリップボードにコピーされました!
IdM CLI を使用してホストベースのアクセス制御用にドメインを設定するには、以下の手順に従います。この例では、任意のサービスを使用してドメイン内のすべてのシステムにアクセスする権限を、1 人のユーザー sysadmin に付与する方法を説明します。
IdM は、ユーザーのプライマリーグループを、IdM グループオブジェクトへのリンクの代わりに、gidNumber 属性の数値として保存します。このため、HBAC ルールで参照できるのはユーザーの補助グループだけで、プライマリーグループは参照できません。
前提条件
- ユーザー sysadmin が IdM に存在する。
手順
ipa hbacrule-addコマンドを使用して、ルールを追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow sysadmin ユーザーのみに HBAC ルールを適用するには、
ipa hbacrule-add-userコマンドを使用します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記すべてのユーザーに HBAC ルールを適用するには、
ipa hbacrule-modコマンドを使用して、all ユーザーカテゴリー--usercat=allを指定します。HBAC ルールが個々のユーザーまたはグループに関連付けられていると、ipa hbacrule-mod --usercat=allは失敗します。この場合は、ipa hbacrule-remove-userコマンドを使用して、ユーザーとグループを削除します。ターゲットホストを指定します。すべてのホストに HBAC ルールを適用するには、
ipa hbacrule-modコマンドを使用して、all ホストカテゴリーを指定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記HBAC ルールが個々のホストまたはグループに関連付けられていると、
ipa hbacrule-mod --hostcat=allは失敗します。この場合は、ipa hbacrule-remove-hostコマンドを使用して、ホストとグループを削除します。ターゲットの HBAC サービスを指定します。すべてのサービスに HBAC ルールを適用するには、
ipa hbacrule-modコマンドを使用して、all サービスカテゴリーを指定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
HBAC ルールが個々のサービスまたはグループに関連付けられていると、ipa hbacrule-mod --servicecat=all は失敗します。この場合は、ipa hbacrule-remove-service コマンドを使用して、サービスとグループを削除します。
検証
HBAC ルールが正しく追加されたことを確認します。
-
ipa hbacrule-findコマンドを使用して、HBAC ルールが IdM に存在することを確認します。 -
ipa hbacrule-showコマンドを使用して、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
$ ipa hbactest --user=sysadmin --host=server.idm.example.com --service=sudo --rules=rule_name --------------------- Access granted: True --------------------- Matched rules: rule_nameCopy to Clipboard Copied! Toggle word wrap Toggle overflow 複数の HBAC ルールをテストするには、以下を実行します。
sysadmin にすべてのホストで
sshの使用のみを許可する 2 番目のルールを追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、複数の HBAC ルールをテストします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力において、Matched rules には正常なアクセスを許可したルールがリスト表示され、Not matched rules にはアクセスを妨げたルールがリスト表示されます。
--rulesオプションを指定しない場合は、すべてのルールが適用されることに注意してください。--rulesを使用すると、各ルールを個別にテストするのに役立ちます。
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
$ ipa hbacrule-disable allow_all ------------------------------ Disabled HBAC rule "allow_all" ------------------------------Copy to Clipboard Copied! Toggle word wrap Toggle overflow