Red Hat Training

A Red Hat training course is available for RHEL 8

53.3. AD での IdM クライアントの IdM ユーザーへの sudo アクセス許可

Identity Management (IdM) システム管理者は、IdM ユーザーグループを使用して、アクセス許可、ホストベースのアクセス制御、sudo ルール、および IdM ユーザーに対するその他の制御を設定できます。IdM ユーザーグループは、IdM ドメインリソースへのアクセスを許可および制限します。

Active Directory (AD) ユーザー と AD グループ の両方を IdM ユーザーグループに追加できます。これを実行するには、以下を行います。

  1. AD ユーザーまたはグループを 非 POSIX 外部 IdM グループに追加します。
  2. 非 POSIX 外部 IdM グループを IdM POSIX グループに追加します。

その後、POSIX グループの権限を管理することで、AD ユーザーの権限を管理できます。例えば、特定のコマンドの sudo アクセスを、特定の IdM ホストの IdM POSIX ユーザーグループに付与できます。

注記

AD ユーザーグループを、IdM 外部グループにメンバーとして追加することもできます。これにより、1 つの AD レルムにユーザーおよびグループの管理を維持することで、Windows ユーザーのポリシーの定義が容易になります。

重要

IdM の SUDO ルールに AD ユーザーの ID オーバーライドを使用 しない でください。AD ユーザーの ID オーバーライドは、AD ユーザー自体ではなく、AD ユーザーの POSIX 属性のみを表します。

ID オーバーライドをグループメンバーとして追加できます。ただし、この機能は IdM API で IdM リソースを管理するためにのみ使用できます。グループメンバーとして ID オーバーライドを追加する可能性は POSIX 環境に拡張されていないため、sudo またはホストベースのアクセス制御 (HBAC) ルールのメンバーシップには使用できません。

この手順では、ad_users_reboot sudo ルールを作成して、administrator@ad-domain.com AD ユーザーに、idmclient IdM ホストで /usr/sbin/reboot コマンドを実行するパーミッションを付与します。これは通常、root ユーザー用に予約されています。administrator@ad-domain.comad_users_external 非 POSIX グループのメンバーであり、これは ad_users POSIX グループのメンバーでもあります。

前提条件

  • IdM admin Kerberos の チケット許可チケット (TGT) を取得しました。
  • IdM ドメインと ad-domain.com AD ドメインの間にフォレスト間の信頼が存在します。
  • idmclient ホストにローカル 管理者 アカウントが存在しません。管理者 ユーザーがローカルの /etc/passwd ファイルにリストされていません。

手順

  1. administrator@ad-domain メンバーを持つ ad_users_external グループを含む ad_users グループを作成します。

    1. オプション: AD ドメインで対応するグループを作成または選択して、IdM レルムで AD ユーザーを管理するために使用します。複数の AD グループを使用して、それらを IdM 側の異なるグループに追加できます。
    2. ad_users_external グループを作成し、--external オプションを追加して、IdM ドメイン外のメンバーが含まれていることを示します。

      [root@ipaserver ~]# ipa group-add --desc='AD users external map' ad_users_external --external
      -------------------------------
      Added group "ad_users_external"
      -------------------------------
        Group name: ad_users_external
        Description: AD users external map
      注記

      ここで指定する外部グループが、Active Directory セキュリティーグループ ドキュメントで定義されているように、global または universal グループスコープを持つ AD セキュリティーグループであることを確認してください。たとえば、グループスコープが domain local であるため、Domain users または Domain admins AD セキュリティーグループは使用できません。

    3. ad_users グループを作成します。

      [root@ipaserver ~]# ipa group-add --desc='AD users' ad_users
      ----------------------
      Added group "ad_users"
      ----------------------
        Group name: ad_users
        Description: AD users
        GID: 129600004
    4. administrator@ad-domain.com AD ユーザーを外部メンバーとして ad_users_external に追加します。

      [root@ipaserver ~]# ipa group-add-member ad_users_external --external "administrator@ad-domain.com"
       [member user]:
       [member group]:
        Group name: ad_users_external
        Description: AD users external map
        External member: S-1-5-21-3655990580-1375374850-1633065477-513
      -------------------------
      Number of members added 1
      -------------------------

      AD ユーザーは、DOMAIN\user_name または user_name@DOMAIN などの完全修飾名で識別される必要があります。次に、AD ID がユーザーの AD SID にマップされます。同じことが AD グループの追加にも当てはまります。

    5. ad_users_externalad_users にメンバーとして追加します。

      [root@ipaserver ~]# ipa group-add-member ad_users --groups ad_users_external
        Group name: ad_users
        Description: AD users
        GID: 129600004
        Member groups: ad_users_external
      -------------------------
      Number of members added 1
      -------------------------
  2. ad_users のメンバーに、idmclient ホストで /usr/sbin/reboot を実行する権限を付与します。

    1. sudo コマンドの IdM データベースに /usr/sbin/reboot コマンドを追加します。

      [root@idmclient ~]# ipa sudocmd-add /usr/sbin/reboot
      -------------------------------------
      Added Sudo Command "/usr/sbin/reboot"
      -------------------------------------
        Sudo Command: /usr/sbin/reboot
    2. ad_users_reboot という名前の sudo ルールを作成します。

      [root@idmclient ~]# ipa sudorule-add ad_users_reboot
      ---------------------------------
      Added Sudo Rule "ad_users_reboot"
      ---------------------------------
        Rule name: ad_users_reboot
        Enabled: True
    3. /usr/sbin/reboot コマンドを ad_users_reboot ルールに追加します。

      [root@idmclient ~]# ipa sudorule-add-allow-command ad_users_reboot --sudocmds '/usr/sbin/reboot'
        Rule name: ad_users_reboot
        Enabled: True
        Sudo Allow Commands: /usr/sbin/reboot
      -------------------------
      Number of members added 1
      -------------------------
    4. ad_users_reboot ルールを IdM idmclient ホストに適用します。

      [root@idmclient ~]# ipa sudorule-add-host ad_users_reboot --hosts idmclient.idm.example.com
      Rule name: ad_users_reboot
      Enabled: True
      Hosts: idmclient.idm.example.com
      Sudo Allow Commands: /usr/sbin/reboot
      -------------------------
      Number of members added 1
      -------------------------
    5. ad_users グループを ad_users_reboot ルールに追加します。

      [root@idmclient ~]# ipa sudorule-add-user ad_users_reboot --groups ad_users
      Rule name: ad_users_reboot
      Enabled: TRUE
      User Groups: ad_users
      Hosts: idmclient.idm.example.com
      Sudo Allow Commands: /usr/sbin/reboot
      -------------------------
      Number of members added 1
      -------------------------
注記

サーバーからクライアントへの変更の伝播には数分かかる場合があります。

検証手順

  1. ad_users グループの間接メンバーである administrator@ad-domain.comidmclient ホストにログインします。

    $ ssh administrator@ad-domain.com@ipaclient
    Password:
  2. オプションで、administrator@ad-domain.com が実行できる sudo コマンドを表示します。

    [administrator@ad-domain.com@idmclient ~]$ sudo -l
    Matching Defaults entries for administrator@ad-domain.com on idmclient:
        !visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin,
        env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS",
        env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE",
        env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES",
        env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE",
        env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY KRB5CCNAME",
        secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin
    
    User administrator@ad-domain.com may run the following commands on idmclient:
        (root) /usr/sbin/reboot
  3. sudo を使用してマシンを再起動します。プロンプトが表示されたら、administrator@ad-domain.com のパスワードを入力します。

    [administrator@ad-domain.com@idmclient ~]$ sudo /usr/sbin/reboot
    [sudo] password for administrator@ad-domain.com: