Windows 10 21H2 あたりでWindows 標準搭載となることが見えている Power Automate Desktop ですが、皆さん利用されていますでしょうか。
2021 年 3 月の発表で無償化となってからは気に留められている方も多いのではないでしょうか。
その Power Automate Desktop の機能の一つに Azure へ接続し、仮想マシンを制御するというものがあります。
例えば仮想マシンの起動停止などができるのですが、利用するにはセッションを作成(接続)してから個々の作業を行う形になっています。
このセッションの作成、やり方について docs を見てもいまいちわからなかったので手順をまとめてみました。
ここにパラメーターの意味などが書かれているのですが、何を入力するのかはわかりません。なんだか昔の MSDN ライブラリを彷彿とさせますね笑
ここにもあるように必要な情報は Azure サブスクリプション ID と Azure AD テナント ID と接続ユーザー情報(クライアント ID )です。
これらは Azure ポータルから作成、取得することができます。
まず、接続のために利用するユーザー情報を作ります。
これは Azure AD のアプリの登録から行います。
https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredApps
新規登録を押下して名前を決めたら登録を行います。この時点で Azure AD 上に Power Automate Desktop で動かすためのユーザーが作成されたイメージです。
作成が終わるとこの画面に遷移します。
ここにあるアプリケーション ID とディレクトリ ID がそれぞれクライアント ID と テナント ID に相当します。また、この画面からクライアントの資格情報を押してシークレットを作ります。(期間が決められたパスワードみたいなものですね。今のところ証明書での認証は行えないみたいに見えました。)
続いて Azure サブスクリプション ID の取得です。
これは以下のアドレスから確認することができます。
複数サブスクリプションがある場合、 Azure AD と仮想サーバーのある場所を選んでください。
https://portal.azure.com/#blade/Microsoft_Azure_Billing/SubscriptionsBlade
これで情報はそろったのですが、ここまでやったうえでリソースの取得をしようとすると 403 エラーではじかれます。
こんなエラーですね。
: Robin.Core.ActionException: The client ' ' with object id ' ' does not have authorization to perform action 'Microsoft.Resources/subscriptions/resourcegroups/read' over scope '/subscriptions/サブスクリプション ID ' or the scope is invalid. If access was recently granted, please refresh your credentials. (状態コード: 403)。
これは、接続先のリソースへのアクセス権が足りないから発生する事象です。
仮想環境を設置したリソースグループへの権限付与が必要となります。
リソースグループに入って、アクセス制御( IAM )を開きましょう。
ロールの割り当ての追加(プレビュー)というのが右側にあるので、そこから権限を割り当てていきます。
ロールとして割り当てたいのは「仮想マシン共同作成者」あたりでしょうか。
マシンを管理する場合に必要となるロールとなっています。
これを選択し、次の画面でメンバー割り当てとなります。この際メンバーを選択するを押してから自身で先ほど Azure AD のアプリの登録で作成したアカウントを検索し、選択します。
これでエラーなく環境にアクセスできたと思います。
Power Automate Desktop で Azure アクセスを考えられている方は、この流れを覚えておき、自身の環境に適用してみましょう!
音楽:オムナ マグニ