Rundeckでリモートサーバにsudoでコマンドを実行させる(sudo実行時にパスワード入力なし)
Pocket

Rundeckでリモートサーバに対して、sudoを用いた処理をさせたいことがある。
ジョブ実行ユーザ(今回の例だとrundeckユーザ)には鍵認証しか許可させない(+authorized_keysで接続元のIPをRundeckサーバに制限)するなどで接続時のセキュリティは担保できるので、sudo実行時にパスワードはいらない前提とすると、以下のように「/etc/sudoers」に追記してやればよい。
さすがになんでもsudo実行できるとちょっと問題なので、sudoで実行できるプログラムは制限してやればよい。

Sponsored Links

●/etc/sudoers

rundeck ALL=(ALL) NOPASSWD: <sudoで実行を許可するプログラムのpath(カンマ区切り。制限しないならALL)>
Defaults:rundeck !requiretty # これがないとttyがないといわれてエラーになる

 

なお、sudo実行時にパスワード入力が必要な場合、ノードの記述をするとこで「sudo-password-option」とか指定することで一応対応できる(シークレット入力可)ようなのだが、以下の理由で今回はいらないかなと考えた。

  • authorized_keysの設定でアクセス元制限しているから、鍵が漏れてもそのIPアドレスからしかアクセスできない
  • 「/etc/sudoers」でsudo実行できるコマンドを制限してるため、なんでもかんでもsudo実行させることはできない

 

ジョブ専用ユーザでなく、人間が利用するユーザと併用なら上記のような対応が必要なので、そのうち検証だけしてみようかな。

 

Pocket

Written by blacknon

インフラ系のSE。一時期はプログラマ。 仮想化とオープンソースに興味あり。一日中寝てたい今日このごろ。 スペインとかで働きたいなぁ…(シエスタがあるので)

Leave a Comment

メールアドレスが公開されることはありません。