18.5. IdM クライアントでのサービスアカウントとしてコマンドを実行する IdM WebUI での sudo ルールの作成

IdM では、RunAs エイリアスsudo ルールを設定し、sudo コマンドを 別のユーザーまたはグループとして実行できます。たとえば、データベースアプリケーションをホストする IdM クライアントがあり、そのアプリケーションに対応するローカルサービスアカウントとしてコマンドを実行する必要があります。

この例を使用して、run_third-party-app_report という名前の IdM WebUI に sudo ルールを作成し、idm_user アカウントが idmclient ホストのサードパーティーの サードパーティーのサービスアカウントとして /opt/third-party-app /bin/report コマンドを実行できるようにします。

前提条件

  • IdM 管理者としてログインしている。
  • IdM で idm_user のユーザーアカウントを作成し、ユーザーのパスワードを作成してそのアカウントのロックを解除している。CLI を使用して新しい IdM ユーザーを追加する方法は、「コマンドラインでユーザーの追加」を参照してください。
  • idmclient ホストにローカルの idm_user アカウントがない。idm_user ユーザーは、ローカルの /etc/passwd ファイルには表示されません。
  • third-party-app という名前のカスタムアプリケーションが idmclient ホストにインストールされている。
  • third-party-app アプリケーションの report コマンドが /opt/third-party-app/bin/report ディレクトリーにインストールされている。
  • thirdpartyapp という名前のローカルサービスアカウントを作成し、サードパーティーのアプリケーション用のコマンドを実行する。

手順

  1. /opt/third-party-app/bin/report コマンドを sudo コマンドの IdM データベースに追加します。

    1. PolicySudoSudo Commands の順に移動します。
    2. 右上にある Add をクリックして、Add sudo command ダイアログボックスを開きます。
    3. /opt/third-party-app/bin/report コマンドを入力します。

      A screenshot of a pop-up window labeled "Add sudo command." There is a required field labeled "Sudo command" with contents "/opt/third-party-app/bin/report". A "Description" field is empty. The bottom-right of the window has four buttons: "Add" - "Add and Add Another" - "Add and Edit" - "Cancel".
    4. Add をクリックします。
  2. 新しい sudo コマンドエントリーを使用して、新しい sudo ルールを作成します。

    1. PolicySudoSudo ルールに移動します。
    2. 右上にある Add をクリックして、Add sudo rule ダイアログボックスを開きます。
    3. sudo ルールの名前を入力します( run_third-party-app_report )。

      A screenshot of a pop-up window labeled "Add sudo rule." There is a required field labeled "Rule name" with contents "run_third-party-app_report". The bottom-right of the window has four buttons: "Add" - "Add and Add Another" - "Add and Edit" - "Cancel".
    4. Add and Edit をクリックします。
    5. ユーザーを指定します。

      1. Who セクションで、ラジオボタン Specified Users and Groups を選択します。
      2. User category the rule applies to サブセクションで Add をクリックして Add users into sudo rule "run_third-party-app_report" ダイアログボックスを開きます。
      3. Add users into sudo rule "run_third-party-app_report" ダイアログボックスにある Available 列で、idm_user チェックボックスを選択し、Prospective 列に移動します

        A screenshot of a pop-up window labeled "Add users into sudo rule." You can select users from an Available list on the left and move them to a Prospective column on the right. The bottom-right of the window has two buttons: "Add" - "Cancel".
      4. Add をクリックします。
    6. ホストを指定します。

      1. Access this host セクションで、Specified Hosts and Groups ラジオボタンを確認します。
      2. Host category this rule applies to サブセクションで Add をクリックして Add hosts into sudo rule "run_third-party-app_report" ダイアログボックスを開きます。
      3. Add hosts into sudo rule "run_third-party-app_report" ダイアログボックスにある Available 列で、idmclient .idm.example.com チェックボックスを選択し、Prospective 列に移動します

        A screenshot of a pop-up window labeled "Add hosts into sudo rule." You can select hosts from an Available list on the left and move them to a Prospective column on the right. The bottom-right of the window has two buttons: "Add" - "Cancel".
      4. Add をクリックします。
    7. コマンドを指定します。

      1. Run Commands セクションの Command category the rule applies to サブセクションで、Specified Commands and Groups ラジオボタンを確認します。
      2. Sudo Allow Commands サブセクションで Add をクリックし、Add allow sudo commands into sudo rule "run_third-party-app_report" ダイアログボックスを開きます。
      3. Add allow sudo commands into sudo rule "run_third-party-app_report" ダイアログボックスにある Available 列で、/opt/third-party-app/bin/report チェックボックスを選択し、Prospective 列に移動します

        A screenshot of a pop-up window labeled "Add allow sudo commands into sudo rule." You can select sudo commands from an Available list on the left and move them to a Prospective column on the right. The bottom-right of the window has two buttons: "Add" - "Cancel".
      4. Add をクリックして、run_third-party-app_report ページに戻ります。
    8. RunAs ユーザーを指定します。

      1. As Whom セクションで、Specified Users and Groups ラジオボタンを確認します。
      2. RunAs Users サブセクションで Add をクリックし、Add RunAs ユーザーを sudo ルール "run_third-party-app_report" ダイアログボックスを開きます。
      3. Add RunAs ユーザーを sudo ルール "run_third-party-app_report" ダイアログボックスで、External ボックスに サードパーティーのサービスアカウント を入力し、Prospective 列に移動します

        A screenshot of a dialog box where you can specify the "thirdpartyapp" service account as an external user.
      4. Add をクリックして、run_third-party-app_report ページに戻ります。
    9. 左上にある Save をクリックします。

新しいルールはデフォルトで有効になります。

図18.2 sudo ルールの詳細

A screenshot of an overview of the sudo rule that was added. The "Who" section has an entry for "idm_user." The "Access this host" section has "idmclient.idm.example.com." The "Run Commands" section has the "/opt/third-party-app/bin/report" command. The "As Whom" section lists the "thirdpartyapp" account.
注記

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

検証手順

  1. idmclient ホストに idm_user アカウントとしてログインします。
  2. 新しい sudo ルールをテストします。

    1. idm_user アカウントが実行可能な sudo ルールを表示します。

      [idm_user@idmclient ~]$ sudo -l
      Matching Defaults entries for idm_user@idm.example.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 idm_user@idm.example.com may run the following commands on idmclient:
          (thirdpartyapp) /opt/third-party-app/bin/report
    2. report コマンドを thirdpartyapp サービスアカウントとして実行します。

      [idm_user@idmclient ~]$ sudo -u thirdpartyapp /opt/third-party-app/bin/report
      [sudo] password for idm_user@idm.example.com:
      Executing report...
      Report successful.