12.2.6. PoC 環境で Ansible を使用して IdM ユーザーが IdM クライアントにリモートでアクセスできるようにする


Ansible を使用してホストベースのアクセス制御設定を自動化することは、PoC 環境での Ansible Playbook を使用した複数の IdM ユーザーの追加 で説明されている Web UI 方式を使用するよりも効率的です。

Ansible Playbook を使用して、Identity Management (IdM) にホストベースのアクセス制御 (HBAC) ルールが存在することを確認する方法を説明します。以下の例では、次の方法について説明します。

  • IdM ユーザー idmuser01SSH プロトコルを使用して IdM クライアント client.idm.example.com にリモートでアクセスできるようにします。
  • IdM ユーザー idmuser03SSH プロトコルを使用して IdM クライアント client.idm.example.com にアクセスできないようにします。

前提条件

手順

  1. ~/MyPlaybooks/ ディレクトリーに、必要な HBAC ポリシーを定義した以下の内容を含む Ansible Playbook ファイル ensure-new-hbacrule-present.yml を作成します。

    ---
    - name: Playbook to handle hbacrules
      hosts: ipaserver
    
      tasks:
      # Ensure idmuser01 can access client.idm.example.com via the sshd service
      - freeipa.ansible_freeipa.ipahbacrule:
          ipaadmin_password: Secret123
          name: allow_remote_access
          user: idmuser01
          host: client.idm.example.com
          hbacsvc:
          - sshd
          state: present
      # Ensure allow_all rule is modified so that only admins are members
      - freeipa.ansible_freeipa.ipahbacrule:
          ipaadmin_password: Secret123
          name: allow_all
          group: admins
          usercat: ""

    HBAC ルールがすでに存在し、それを変更するだけの場合は、action オプションを member に設定する必要があります。これを行わないと、Playbook が失敗します。この例のタスク Ensure allow_all rule is modified so that only admins are members (管理者だけがメンバーとなるように allow_all ルールを変更する) は、組み込みのルール allow_all を変更するものです。そのため、action: member を指定する必要があります。

    ヒント

    HBAC 関連の Playbook を最初から作成しなくても済むように、/usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/hbacrule/ ディレクトリー内のサンプル Playbook をコピーして変更できます。

    これらのサンプルは、freeipa_hbacsvcfreeipa_hbacsvcgroup、および freeipa_hbacrule モジュールに対応しています。これらのモジュールの README ファイルは、/usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa ディレクトリーにあります。

  2. Playbook を実行します。

    $ ansible-playbook -i inventory ensure-new-hbacrule-present.yml

検証

  1. IdM admin として IdM Web UI にログインします。Password フィールドに Secret123 と入力します。
  2. Policy > Host Based Access Control > HBAC Test に移動します。次の表のとおりにテストのパラメーターを選択します。

    Expand
    リスト選択

    WHO

    idmuser03

    ACCESSING

    client.idm.example.com

    VIA SERVICE

    sshd

    RULES

    allow_remote_access

  3. Run Test タブで、Run Test をクリックしてシミュレーションを実行します。ユーザー idmuser03 は HBAC ルールのメンバーではないため、Run Test タブの右側のコンソールに ACCESS DENIED というメッセージが表示されます。
  4. 次の表のとおりにテストのパラメーターを選択します。

    Expand
    リスト選択

    WHO

    idmuser01

    ACCESSING

    client.idm.example.com

    VIA SERVICE

    sshd

    RULES

    allow_remote_access

  5. Run Test タブで、Run Test をクリックしてシミュレーションを実行します。ユーザー idmuser01 は HBAC ルールのメンバーであるため、Run Test タブの右側のコンソールに ACCESS GRANTED というメッセージが表示されます。
  6. ターミナルを開き、ユーザー idmuser03 としてクライアントマシンにログインします。このユーザーはルールのメンバーではないため、接続が失敗します。

    $ ssh idmuser03@client
    (idmuser03@client) Password: RedHat123&
    Connection closed by 172.25.250.11 port 22
  7. ユーザー idmuser01 としてクライアントマシンへのログインを試します。このユーザーはルールのメンバーであるため、接続が成功します。

    $ ssh idmuser01@client
    (idmuser01@client) Password: Password123
    ...output omitted...
    [idmuser01@client /]$*
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る