Red Hat Training

A Red Hat training course is available for RHEL 8

35.10. Ansible を使用して、IdM クライアントへの SSH 鍵ログインを有効にする ID ビューを設定する

この手順では、idoverrideuser ansible-freeipa モジュールを使用して、IdM ユーザーが特定の SSH 鍵を使用して特定の IdM クライアントにログインできるようにします。この手順では、idm_user という名前の IdM ユーザーが SSH 鍵を使用して host1.idm.example.com という名前の IdM クライアントにログインできるようにする ID ビューの例を使用します。

注記

この ID ビューは、特定の HBAC ルールを強化するために使用できます。

前提条件

  • コントロールノードでは、

    • Ansible バージョン 2.14 以降を使用している。
    • ansible-freeipa パッケージをインストールしている。
    • ~/MyPlaybooks/ ディレクトリーに、IdM サーバーの完全修飾ドメイン名 (FQDN) を使用して Ansible インベントリーファイル を作成した。
    • RHEL 9.4 以降を使用している。
    • secret.yml Ansible vault に ipaadmin_password が保存されている。
  • idm_user の SSH 公開鍵にアクセスできる。
  • idview_for_host1 ID ビューが存在する。
  • ターゲットノード (ansible-freeipa モジュールが実行されるノード) が、IdM クライアント、サーバー、またはレプリカとして IdM ドメインに含まれている。

手順

  1. 次の内容を含む Ansible Playbook ファイル ensure-idoverrideuser-can-login-with-sshkey.yml を作成します。

    ---
    - name: Playbook to manage idoverrideuser
      hosts: ipaserver
      become: false
      gather_facts: false
      vars_files:
      - /home/user_name/MyPlaybooks/secret.yml
    
      tasks:
      - name: Ensure test user idm_user is present in idview idview_for_host1 with sshpubkey
        ipaidoverrideuser:
          ipaadmin_password: ”{{ ipaadmin_password }}"
          idview: idview_for_host1
          anchor: idm_user
          sshpubkey:
          - ssh-rsa AAAAB3NzaC1yc2EAAADAQABAAABgQCqmVDpEX5gnSjKuv97Ay ...
      - name: Ensure idview_for_host1 is applied to host1.idm.example.com
        ipaidview:
          ipaadmin_password:  ”{{ ipaadmin_password }}"
          name: idview_for_host1
          host: host1.idm.example.com
          action: member
  2. Playbook を実行します。Playbook ファイル、secret.yml ファイルを保護するパスワードを格納するファイル、およびインベントリーファイルを指定します。

    $ ansible-playbook --vault-password-file=password_file -v -i <path_to_inventory_directory>/inventory <path_to_playbooks_directory>/ensure-idoverrideuser-can-login-with-sshkey.yml
  3. [オプション] root の認証情報を持っている場合は、新しい設定を host1.idm.example.com システムにすぐに適用できます。

    1. システムに root として SSH 接続します。

      $ ssh root@host1
      Password:
    2. SSSD キャッシュを削除します。

      root@host1 ~]# sss_cache -E
    3. SSSD デーモンを再起動します。

      root@host1 ~]# systemctl restart sssd

検証

  • 公開鍵を使用して host1SSH 接続します。

    [root@r8server ~]# ssh -i ~/.ssh/id_rsa.pub idm_user@host1.idm.example.com
    
    Last login: Sun Jun 21 22:34:25 2023 from 192.168.122.229
    [idm_user@host1 ~]$

出力により、正常にログインしたことが確認されます。

関連情報

  • ansible-freeipa アップストリームドキュメントの idoverrideuser モジュール