パイプラインのアクセス許可を設定する

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

パイプラインのアクセス許可とロールは、パイプラインを安全に管理するのに役立ちます。 プロジェクト内のすべてのパイプラインまたは個々のパイプラインについて、組織、プロジェクト、オブジェクトのレベルで、階層型アクセス許可を設定できます。 セキュリティ グループを使うか、個々のユーザーを追加することで、パイプラインのアクセス許可を更新できます。

パイプラインのアクセス許可とロールは、パイプラインを安全に管理するのに役立ちます。 プロジェクト内のすべてのパイプラインまたは個々のパイプラインについて、組織、サーバー、プロジェクト、オブジェクトのレベルで、階層型アクセス許可を設定できます。 セキュリティ グループを使うか、個々のユーザーを追加することで、パイプラインのアクセス許可を更新できます。

オブジェクト レベルのアクセス許可は、組織レベルのアクセス許可よりきめ細かいため、パイプラインのセキュリティをさらに強化できます。 たとえば、組織レベルのアクセス許可を使うと、ユーザーは Azure Repos リポジトリにアクセスできます。 一方、そのオブジェクトとパイプラインのアクセス許可を使うと、同じユーザーがパイプラインを手動で実行できないようにすることができます。

この記事では、アクセス許可を次のレベルに分割します。

詳しくは、「アクセス許可、アクセスおよびセキュリティ グループの概要」、「Azure Pipelines をセキュリティで保護する」、「共同作成者のアクセス許可を確認する」をご覧ください。

Azure CLI でアクセス許可を設定する情報については、Azure CLI リファレンスを参照してください。

前提条件

  • プロジェクト レベルのグループでアクセス許可を管理したり、Azure Pipelines にユーザーを追加したりするには、プロジェクト管理者である必要があります。 詳しくは、プロジェクト レベル グループのアクセス許可に関する記事をご覧ください。
  • コレクション グループでアクセス許可を管理するには、プロジェクト コレクション管理者である必要があります。 詳しくは、コレクション レベル グループのアクセス許可に関する記事をご覧ください。
  • パイプラインのアクセス許可を設定するときは、次の情報に留意してください。
    • 多くの場合、[ビルド パイプラインの削除][許可] に設定することをお勧めします。 そうしないと、これらのチーム メンバーは自分のビルド パイプラインを削除できません。
    • [ビルドの削除] アクセス許可がないと、ユーザーは自分の完了したビルドを削除できません。 ただし、アイテム保持ポリシーを使って、不要な古いビルドを自動的に削除できます。
    • ユーザーに直接アクセス許可を付与しないことをお勧めします。 もっとよい方法は、ビルド管理者グループまたは別のグループにユーザーを追加し、そのグループのアクセス許可を管理することです。

詳細とベスト プラクティスについては、「Azure Pipelines をセキュリティで保護する」をご覧ください。

組み込みセキュリティ グループに割り当てられる既定のアクセス許可

Build

タスク Readers 共同作成者 ビルド管理者 プロジェクト管理者
ビルドの表示 ✔️ ✔️ ✔️ ✔️
ビルド パイプラインを表示する ✔️ ✔️ ✔️ ✔️
ビルド管理のアクセス許可 ✔️ ✔️
ビルド パイプラインを削除または編集する ✔️ ✔️ ✔️
ビルドを削除または破棄する ✔️ ✔️
ビルドの品質を編集します ✔️ ✔️ ✔️
ビルド品質評価の管理 ✔️ ✔️
ビルド キューの管理 ✔️ ✔️
ビルドによるチェックインの妥当性確認のオーバーライド ✔️
ビルドをキューに挿入 ✔️ ✔️ ✔️
無期限に保持 ✔️ ✔️ ✔️ ✔️
ビルドの停止 ✔️ ✔️
ビルド情報の更新 ✔️

リリース

タスク 利害関係者 Readers 共同作成者 プロジェクト管理者 リリース管理者
リリースを承認する ✔️ ✔️ ✔️ ✔️
リリースを表示する ✔️ ✔️ ✔️ ✔️ ✔️
リリース パイプラインの表示 ✔️ ✔️ ✔️ ✔️
リリースのアクセス許可を管理する ✔️ ✔️
リリース パイプラインまたはステージを削除する ✔️ ✔️ ✔️
リリースを削除する ✔️ ✔️ ✔️
リリース パイプラインを編集する ✔️ ✔️
リリース ステージを編集する ✔️ ✔️ ✔️
デプロイを管理する ✔️ ✔️
リリース承認者を管理する ✔️ ✔️ ✔️
リリースを管理する ✔️ ✔️

タスク グループ

タスク Readers 共同作成者 ビルド管理者 プロジェクト管理者 リリース管理者
タスク グループのアクセス許可を管理する ✔️ ✔️ ✔️
タスク グループを削除する ✔️ ✔️ ✔️
タスク グループを編集する ✔️ ✔️ ✔️

プロジェクトレベルのパイプラインのアクセス許可を設定する

すべてのパイプラインにプロジェクト レベルのアクセス許可を設定するには、次の手順のようにします。

  1. 組織にサインインします (https://dev.azure.com/{yourorganization})。

  2. プロジェクト内から、[パイプライン]>[パイプライン] の順に選択します。

    [パイプライン] メニューの選択の順序を示すスクリーンショット。

  3. [その他の操作]>[セキュリティの管理] を選びます。

    プロジェクト内のすべてのパイプラインのセキュリティを管理するため選択の順序を示すスクリーンショット。

  4. Azure DevOps グループ (ビルド管理者など) または個々のユーザーに関連付けられているアクセス許可を変更します。

  5. セキュリティ グループまたは個人ユーザーのアクセス許可で [許可] または [拒否] を選んでから、画面を終了します。

プロジェクト レベルのパイプラインのアクセス許可が設定されます。

ビルドと YAML パイプラインのアクセス許可は、階層モデルに従います。 プロジェクト レベルですべてのアクセス許可の既定値を設定し、個々のビルド パイプラインについてアクセス許可をオーバーライドできます。

プロジェクト内のすべてのパイプラインに対してプロジェクト レベルでアクセス許可を設定するには、[ビルド] ハブのメインページのアクション バーから [セキュリティ] を選びます。

個々のパイプラインのアクセス許可を設定する

個々のパイプラインのアクセス許可を設定するには、次の手順のようにします。

  1. プロジェクト内から、[パイプライン]>[パイプライン] の順に選択します。

    [パイプライン] メニューの選択の順序を示すスクリーンショット。

  2. 個々のパイプラインを選んでから、[その他の操作]>[セキュリティの管理] を選びます。

    個々のパイプラインの [その他の操作] メニューから選ばれた [セキュリティの管理] オプションを示すスクリーンショット。

  3. アクセス許可を設定してから、変更を保存します。

個々のパイプラインのアクセス許可を設定またはオーバーライドするには、個々のパイプラインのコンテキスト メニューから [セキュリティ] を選びます。

パイプラインのアクセス許可のリファレンス

プロジェクト内のすべてのパイプラインまたは個々のパイプラインに対し、次のアクセス許可を設定できます。 プロジェクト コレクションとプロジェクト グループには、既定値が設定されます。 たとえば、プロジェクト コレクション管理者、プロジェクト管理者、ビルド管理者は、既定でこれらのすべてのアクセス許可を持っています。

権限 説明
ビルド管理のアクセス許可 この一覧で示されている他のすべてのアクセス許可を変更できます。
ビルド パイプラインの削除 ビルド パイプラインを削除できます。
ビルドの削除 パイプラインのビルドを削除できます。 削除されたビルドは、破棄されるまでの間、[削除済み] タブに保持されます。
ビルドの破棄 [削除済み] タブからビルドを削除できます。
ビルド パイプラインの編集 パイプラインを作成し、構成変数、トリガー、リポジトリ、アイテム保持ポリシーなど、ビルド パイプラインに対する変更を保存できます。
ビルドの品質を編集します ビルドにタグを追加できます。
ビルドの品質評価の管理 "XAML ビルドにのみ適用されます"
ビルド キューの管理 "XAML ビルドにのみ適用されます"
ビルドによるチェックインの妥当性確認のオーバーライド TFVC ゲート チェックイン ビルドに適用されます。 pull request ビルドには適用されません。
ビルドをキューに挿入 新しいビルドをキューに入れることができます。
キューのビルド構成の編集 新しいビルドをキューに入れるとき、自由記載パラメーター (object 型など) とパイプライン変数の値を指定できます。
無期限に保持 ビルドの無期限に保持フラグを切り替えることができます。
ビルドの停止 他のチーム メンバーまたはシステムによってキューに入れられたビルドを停止できます。
ビルド情報の更新 これはそのままにしておくことをお勧めします。 これは、チーム メンバーではなく、サービス アカウントを有効にすることを目的としています。
ビルド パイプラインの表示 ビルド パイプラインを表示できます。
ビルドの表示 ビルド パイプラインに属するビルドを表示できます。

すべてのチーム メンバーは共同作成者グループのメンバーです。 このグループ アクセス許可を使うと、ビルドとリリースを定義して管理できます。 最も一般的な組み込みグループには、閲覧者、共同作成者、プロジェクト管理者が含まれます。

詳細については、次の記事を参照してください。

リリースのアクセス許可を設定する

リリース パイプラインのアクセス許可は、階層モデルに従います。 プロジェクト レベルで既定のアクセス許可を設定でき、個々のリリース パイプラインでこれらのアクセス許可をオーバーライドできます。

すべてのリリースのアクセス許可を設定する

すべてのリリースのアクセス許可を更新するには、次の手順のようにします。

  1. ファイル ビューを選びます。

    すべてのファイル ビューの選択を示すスクリーンショット。

  2. [すべてのパイプライン] フォルダーを選びます。

    すべてのパイプライン フォルダーの選択を示すスクリーンショット。

  3. [その他の操作] を選んで、[セキュリティ] を選びます。

  4. アクセス許可を設定してから、変更を保存します。

個々のリリースのアクセス許可を設定する

個々のリリースのアクセス許可を更新するには、次の手順のようにします。

  1. 変更するリリースを選びます。

  2. [その他の操作]>[セキュリティ] を選びます。

  3. アクセス許可を設定してから、変更を保存します。

プロジェクト内のすべてのリリース定義に対してプロジェクト レベルでアクセス許可を設定するには、ドロップダウン リスト からショートカット メニューを開きます

特定のリリース パイプラインのアクセス許可を設定またはオーバーライドするには、そのパイプライン名の横にある ドロップダウン リスト アイコンからショートカット メニューを開きます。 次に、[セキュリティ] を選んで [アクセス許可] ダイアログを開きます。

リリース パイプライン内の個々のステージのセキュリティ設定を指定するには、リリース パイプライン エディターのステージの [その他の操作] から開くショートカット メニューで [セキュリティ] を選んで [アクセス許可] ダイアログを開きます。

リリースのアクセス許可のリファレンス

次の表はリリースのアクセス許可の定義です。 スコープ列では、アクセス許可をプロジェクト、リリース パイプライン、またはステージのレベルで設定できるかどうかを説明します。

権限 説明
リリース アクセス許可の管理 この一覧で示されている他のすべてのアクセス許可を変更できます。
スコープ: プロジェクト、リリース パイプライン、ステージ
リリースの作成 新しいリリースを作成できます。
スコープ: プロジェクト、リリース パイプライン
リリース パイプラインの削除 リリース パイプラインを削除できます。
スコープ: プロジェクト、リリース パイプライン
リリース ステージの削除 リリース パイプライン内のステージを削除できます。
スコープ: プロジェクト、リリース パイプライン、ステージ
リリースの削除 パイプラインのリリースを削除できます。
スコープ: プロジェクト、リリース パイプライン
リリース パイプラインの編集 構成変数、トリガー、成果物、アイテム保持ポリシー、およびリリース パイプラインのステージ内の構成など、リリース パイプラインへの変更を保存できます。 ユーザーが、リリース パイプライン内の特定のステージを更新するには、リリース ステージの編集アクセス許可も必要です。
スコープ: プロジェクト、リリース パイプライン
リリース ステージの編集 リリース パイプラインのステージを編集できます。 ユーザーが、リリース パイプラインへの変更を保存するには、リリース パイプラインの編集アクセス許可も必要です。 このアクセス許可は、ユーザーが特定のリリース インスタンスのステージ内で構成を編集できるかどうかも制御します。 ユーザーが、変更したリリースを保存するには、リリースの管理アクセス許可も必要です。
スコープ: プロジェクト、リリース パイプライン、ステージ
デプロイを管理する ステージへのリリースのデプロイを開始できます。 このアクセス許可は、リリースで [配置] または [再配置] 操作を選ぶことで手動で開始される配置に対してのみ適用されます。 ステージで条件が任意の種類の自動配置に設定されている場合は、リリースを作成したユーザーのアクセス許可はチェックされず、システムによって自動的に配置が開始されます。 何らかのステージの後で開始するように条件が設定されている場合、手動で開始された配置は、それらのステージが成功するまで待機しません。
スコープ: プロジェクト、リリース パイプライン、ステージ
リリース承認者の管理 リリース パイプラインのステージの承認者を追加または編集できます。 このアクセス許可は、ユーザーが特定のリリース インスタンスのステージ内で承認者を編集できるかどうかも制御します。
スコープ: プロジェクト、リリース パイプライン、ステージ
リリースを管理する リリースで構成を編集できます。 ユーザーが、リリース インスタンス内の特定のステージの構成を編集するには (settable at release time としてマークされた変数を含む)、リリース ステージの編集アクセス許可も必要です。
スコープ: プロジェクト、リリース パイプライン
リリース パイプラインの表示 リリース パイプラインを表示できます。
スコープ: プロジェクト、リリース パイプライン
リリースの表示 リリース パイプラインに属するリリースを表示できます。
スコープ: プロジェクト、リリース パイプライン

すべてのアクセス許可の既定値は、チーム プロジェクト コレクションとプロジェクト グループに設定されます。 たとえば、プロジェクト コレクション管理者、プロジェクト管理者、リリース管理者は、前の一覧で示したすべてのアクセス許可を既定で付与されます。 共同作成者は、"リリースのアクセス許可の管理" を除くすべてのアクセス許可を付与されます。 既定では、閲覧者は、"リリース パイプラインの表示" と "リリースの表示"を除くすべてのアクセス許可を禁止されます。

タスク グループのアクセス許可を設定する

タスク グループは、パイプラインで既に定義されている一連のタスクを 1 つの再利用可能なタスクに結合するために使います。

タスク グループのアクセス許可は、階層モデルに従います。 プロジェクト レベルで既定のアクセス許可を設定でき、個々のタスク グループ パイプラインでこれらのアクセス許可をオーバーライドできます。

プロジェクト レベルのタスク グループのアクセス許可を設定する

プロジェクト レベルのタスク グループのアクセス許可を更新するには、次の手順のようにします。

注意

タスク グループは YAML パイプラインではサポートされていませんが、テンプレートはサポートされています。 詳しくは、YAML スキーマ リファレンスに関する記事をご覧ください。

  1. プロジェクトから、[パイプライン]>[タスク グループ] を選びます。

    タスク グループのメニュー項目を見つけます。

  2. [セキュリティ] を選択します。

    タスク グループの [セキュリティ] オプションを選びます。

  3. セキュリティ グループまたは個人ユーザーのアクセス許可で [許可] または [拒否] を選びます。

パイプライン レベルのタスク グループのアクセス許可を設定する

パイプライン レベルのタスク グループのアクセス許可を更新するには、次の手順のようにします。

  1. プロジェクトから、[パイプライン]>[タスク グループ] を選びます。

    タスク グループのメニュー項目を見つけます。

  2. タスク グループを選びます。

  3. [その他の操作]>[セキュリティ] を選びます。

  4. セキュリティ グループまたは個人ユーザーのアクセス許可で [許可] または [拒否] を選びます。

タスク グループのアクセス許可のリファレンス

権限 説明
タスク グループのアクセス許可の管理 タスク グループ セキュリティのユーザーまたはグループを追加および削除できます。
タスク グループの削除 タスク グループを削除できます。
タスク グループの編集 タスク グループを作成、変更、または削除できます。

エージェント プールのアクセス許可を設定する

定義済みのロールを使って、すべてのプールについて階層的な方法で、または個々のプールについて、エージェント プールでのセキュリティを構成できます。 すべてのプールにエージェント プールのアクセス許可を設定するには、次の手順のようにします。

すべてのエージェント プールのアクセス許可を設定する

すべてのエージェント プールのアクセス許可を更新するには、次の手順のようにします。

  1. プロジェクトから、[プロジェクトの設定]>[エージェント プール] を選びます。

  2. [セキュリティ] を選択します。

    エージェント プールのセキュリティを構成します。

  3. アクセス許可を設定してから、変更を保存します。

個々のエージェント プールのアクセス許可を設定する

個々のエージェント プールのアクセス許可を設定するには、次の手順のようにします。

  1. エージェント プールから、エージェントを選びます。

  2. [セキュリティ] を選択します。

    1 つのエージェント プールのセキュリティを設定します。

  3. アクセス許可を設定してから、変更を保存します。

ライブラリのアクセス許可を設定する

変数グループは、複数のビルドとリリース パイプラインで使用できるようにする値を格納するために使われます。 共有ライブラリ エンティティのセキュリティを構成するのに役立つロールを定義します。 ロールの継承を構成することもできます。

変数グループセキュア ファイルなど、ライブラリ成果物のアクセス許可を管理するには、次の手順のようにします。

  1. プロジェクトから、[パイプライン]>[ライブラリ] を選びます。

    [ライブラリ] メニュー オプションを開きます。

  2. [セキュリティ] を選択します。

    ライブラリのセキュリティ オプション。

  3. ライブラリ内のすべてのもの、または個々の変数グループやセキュア ファイルに対するアクセス許可を設定してから、変更を保存します

ライブラリのアクセス許可のリファレンス

Role 説明
Administrator ライブラリ項目のセキュリティを編集、削除、管理できます。
Creator ライブラリ項目を作成できます。
Reader ライブラリ項目を読むことだけできます。
User パイプラインでライブラリ項目を使用できます。

サービス接続のアクセス許可を設定する

すべてのサービス接続または個々の接続に対するアクセス許可を構成します。

すべてのサービス接続のアクセス許可を設定する

すべてのサービス接続のアクセス許可を構成するには、次の手順のようにします。

  1. プロジェクト内から、[プロジェクトの設定] を選びます。
  2. [パイプライン] の下にある [サービス接続] を選びます。
  3. アクセス許可を設定してから、変更を保存します。

個々のサービス接続のアクセス許可を設定する

個々のサービス接続のアクセス許可を構成するには、次の手順のようにします。

  1. プロジェクト内から、サービス接続を開きます。

  2. [その他の操作]>[セキュリティ] を選びます。

  3. アクセス許可を設定してから、変更を保存します。

    セキュリティ サービス接続のオプションを選びます。

プロジェクト レベルの管理コンテキストの [サービス] ページから、次のロールにユーザーを追加します。 これらのリソースを作成および管理する方法について詳しくは、ビルドとリリースのサービス接続に関する記事をご覧ください。

アクセス許可とサービス接続に関する問題がある場合は、Azure Resource Manager のサービス接続のトラブルシューティングに関する記事をご覧ください。

サービス接続のアクセス許可のリファレンス

Role 説明
User ビルドまたはリリース パイプラインを作成するときにエンドポイントを使用できます。
Administrator サービス接続の他のすべてのロールのメンバーシップを管理できるほか、エンドポイントを使ってビルドまたはリリース パイプラインを作成できます。 サービス接続を作成したユーザーは、システムによってそのプールの管理者ロールに自動的に追加されます。

配置プールのアクセス許可を設定する

すべての配置グループに既定のセキュリティ ロールを設定し、個々の配置グループのセキュリティ ロールを管理できます。

すべての配置プールのアクセス許可を設定する

  1. プロジェクト内から、[プロジェクトの設定] を選びます。

  2. [パイプライン] で [配置グループ] を選びます。

  3. アクセス許可を設定してから、変更を保存します。

    配置グループの既定のアクセス許可を管理するには、[セキュリティ] を選びます。

個々の配置グループのアクセス許可を設定する

  1. プロジェクト内から、配置プールを開きます。
  2. [その他の操作]>[セキュリティ] を選びます。
  3. アクセス許可を設定してから、変更を保存します。

配置プールのアクセス許可のリファレンス

Role 説明
Reader 配置プールを表示することだけできます。
[サービス アカウント] エージェント プールからエージェントを表示し、セッションを作成し、ジョブをリッスンできます。
User 配置グループを作成するために、配置プールを表示して使用できます。
Administrator 配置プールを管理、操作、表示、使用できます。

環境のアクセス許可を設定する

ロールとユーザーのアクセス許可を使って、環境を作成、表示、管理できるユーザーを制御できます。 すべての環境または 1 つの環境に、ロールの階層を適用します。

すべての環境のアクセス許可を設定する

  1. プロジェクト内から、[プロジェクトの設定] を選びます。

  2. [パイプライン] で [環境] を選びます。

  3. アクセス許可を設定してから、変更を保存します。

    [環境] を選びます。

個々の環境のアクセス許可を設定する

[その他の操作] から [セキュリティ] を選んで、すべての環境のアクセス許可を変更します。

  1. プロジェクト内から環境を開きます。
  2. [その他の操作]>[セキュリティ] を選びます。
  3. アクセス許可を設定してから、変更を保存します。

環境のアクセス許可のリファレンス

ロール 説明
Creator グローバル ロール。環境ハブのセキュリティ オプションから使用できます。 このロールのメンバーは、プロジェクトに環境を作成できます。 既定では、共同作成者がメンバーとして追加されます。 環境がまだ存在しない場合に YAML パイプラインをトリガーするために必要です。
Reader このロールのメンバーは、環境を表示できます。
User このロールのメンバーは、YAML パイプラインを作成または編集するときに環境を使用できます。
Administrator このロールのメンバーは、アクセス許可の管理、環境の作成、管理、表示、使用を行うことができます。 特定の環境の場合、その作成者は既定では管理者として追加されます。 管理者は、すべてのパイプラインへの環境へのアクセスを開くこともできます。

重要

環境を作成するときは、作成者のみが管理者ロールを持っています。

ロール 説明
Creator グローバル ロール。環境ハブのセキュリティ オプションから使用できます。 このロールのメンバーは、プロジェクトに環境を作成できます。 既定では、共同作成者がメンバーとして追加されます。 環境がまだ存在しない場合に YAML パイプラインをトリガーするために必要です。
Reader このロールのメンバーは、環境を表示できます。
User このロールのメンバーは、YAML パイプラインを作成または編集するときに環境を使用できます。
Administrator このロールのメンバーは、環境の使用に加えて、環境の他のすべてのロールのメンバーシップを管理できます。 既定では、作成者がメンバーとして追加されます。

よく寄せられる質問

パイプラインのアクセス許可に関する以下のよくあるご質問 (FAQ) を確認してください。

Q: 新しいパイプラインを作成できないのはなぜですか?

A: 新しいパイプラインを作成するには、ビルド パイプラインの編集アクセス許可が必要です。 アクセス許可を追加するには、すべてのパイプラインのセキュリティ設定を開き、セキュリティ グループの [ビルド パイプラインの編集][許可] に設定されていることを確認します。

それでもパイプラインを作成できない場合は、アクセス レベル[関係者] に設定されているかどうかを調べます。 関係者アクセス権がある場合は、アクセス権を [基本] に変更します。

Q: 実行を続ける前にリソースを承認する必要があるというメッセージが表示されるのはなぜですか?

A: リソースは、使う前に承認する必要があります。 この規則の例外は、パイプラインを初めて作成する場合であり、YAML ファイルで参照されているすべてのリソースが自動的に承認されます。 パイプラインを実行しているユーザーがリソースにアクセスできる限り、リソースはパイプラインに対して承認されます。

すべてのパイプラインがエージェント プールなどのリソースにアクセスすることを承認するには、次の手順のようにします。

  1. プロジェクトから、[設定]>[パイプライン]>[エージェント プール] を選びます。

  2. 特定のエージェント プールの [セキュリティ] を選んでから、アクセス許可を更新してすべてのパイプラインへのアクセスを許可します。

    すべてのパイプラインへのアクセスを許可します。

    詳しくは、YAML でのリソースに関する記事をご覧ください。