前提
この記事は、バージョン 2020.10 を前提としています。
記事執筆時点(2022/4/25)の最新バージョンは 2021.10 ですが、大きな差はないと思います。
また、本記事の内容はあくまでも一例であり、実際の運用に合わせた設計やテストを行ってください。
はじめに
複数のUiPathロボット専用端末(Unattended)を用意し、モダンフォルダー構成のOrchestratorで管理をしています。
RPAが本番稼働するまでには、とてもざっくりですが、以下のフェーズがあると思います。
- 環境構築(Orchestratorとロボット)
- シナリオの開発、テスト
- 稼働監視などの本番運用
RPA化の規模にもよりますが、開発チームは開発に関することだけ、運用チームは運用に関することだけなど、それぞれのユーザーにロールを割り当てるにはどうしたら良いかを考えてみようと思います。
既定のロール(ビルトインロール)
モダンフォルダーには、以下のロールが既定で存在します。
(以下のマニュアルも参照してください)
Tenant Administrator
Allow to be Folder Administrator
Folder Administrator
Allow to be Automation User
Automation User
Allow to be XXX は その下にある XXX とセットのロールになっていて、Allow to be XXX はユーザーに直接設定し、XXX はフォルダー毎に設定するものです。(このあたりはマニュアルを参照してください)
ロール名の通り、デフォルトでは「テナントの管理者」「フォルダーの管理者」「ロボット」という権限しかありません。
Orchestratorの運用例を考えてみる
それでは、Orchestratorをどのように使うのか、少し具体的に考えてみます。
基本的には、「管理者」と「開発者」を明確に分けるようなことをしたいと思います。
想定するロール
例として、以下のような運用(ロールの割り当て)を考えてみます。
テナントの管理者
- テナントのことは何でもできる人。
- ロボットを作ったり、ライセンスの管理をする人。
フォルダーの管理者
- フォルダーのことは何でもできる人。
- プロセス定義や、ジョブの定義・スケジューリングなどを行う人。
開発者
- 開発だけする人。
- プロセスやジョブの定義はフォルダーの管理者が行うので、開発者はしない(させない)。
- 当然、ロボットを作ったりライセンス管理なんてする(させる)わけがない。
- アセットは自由に定義したい。
さて困った
テナントの管理者は、Tenant Administrator
。
フォルダーの管理者は、Allow to be Folder Administrator
と Folder Administrator
を付けてあげればいいですね。
さて、開発者はどうしましょうか。
Tenant/Folder Administrator
を付けるのは論外として、Automation User
にはアセットを編集する権限が付いていませんし、ジョブの作成権限が付いているのでOrchestratorからジョブ実行できてしまいます。
ロールを作ってみよう
ロールは、「テナントに対するロール」と「フォルダーに対するロール」を分けて設定する必要があります。
そして、同じロール名に対して「テナントに対するロール」と「フォルダーに対するロール」を一緒に設定することは推奨されていません。
ビルトインロールでも、Allow to be Automation User
はフォルダーに対するロール、Automation User
はフォルダーに対するロールが設定されています。
開発者の前提
開発者は、以下のことを行える前提とします。
Studioで個別のプロセスの開発/テストを行う。
開発したプロセスをOrchestratorにパブリッシュする。
権限を持っているフォルダーに対しては、自由にアセットの設定を行える。
以下のことはできないようにします。
Orchestratorからジョブの実行指示はしない。
実行環境に係るような設定(ロボットやマシン、ユーザーやフォルダーの設定など)はしない。
これを満たせるようなロールを作ってみます。
開発者のフォルダーに対するロール
Allow to be Developer
というロールを作成します。
ロール | 権限 | 備考 |
---|---|---|
アラート | V--- |
アラートを参照するために必要です。 |
ライブラリ | V--- |
実行に必要な各種ライブラリを参照するために必要です。 |
パッケージ | V-C- |
プロセスをOrchestratorにパブリッシュするために必要です。 |
※ V
=表示、E
=編集、C
=作成、D
=削除 です。
開発者のテナントに対するロール
Developer
というロールを作成します。
ロール | 権限 | 備考 |
---|---|---|
アセット | VECD |
アセットの定義を行うために必要です。 |
※ V
=表示、E
=編集、C
=作成、D
=削除 です。
おわりに
ロールはもっとたくさんあるのですが、全部書くと長くなってしまうため最小限にとどめました。
今回、例題であげた「開発者」というロールは、このような設定で実現できると思います。
「開発者」でもプロセスの定義をしたい!などもあると思いますので、必要に応じて権限を追加しましょう。