Yura YuLife

ITエンジニアの覚え書き。

Rundeckでユーザの追加とプロジェクトへのアクセス権限の設定

Rundeckのデフォルトユーザはadminのみです。管理者が1人の場合はadminのみで十分ですが、複数人で管理する場合は適切な権限を付与するべきです。

そこで、特定のプロジェクトのみ閲覧・編集できるユーザを作成する場合は、設定ファイルを追加・編集することで対応できます。

この記事ではdeveloperというユーザを作成し、SomeProjectOtherProjectに対して全権限を設定する場合の手順を説明します。

動作環境

  • Ubuntu 14.04 LTS
  • Rundeck 2.6.2

ユーザの追加

developユーザを追加し、ログインできるようにします。

$ sudo vi /etc/rundeck/realm.properties

#
# This sets the default user accounts for the Rundeck app
#
admin:admin,user,admin,architect,deploy,build
# 以下の行を追記
# ID: developer, PW: devpass の一般ユーザを作成
developer:devpass,user

上記設定ではパスワードが平文になっていますが、以下の手順でMD5のハッシュにすることも可能です。

$ sudo java -cp /var/lib/rundeck/bootstrap/jetty-all-7.6.0.v20120127.jar org.eclipse.jetty.util.security.Password developer devpass
devpass
OBF:1vn41vu91vo41xfj1vmy1vv11vny
MD5:dc067f8a150df19383bc33d7ac9032f7
CRYPT:de6e61/yPOdQg

$ sudo vi /etc/rundeck/realm.properties

# 平文ではなくハッシュ値のパスワードを登録
developer: MD5:dc067f8a150df19383bc33d7ac9032f7,user

特定プロジェクトへのアクセスを許可

Rundeckは/etc/rundeck/以下の*.aclpolicyファイルを読んでいるので、今回はdeveloperユーザ用のaclpolicyファイルを追加します。

$ sudo vi /etc/rundeck/developer.aclpolicy

# developerユーザのプロジェクト毎のアクセス権限の設定
description: Project settings for developer user
context:
  project: 'SomeProject|OtherProject' # SomeProjectとOtherProjectの2プロジェクトに対する権限の設定
# 上記プロジェクトに関する全権限を許可
for:
  resource:
    - allow: '*'
  adhoc:
    - allow: '*'
  job:
    - allow: '*'
  node:
    - allow: '*'
by:
    username: developer

---

# developerユーザのrundeck全般のアクセス権限
description: Rundeck settings for developer user
context:
  application: 'rundeck'
for:
  resource:
    - equals:
        kind: project
      deny: [create]  # プロジェクトの作成は禁止
    - equals:
        kind: system
      deny: [read]    # システム情報の閲覧禁止
    - equals:
        kind: user
      deny: [admin]   # ユーザ情報の編集禁止
  project:
    - match:
        name: 'SomeProject|OtherProject'  # SomeProjectとOtherProjectの2プロジェクトのみ設定の閲覧可能
      allow: [read]
by:
  username: developer

ブラウザからdeveloperユーザでRundeckにログインし、SomeProjectOtherProjectの2つが表示されたら成功です。

参考URL