はじめに
Power PlatformのPipelinesを実行するのに必要な権限を忘れてしまうことがあったので備忘録も兼てメモ。
Power PlatformのPipelinesってなに?という方はこちらの公式ドキュメントをご確認ください。
もしくは2023年の冬に私がまとめたこちらの資料をご確認ください。
パイプラインの種類
現在、パイプラインには2種類のパイプラインがあります。(最近追加されました)
簡単に説明すると「個人パイプライン」は個人が設定可能なパイプラインです。
管理者が事前に設定することなく、ユーザー自身で特定の環境に対するデプロイを行うパイプラインを構築し実行することができます。(これの是非はここでは言及しません。)
「カスタムパイプライン」は初期からあったパイプラインの構築方法です。
私の資料でも紹介しているやり方であり、ホスト環境にて構築したパイプラインをもとに指定の環境に対するデプロイを行うパイプラインを構築し実行することができます。
個人パイプライン
カスタムパイプラインに紐づいていない環境
リンクされた環境、展開ステージともにカスタムパイプラインで紐づいた環境が存在しない環境で個人パイプラインを構築する場合に必要な権限は特にありません。
強いていうのであれば対象の環境へのアクセス権ですね。
つまり個人用パイプラインは現状だれでも構築することができます。
これは管理面やDevOpsユーザーの視点からみたとき正直よろしくないですね。
現在個人パイプラインを管理センターで制限できる機能を希望したIdeaが以下で公開されています。
この機能が必要だと感じた方はVoteお願いします。
カスタムパイプラインに紐づいている環境
カスタムパイプラインが紐づいている環境は個人パイプラインを構築することができません。
なので先ほど個人パイプラインをブロックする方法はないと先ほど記載しましたが、厳密にいうと個人パイプラインを設定される前に先にカスタムパイプラインを構築しておけば個人パイプラインは一応構築できなくなります。
カスタムパイプライン
Host環境に対する権限の設定
Host環境(パイプライン アプリケーションをインストールした環境)に対してアクセス権のないユーザーがカスタムパイプラインを構築された環境にてパイプラインを実行しようとすると以下のようなエラーが表示されます。
カスタムパイプラインを実行するためには以下のようにHost環境に対してセキュリティロールを構築する必要があります。
- 展開パイプライン ユーザー: 共有されているパイプラインを実行する権限があります。
- 展開パイプライン管理者: システム 管理者 セキュリティ ロール メンバーシップを必要とせずに、すべてのパイプライン構成を完全に制御できます。
日本語のページだとセキュリティロールまで翻訳されてしまっているので英語で見ることをおすすめします。
- Deployment Pipeline User: Has privileges to run pipelines that have been shared with them.
- Deployment Pipeline Administrator: Has full control over all pipeline configuration, without needing system administrator security role membership.
ということで、管理センターにて対象のユーザーを追加して、「Deployment Pipeline User」ロールを割り当てたいと思います。
その結果、パイプラインの画面でエラーが表示されなくなりました!
ただし、これだけでは設定はまだ完了していません。
この設定だけでは、Host環境へのアクセス権をつけただけなのでパイプラインを選択(中央のドロップボックス)することができません。
パイプラインの共有
構築したパイプラインを、そのパイプラインを実行させたいユーザーに共有を行います。
パイプライン アプリケーション(展開パイプラインの構成)より、構築したパイプラインを共有します。
共有したいパイプラインを選択して右上の「共有」を選択します。
3通りの共有方法がありますが、まぁよく利用するであろう「アクセスの管理」を例に今回は説明します。
「虫メガネ」アイコンを選択して、「高度な検索」を選択します。
ユーザーで検索する場合は、「ユーザー」を選択して対象のユーザーのメールアドレスなどで検索を行います。
チームで検索を行う場合は「チーム」を選択して検索を行います。 選択可能な条件は以下です。
ユーザーもしくはチームを追加したのち、そのユーザー/チームに付与するアクセス許可を設定します。
ユーザーを選択した場合で、そのユーザーに「Deployment Pipeline User」ロールしか紐づいていない場合は「読み込み」のみ選択できるようになっています。(それ以上の権限がないので)
これにより、対象のユーザーでパイプラインを実行できるようになりました!
おわにり
個人パイプラインをどういう場面で実行させたいのか私は全くわかってないです。
管理面やDevOpsの考え方からみると、誰でも自由にパイプラインを構成されると困ると思うのですが、、、
強いていうのであれば、環境ルーティングで払い出された個人の開発環境から、チームの開発環境へのパイプラインを個人で構成して利用するやり方ですが、、、
うーーん......