結論
- CLI で作業する必要はありません
具体的な手順
1. 右上の歯車のメニューから Access Control
を選びます
2. + Create ACL Policy
をクリックします
3. Create System ACL Policy
に遷移します
4. Name
を決めます
ここはユーザ名やグループ名などを含んだ分かりやすい名前にすべきでしょう(後から変更できます)。
5. 設定内容を書く
設定内容を YAML で書いていきます。書式については 公式ドキュメント を参考にしましょう。最初から設定されている admin
の内容がテンプレート的に参考になるので以下に貼り付けます。
description: Admin, all access. context: project: '.*' # all projects for: resource: - allow: '*' # allow read/create all kinds adhoc: - allow: '*' # allow read/running/killing adhoc jobs job: - allow: '*' # allow read/write/delete/run/kill of all jobs node: - allow: '*' # allow read/run for all nodes by: group: admin --- description: Admin, all access. context: application: 'rundeck' for: resource: - allow: '*' # allow create of projects project: - allow: '*' # allow view/admin of all projects project_acl: - allow: '*' # allow admin of all project-level ACL policies storage: - allow: '*' # allow read/create/update/delete for all /keys/* storage content by: group: admin
by:
の 部分の username
または group
を適用したいユーザ名またはグループ名に書き換えるととりあえずは動きます(権限は全開になりますが)。具体的な書き方については公式ドキュメントの内容例をそのまま貼り付けます。
by: username: 'bob' by: #using a regular expression username: 'dev\d+' by: group: [test,qa,prod] by: #using a regular expression group: 'dev_team_(alpha|beta|gamma)' by: username: - simon - frank
注意するところとしては、context:
のところで application: 'rundeck'
と指定することが必須です。これさえ指定していればとりあえずはざっくりとした権限の設定はできます。例えば、以下のように書くと、group
が hoge
の人たちと username
が fuga
の人に全権限が与えられます。
description: SAMPLE NO ACL DESU context: application: 'rundeck' for: resource: - allow: '*' project: - allow: '*' project_acl: - allow: '*' storage: - allow: '*' by: group: hoge username: fuga
5. 設定内容を確認するために設定したユーザでログインしてみる
ここまでの内容が正しく設定できていれば正しく権限が設定されているはずです。ログインをして確かめてみてください。再起動は不要ですが、ログイン状態の場合は一度ログアウトして再度ログインします。
X. プロジェクトメニューの中の Access Control メニューについて
プロジェクトメニューの中にある Access Control
メニューは現時点では無効とのことです。公式ドキュメントには以下のようにあります。
The YAML format has changed since version 1.2 to address several issues: Access control on resources other than Jobs can now be declared Project level access control is now supported “Deny” rules can now be declared Application level access control is also supported, replacing the Role mapping The Rundeck server no longer uses role-mapping and instead defers to the aclpolicy for all authorizations.
したがって、YAML での権限設定は、トップメニューの YAML の中ですべて設定しましょう。
補足
Rundeck 3 については粒度を細かくして記事にしているので、他の記事 も参考にするとよいかもしれません。
あと、困ったら何はともあれ 公式ドキュメント です。