18
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Power Automate for desktopの中でパスワードを秘匿して使う

Last updated at Posted at 2022-03-27

(この記事は2022年3月27日に書きました)

1.重要な情報を入れるための金庫の必要性

 RPAを作成・運用するときに注意したいのは、アプリやクラウドサービスへのログイン情報です。
 RPAの種類を「サーバー型」「デスクトップ型」と分類した場合、「サーバー型」ではロボットの一括管理やセキュリティ管理が備わっていますが、「デスクトップ型」では特にセキュリティ面をルーズにされがちです。

 「サーバー型」RPAであるAutomation Anywhereでは、暗号化されたデータはControl RoomデータベースのCredential Vaultに保管され、ロックされています。開発者もロボットの実行者もキーを使ってデータを呼び出すことができますが、メモリにもログにも記録されず、全体としてセキュアに取り扱われます。

 Power Automate for desktopは「デスクトップ型」のRPAですが、Power AutomateやAzureと連携することでセキュアに使用することが可能です。以下に、そのやり方を試してみます。

2.「直接暗号化されたテキストの入力」を使う

 Power Automate for desktopを使ってWebページにログインする場合、以下のようなやり方があります。

image.png

 独学でRPAを開始した人にはありがちなことですが、IDとパスワードが露出しています。IDはフローの実行中に入力値が見えてしまうので隠す必要があるのかと言われるかもしれませんが、隠しておく方がよいと思います。この画面がキャプチャされてしまった場合、IDとパスワードを漏洩させてしまう恐れがあります。それを避けるため、テキスト欄に 「直接暗号化されたテキストの入力」 という選択肢を使うことができます。

image.png

 フローをキャプチャされても、ID、パスワードは「●●●」で表示されるので安全です。

image.png

 デスクトップフローの実行は、Power Automateのクラウド側にログが記録されます。通常のテキストであれば、送信された値がログに記録されますが、 「暗号化されたテキストの入力」 を使用すると、以下のように値が記録されません。

image.png

3.「入出力変数」で「機密情報」として扱う

 Power Automate for desktopで、IDとパスワードを入出力変数に設定します。
 変数ペインの 「入出力変数」 で(+)を押して「入力」を選択し、IDとパスワードを受け取るようにします。
image.png
image.png
 受け取ったIDとパスワードをログインに使うように変更します。
image.png
 全体は、以下のようなフローになります。
image.png
 これを実行させると、以下のようなダイアログが表示されます。実行する都度IDとパスワードを手打ちすることになり、フローの中に記述しないで済みます。
image.png

4.Azure Key Vaultを使用したパスワード管理

 表面上IDとパスワードは表示・記録されなくなりましたが、開発者あるいは実行者はパスワードを知っている必要がありますし、変更があった場合は、個別にフローを修正していかなければなりません。一元的に管理するには、 Azure Key Vault を使用します。

Power Automate for desktopの修正

 先ほどの3で作成したフローをそのまま使用します。

※ここからは、Power Automateのプレミアム・コネクタが使えるアカウントと、Azureのアカウントが必要になります。

Azure Key Vaultの作成

 Azure Potalにログインし、MarketplaceからKey Vaultを選択します。
image.png
 名前は他と重複しないものを入力し、地域はJapanEastを選択し、確認、作成を行います。
image.png

 デプロイが完了したら、リソースに移動し、 キーシークレット を作成します。

image.png

最初にキーを作成します。
image.png
次にシークレットでUserIDとPasswordを作成します。
image.png
image.png
 作成されたキーコンテナ名とシークレット名を使用して、Power Automateのインスタントフローを作成していきます。

Power Automateの接続を作成

 まず、最初に接続を作成します。
image.png
 Valut nameには、キーコンテナ名を入力します。
image.png
 アカウントを選択します。
image.png
image.png

Power Automateのフローを作成

インスタントクラウドフローで作成していきます。
image.png
 アクションで、「シークレットの取得」を選択します。
image.png

image.png

 このIDとパスワードのアクションでは、三点リーダーから設定を開き、「セキュリティで保護された入力」と「セキュリティで保護された出力」のチェックをオンにしておく必要があります。このチェックを入れないと、クラウドフローの実行ログにIDとパスワードが表示されてしまいます。
image.png

 最後にデスクトップフローを選択し、UserIDとPasswordに先ほど取得したシークレットの値を入れるようにします。
image.png

フローの実行とログ

 このフローを実行させると、デスクトップフローが動き出し、無事にIDとパスワードが入力されました。
image.png

 デスクトップフローの実行ログには、以下のようにIDとパスワードが記載されていません。
image.png

 また、クラウドフローの実行ログにも、表示されません。
image.png

18
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?