【UiPath】Studioにガバナンスポリシーを適用してみる

# はじめに
UiPathでは開発者が開発基準に準拠し、特定のルールを遵守するように、組織は Studio の機能をコントロールするガバナンス ポリシーを適用するための仕組みが提供されています。
本記事では、ガバナンスポリシーの適用法について説明します。

# ガバナンスポリシーでどんなことが制御できるの？
Studioの「設定」メニューで指定できる内容や、ワークフローアナライザー（適用するルール、警告レベル等）を制御することができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3322296/002243a7-ae2f-ee3e-9a11-1655f4187492.png)

その他、下記のようなStudioから設定できない内容も制御することができます。
* プロジェクト新規作成時の対応OSの初期値
* Windowsレガシプロジェクトを開くと表示されるWindowsへの移行注意文言の表示（Studio 2022.10.5から可能）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3322296/f6a6cfcf-af3c-d6d1-2121-66652867d03a.png)

制御できる項目は多岐にわたりますので、詳細は公式ドキュメントを確認ください。

https://docs.uipath.com/ja/studio/standalone/2022.10/user-guide/governance

# ガバナンスポリシーの配布方法
次の方法でガバナンスポリシーを配布することができます。
優先度は1から高くなっており、例えば、Automation Opsとレジストリの両方でガバナンスポリシーを適用した場合、優先度が高いAutomation Opsの設定が利用されます。

| 優先度 | 配布方法 | Automation Cloud | Automation Suite | オンプレミス |
|:-:|:--|:-:|:-:|:-:|
| 1 | Automation Ops           | 〇 | 〇 | × |
| 2 | Orchestratorアセット1 | 〇 | 〇 | 〇 |
| 3 | Orchestratorアセット2 | × | 〇 | 〇 |
| 4 | レジストリ                | 〇 | 〇 | 〇 |
| 5 | ローカルファイル          | 〇 | 〇 | 〇 |

Automation Opsでは、ポリシーを画面から設定できますが（ファイルをインポートして設定することもできます）、その他の方法ではガバナンスファイルを入手して、各項目を設定していく必要があります。

# ガバナンスファイルの取得方法
ガバナンスファイルは次の取得方法がありますが、現在の設定を反映させた形で取得できるので、個人的には1がおすすめです。

**1. Studioから取得する**
**2. UiPath公式ドキュメントから[サンプルファイル](https://documentationexamplerepo.blob.core.windows.net/examples/Studio_V2022.4/uipath.policies.zip)を取得する**
**3. 自分で作成する**

## Studioから取得する方法
「ヘルプ」の右側にある、「ガバナンスファイルを生成」から「クラシックポリシー」または「モダンポリシー」を選択します。

クラシックポリシー：Automation Ops以外にガバナンスポリシーを適用する場合
モダンポリシー：Automation Opsにガバナンスファイルをインポートする場合

:::note info
Automation Opsを利用していない環境でライセンス認証を受けている場合は「クラシックポリシー」、「モダンポリシー」の選択肢は出てきません。
:::

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3322296/5b244c43-5777-5731-aeb1-0dc9fbcd7135.png)

# ポリシーが適用されると
「企業ポリシー」に適用されているポリシー名が表示され、`%AppData%\UiPath`に「ガバナンスファイル名.cache」が作成されます。このファイルは、ローカルファイルの配布以外の配布方法では、削除してもStudioを起動すると再度作成されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3322296/fa8913e2-fdd6-a503-2696-39c2842074fe.png)

# ポリシー配布方法
## Automation Opsからの配布
画面から設定することができて操作も簡単なので、Automation CloudまたはAutomation Suiteを利用されている場合はお勧めの配布方法です。
下記記事で分かり易く紹介されているのでご確認ください！

https://qiita.com/shuy/items/a06a777aa454133a1b8f

## Orchestratorアセットからの配布1
Orchestratorからガバナンスポリシーを配布する方法です。次の手順を実施します。

**手順1**. モダンフォルダ「uipath.settings.config」を作成
**手順2**. 手順1で作成したフォルダに新規アセットを以下の内容で作成

| カテゴリ | 内容 |
|:--|:--|
| アセット名 | uipath.studio.governancepolicy | 
| 型 | テキスト |
| 値 | ガバナンスファイルの内容を貼り付け |

**手順3**.ガバナンスポリシーを適用したいユーザーまたはグループをフォルダに割り当てる

## Orchestratorアセットからの配布2
Orchestratorからガバナンスポリシーを配布する方法です。「Orchestratorアセット1からの配布」と似ていますが、ガバナンスファイルのパスを指定するところが異なります。
次の手順を実施します。

**手順1**.モダンフォルダ「uipath.settings.config」を作成
**手順2**.手順1で作成したフォルダに新規アセットを以下の内容で作成

| カテゴリ | 内容 |
|:--|:--|
| アセット名 | uipath.studio.governancesource | 
| 型 | テキスト |
| 値 | ガバナンスファイルのパス |

**手順3**.ガバナンスポリシーを適用したいユーザーまたはグループをフォルダに割り当てる

## レジストリからの配布
こちらはレジストリにガバナンスファイルを指定してポリシーを適用させる方法です。各端末のレジストリを直接編集するのではなく、GPOでポリシーを一斉に配布する運用を想定しています。

:::note info
ガバナンスファイルは読み取り専用でユーザーが削除できない場所に配布してください。
:::

| カテゴリ | 内容 |
|:--|:--|
| 場所 | コンピューター\HKEY_CURRENT_USER\Software\UiPath | 
| キー | GovernanceSource |
| 値 | ガバナンスファイルのパス |

## ローカルファイルの配布
各端末に直接ガバナンスファイルを配置する方法です。

:::note warn
ユーザーによりファイルが削除されると **適用されたポリシーが外れてしまいます。** 他の方法での配布が出来ないか検討してください。
:::

| カテゴリ | 内容 |
|:--|:--|
| フォルダ | %AppData%\UiPath | 
| ファイル名 | uipath.policies.config |

# おわりに
開発者に開発標準を守ってもらうことで、思わむ事故を防いだり、開発生産性の向上につながります。まだご利用いただいていないのであれば、検討いただけますと幸いです。