工事中です

Share on facebook
Share on twitter
Share on linkedin

UiPath SecureString型変数の重要性について

UiPath Advanced Trainingを終えて

遅くなりましたが、UiPath Advanced Trainingの最後の課題を提出しました。 合計で7日間くらい掛かったのだろうか? ひとつの案件を行うレベルにヘビーでした。 まだ結果待ちですが、少し時間が出来たので、学びを共有したいと思います。
今まで、UiPath OrchestratorやReFrameWorkを甘噛み(個人的な推測と現場での使われ方でのみ理解)していましたので、この課題は非常に勉強になりました。
そこで、自分がこの講座から何を学んだのか、高い品質を担保するために必要不可欠なUiPath Orchestrator / ReFrameworkの本質とは何かを自分なりにアウトプットしていきたいと思います。

現場での失敗 「パスワードの自動入力は禁止」

この話は別にReFrameworkに関係ないですが、課題1でSecureTypeのアクティビティが出ましたので、それについてお話したいと思います。

情シスの方とRPA導入に関して相談する時に「どのようにRPAが社内システムにログインするのですか?」と尋ねられます。 全社展開のケースはもちろん、PoCレベルでも情シスから強く釘を差されるでしょう。 コンサルさんやPMなどの判断を踏まえて、「パスワードをコンフィグファイルに格納してはいけない」と結論付けられました。
もちろんおっしゃることは十分に理解できますし、Configファイルを 共有フォルダ内に置いてユーザー名とパスワードを記載することは大きな危険をはらんできます。どの企業でもセキュリティ・インシデントとして始末書を書かされることは間違いない事案です。

Excelの共有フォルダにIDを集約させていた場合

そのため、私が以前いた会社ではIDとPWの入力は「入力ダアログ」アクティビティを使用することが前提となっていました。つまり、自動化と言いながらも、パスワードだけは手入力させることで、セキュリティ・インシデントを回避する方法です。

Gmailにログインする場合

月1の業務集計レベルの実行頻度であれば、Attended Robotとしてこの方法はよいのかもしれません。しかし、毎日深夜3時から定期起動するロボットの場合、どうすればいいでしょうか? 過去には「退社前19時ごろにVDI環境のRPAを起動させ、IDを入力してから帰ってください」と指示をしたケースもあったそうです。入力ダイアログ終了後から8時間待機させ、その後に定期処理を行わせていました。あまりにも業務改善に本末転倒な作業です。これでは、RPAの本領発揮とは言えないでしょう。

OrchestratorからCredential型Assetを取得することの重要性

そこで登場するのがCredential型Assetです。UiPath アクティビティでは「GetRobotCredential(資格情報を取得)」になります。UiPath OrchestratorかCredential型アセットを取得します。

出力する変数に「PW」と「ID」を入力し、 UiPath Orchestratorのアセット上にユーザー名とパスワードを入力します。 PWの変数の型は「SecureString」と表示されました。このSecureString型の変数には 一般的な「Type Into」アクティビティなどは使用できまん。 「SecureString で文字を入力」アクティビティを利用します。

SecureStringが最も機密性を担保できる理由

なぜ、そこれまでSecureString型の変数に事だわるべきなのでしょうか。それは、デバッグ中のローカルパネル変数を見れば一目瞭然です。変数「username」には変数の中身が表示されるのに対し、SecureString型変数「password」には変数の中身が表示されていません。

ローカルパネルにもパスワードは表示されない

String型とSecureString型を比較した場合

仮にAdd Field LogアクティビティにSecureString型変数をString型変数に変更してみるとどうでしょうか。「System.Security.SecureString」と表示され、暗号化されたままログに出力されました。

最後に

実際の現場では、情シスと何かセキュリティの話になった時に大きな武器になるだろう。情シスへUiPath Orchestratorへ機密情報の集約を提案する際に、Credentialがどのように機密性を保持できるのかを説明できる。完全無人化に対して合理的なプロセスを踏むことが出来ます。

既にUiPath Orchestratorにロボットを接続が可能であることは、PCのログイン情報を保存させることを許可していることを示している。であれば、CredentialでIDやPWを保存させることも可能かもしれません。

目次