9.6. IdM クライアントでサービスアカウントとしてコマンドを実行する IdM WebUI での sudo ルールの作成
IdM では、RunAs エイリアス を使用して、sudo ルールを設定し、別のユーザーまたはグループとして sudo コマンドを実行できます。たとえば、データベースアプリケーションをホストする IdM クライアントが存在し、そのアプリケーションに対応するローカルサービスアカウントとしてコマンドを実行する必要があるとします。
この例を使用して、run_third-party-app_report という IdM WebUI に sudo ルールを作成し、idm_user アカウントが idmclient ホストで thirdpartyapp サービスアカウントとして /opt/third-party-app/bin/report コマンドを実行できるようにします。
前提条件
- IdM 管理者としてログインしている。
-
IdM で
idm_userのユーザーアカウントを作成し、ユーザーのパスワードを作成してそのアカウントのロックを解除している。CLI を使用して新しい IdM ユーザーを追加する方法の詳細は、コマンドラインを使用したユーザーの追加 を参照してください。 -
idmclientホストにローカルidm_userアカウントが存在しない。idm_userユーザーは、ローカルの/etc/passwdファイルには表示されません。 -
idmclientホストに、third-party-appという名前のカスタムアプリケーションがインストールされている。 -
third-party-appアプリケーションのreportコマンドが、/opt/third-party-app/bin/reportディレクトリーにインストールされている。 -
third-party-appアプリケーションにコマンドを実行するために、thirdpartyappという名前のローカルサービスアカウントを作成している。
手順
/opt/third-party-app/bin/reportコマンドを、sudoコマンドの IdM データベースに追加します。- Policy>Sudo>Sudo Commands に移動します。
- 右上にある Add をクリックして、Add sudo command ダイアログボックスを開きます。
-
コマンド
/opt/third-party-app/bin/reportを入力します。 - Add をクリックします。
新しい
sudoコマンドエントリーを使用して、新しいsudoルールを作成します。-
Policy
Sudo Sudo ルールに移動します。 - 右上にある Add をクリックして、Add sudo rule ダイアログボックスを開きます。
-
sudoルールの名前 run_third-party-app_report を入力します。 - Add and Edit をクリックします。
ユーザーを指定します。
- Who セクションで、Specified Users and Groups のラジオボタンを選択します。
- User セクションで Add をクリックし、Add users into sudo rule "run_third-party-app_report" ダイアログボックスを開きます。
- Available 列で、idm_user チェックボックスをオンにして、Prospective 列に移動します。
- Add をクリックします。
ホストを指定します。
- Access this host セクションで、Specified Hosts and Groups ラジオボタンを確認します。
- Hosts セクションで Add をクリックし、Add hosts into sudo rule "run_third-party-app_report" ダイアログボックスを開きます。
- Available 列で、idmclient.idm.example.com チェックボックスをオンにして、Prospective 列に移動します。
- Add をクリックします。
コマンドを指定します。
- Run Commands セクションで、Specified Commands and Groups ラジオボタンをオンにします。
- Sudo Allow Commands セクションで、Add をクリックして、Add allow sudo commands into sudo rule "run_third-party-app_report" ダイアログボックスを開きます。
-
Available 列で、
/opt/third-party-app/bin/reportチェックボックスをオンにして、Prospective 列に移動します。 - Add をクリックして、run_third-party-app_report のページに戻ります。
RunAs ユーザーを指定します。
- As Whom で、指定したユーザーとグループ のラジオボタンを確認します。
- RunAs Users セクションで Add をクリックし、Add RunAs users into sudo rule "run_third-party-app_report" ダイアログボックスを開きます。
-
External ボックスに
thirdpartyappサービスアカウントを入力し、Prospective 列に移動します。 - Add をクリックして、run_third-party-app_report のページに戻ります。
- 左上隅にある Save をクリックします。
-
Policy
新しいルールはデフォルトで有効になります。
サーバーからクライアントへの変更の伝播には数分かかる場合があります。
検証
-
idmclientホストにidm_userアカウントとしてログインします。 新しい sudo ルールをテストします。
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/reportreportコマンドを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.