次の方法で共有


Azure Container Registry Entra のアクセス許可とロールの割り当ての概要

Azure Container Registry (ACR) には、ACR レジストリに Microsoft Entra ベースのアクセス許可管理を提供する 一連の組み込みロール が用意されています。 Azure ロールベースのアクセス制御 (RBAC) を使用すると、組み込みロールをユーザー、マネージド ID、またはサービス プリンシパルに割り当てて、ロール内で定義された Microsoft Entra ベースのアクセス許可を付与できます。 組み込みロールが要件を満たしていない場合は、特定のニーズに合わせて調整されたきめ細かいアクセス許可を持つ カスタム ロールを定義して割り当てることもできます。

サポートされているロールの割り当て ID の種類

ACR ロールを次の ID の種類に割り当てて、レジストリにアクセス許可を付与できます。

クラウドベースの ACR とは異なる ACR のオンプレミス レジストリ オファリングである ACR 接続レジストリでは、Azure ロールの割り当てと Entra ベースのアクセス許可管理はサポートされていないことに注意してください。

ロールの割り当てを実行してアクセス許可を付与する

ID にロールを割り当てる方法については、「ロールの割り当てを追加する手順 」を参照してください。 ロールの割り当ては、次を使用して行うことができます。

ロールの割り当てを実行するには、レジストリに Owner ロールまたは Role Based Access Control Administrator ロールが必要です。

特定のリポジトリへのロールの割り当てのスコープ設定

Microsoft Entra 属性ベースのアクセス制御 (ABAC) を使用して、Microsoft Entra ベースのリポジトリのアクセス許可を管理できます。 この機能を使用すると、レジストリ内の特定のリポジトリにロールの割り当てをスコープできます。

Microsoft Entra ABAC 条件をサポートする ACR 組み込みロールなど、Microsoft Entra ABAC リポジトリのアクセス許可の概要については、 Microsoft Entra ベースのリポジトリのアクセス許可を参照してください。 または、Microsoft Entra ABAC 条件をサポートする組み込みロールの一覧については、 Azure Container Registry ロールのディレクトリ リファレンスを参照 してください。

ID が目的の機能を実行するために必要なアクセス許可のみを割り当てることで、最小限の特権の原則を適用します。 これらの一般的なシナリオには、それぞれ推奨される組み込みロールがあります。

該当する組み込みロールとロールの動作は、レジストリの "ロール割り当てアクセス許可モード" によって異なります。 これは、Azure portal の [プロパティ] ブレードに表示されます。

  • RBAC レジストリと ABAC リポジトリのアクセス許可: オプションの Microsoft Entra ABAC 条件を使用して標準の RBAC ロールの割り当てをサポートし、特定のリポジトリへの割り当てをスコープ指定します。
  • RBAC レジストリのアクセス許可: ABAC 条件のない標準の RBAC 割り当てのみがサポートされます。

Microsoft Entra ABAC および ABAC 対応ロールの詳細については、 Microsoft Entra ベースのリポジトリのアクセス許可を参照してください。

  • シナリオ: イメージをプルし、開発者、パイプライン、コンテナー オーケストレーターなどのサプライ チェーン成果物を検証する必要がある ID (たとえば、Azure Kubernetes Service ノード kubelet ID、Azure Container Apps、Azure Container Instances、Azure Machine Learning ワークスペース)

    • 役割: Container Registry Repository Reader
    • 目的: プル イメージと成果物、ビュー タグ、リポジトリ、Open Container Initiative (OCI) 参照元、成果物ストリーミング構成へのデータ プレーン読み取り専用アクセスを許可します。 コントロール プレーンまたは書き込み権限は含まれません。 レジストリ内のリポジトリを一覧表示するためのリポジトリ カタログ リストのアクセス許可は付与しません
    • ABAC のサポート: このロールは、オプションの Microsoft Entra ABAC 条件をサポートし、レジストリ内の特定のリポジトリにロールの割り当てをスコープ指定します。
  • シナリオ: CI/CD ビルド パイプラインなどの ID と、イメージをビルドしてプッシュし、イメージ タグを管理する開発者

    • 役割: Container Registry Repository Writer
    • アクセス許可: イメージと成果物のプッシュ、プル、更新 (削除は除く)、タグの読み取り/管理、OCI 参照元の読み取り/管理、リポジトリとイメージの成果物ストリーミングの有効化 (ただし無効ではない) へのデータ プレーン アクセスを許可します。 コントロール プレーンのアクセス許可は含まれません。 レジストリ内のリポジトリを一覧表示するためのリポジトリ カタログ リストのアクセス許可は付与しません
    • ABAC のサポート: このロールは、オプションの Microsoft Entra ABAC 条件をサポートし、レジストリ内の特定のリポジトリにロールの割り当てをスコープ指定します。
  • シナリオ: イメージ、成果物、タグ、および OCI 参照元を削除する必要があるアイデンティティ

    • 役割: Container Registry Repository Contributor
    • アクセス許可: イメージ と成果物の読み取り、書き込み、更新、削除 、タグの読み取り/管理/削除、OCI 参照元の読み取り/管理/削除、リポジトリとイメージの成果物ストリーミングの有効化/無効化を行うアクセス許可を付与します。 コントロール プレーンのアクセス許可は含まれません。 レジストリ内のリポジトリを一覧表示するためのリポジトリ カタログ リストのアクセス許可は付与しません
    • ABAC のサポート: このロールは、オプションの Microsoft Entra ABAC 条件をサポートし、レジストリ内の特定のリポジトリにロールの割り当てをスコープ指定します。
  • シナリオ: レジストリ内のすべてのリポジトリを一覧表示する必要がある ID

    • 役割: Container Registry Repository Catalog Lister
    • アクセス許可: {loginServerURL}/acr/v1/_catalog または {loginServerURL}/v2/_catalog レジストリ API エンドポイントを使用して、レジストリ内のすべてのリポジトリを一覧表示するためのデータ プレーン アクセスを許可します。 コントロール プレーンのアクセス許可やイメージをプッシュ/プルするためのアクセス許可は含まれません。
    • ABAC サポート: このロール は、Microsoft Entra ABAC 条件をサポートしていません。 そのため、このロールの割り当てにより、レジストリ 内のすべてのリポジトリを一覧表示するアクセス許可が付与 されます。
  • シナリオ: イメージに署名するパイプライン、ID、および開発者

    • Notary Project などの OCI 参照元を使用してイメージに署名する場合:
      • 役割: Container Registry Repository Writer
      • アクセス許可: イメージや成果物にアタッチされたOCIリファラーの形式でプッシュ署名を行うため、データプレーンへのアクセスを許可します。 コントロール プレーンのアクセス許可は含まれません。
      • ABAC のサポート: このロールは、オプションの Microsoft Entra ABAC 条件をサポートし、レジストリ内の特定のリポジトリにロールの割り当てをスコープ指定します。
    • Docker Content Trust (DCT) を使用してイメージに署名する場合:
      • ABAC 対応レジストリの DCT を使用したイメージへの署名はサポートされていません。
  • シナリオ: ACR レジストリを作成、更新、または 削除 する必要があるパイプライン、ID、開発者

  • シナリオ: レジストリを一覧表示し、レジストリ構成を表示する必要があるが、レジストリ イメージへのアクセスは必要ないパイプライン、インフラストラクチャ エンジニア、またはコントロール プレーンの観測/監視ツール

    • 役割: Container Registry Configuration Reader and Data Access Configuration Reader
    • アクセス許可: Container Registry Contributor and Data Access Configuration Administrator ロールに対応する読み取り専用のもの。 レジストリを表示および一覧表示し、レジストリ構成を検査するためのコントロール プレーン アクセスを許可しますが、変更することはできません。 データ プレーン操作 (画像のプッシュ/プルなど) やロールの割り当て機能は含まれません。
    • ABAC のサポート: このロールは、ロールのスコープがレジストリ レベルであるため、Microsoft Entra ABAC 条件をサポートしていません。これにより、レジストリ全体のコントロール プレーン設定と構成を読み取るためのアクセス許可が付与されます。
  • シナリオ: レジストリとレジストリの構成を監査し、レジストリ イメージにアクセスして脆弱性をスキャンする必要がある脆弱性スキャナーとツール

    • ロール: Container Registry Repository ReaderContainer Registry Repository Catalog Lister、および Container Registry Configuration Reader and Data Access Configuration Reader
    • アクセス許可: ACR レジストリの表示と一覧表示、および監査とコンプライアンスのためのレジストリ構成の監査に対するコントロール プレーン アクセスを許可します。 また、画像、成果物、およびビュー タグをプルして、画像をスキャンして脆弱性を分析するためのアクセス許可も付与します。
    • ABAC のサポート: ACR では、脆弱性スキャナーとモニターが、レジストリ内のすべてのリポジトリへの完全なデータ プレーン アクセス権を持つことが推奨されます。 そのため、特定のリポジトリにスコープを設定せずにロールのアクセス許可を付与するには、Microsoft Entra ABAC 条件なしでこれらのロールを割り当てる必要があります。
  • シナリオ: ACR タスクを調整するパイプラインと ID

  • シナリオ: az acr importを使用してイメージをインポートするパイプラインや開発者などの ID

    • 役割: Container Registry Data Importer and Data Reader
    • アクセス許可: az acr importを使用してイメージのインポートをトリガーするためのコントロール プレーン アクセスと、インポートの成功を検証するためのデータ プレーン アクセスを許可します (インポートされたイメージと成果物のプル、リポジトリの内容の表示、OCI 参照元の一覧表示、インポートされたタグの検査)。 レジストリ内のコンテンツのプッシュまたは変更を許可しません。
    • ABAC のサポート: このロールは、レジストリ レベルにスコープが設定され、レジストリ内の任意のリポジトリにイメージをインポートするアクセス許可を付与するため、Microsoft Entra ABAC 条件をサポートしていません。 また、レジストリ内のすべてのリポジトリのイメージを読み取るアクセス許可も付与されます。
  • シナリオ: ネットワーク、テナント、またはエア ギャップの境界を越えて中間ストレージ アカウントを使用してレジストリ間で成果物を転送するための ACR 転送パイプライン を管理するパイプラインや開発者などの ID

    • 役割: Container Registry Transfer Pipeline Contributor
    • アクセス許可: 中間ストレージ アカウントを使用して 、ACR インポート/エクスポート転送パイプラインとパイプライン実行を 管理するためのコントロール プレーン アクセスを許可します。 データ プレーンのアクセス許可、より広範なレジストリ アクセス、ストレージ アカウントやキー コンテナーなどの他の Azure リソースの種類を管理するためのアクセス許可は含まれません。
    • ABAC のサポート: このロールは、レジストリ レベルにスコープが設定され、レジストリ内のすべての ACR 転送パイプラインを管理するためのアクセス許可を付与するため、Microsoft Entra ABAC 条件をサポートしていません。
  • シナリオ: 検疫済みイメージの管理

    • ロール: AcrQuarantineReader および AcrQuarantineWriter
    • アクセス許可: レジストリ内の検疫済みイメージを管理します。詳細な検査のために検疫済みイメージを一覧表示およびプルしたり、イメージの検疫状態を変更したりします。 検疫されたイメージはプッシュされたイメージであり、検疫解除されるまでプルまたは使用できません。
    • ABAC のサポート: このロールは、レジストリ レベルにスコープが設定され、レジストリ内のすべての検疫済みイメージを管理するためのアクセス許可を付与するため、Microsoft Entra ABAC 条件をサポートしていません。
  • シナリオ: ACR タスクでレジストリの自動消去を構成する開発者またはプロセス

    • 役割: Container Registry Tasks Contributor
    • アクセス許可: ACR タスクで実行される自動消去を管理するためのコントロール プレーンのアクセス許可を付与します。
    • ABAC のサポート: このロールは、レジストリ レベルにスコープが設定され、レジストリ内のすべての ACR タスクを管理するためのアクセス許可を付与するため、Microsoft Entra ABAC 条件をサポートしていません。
  • シナリオ: Visual Studio Code Docker 拡張機能ユーザー

    • ロール: Container Registry Repository WriterContainer Registry Tasks Contributor、および Container Registry Contributor and Data Access Configuration Administrator
    • アクセス許可: Visual Studio Code で一般的な開発者ワークフローをサポートする、 az acr buildを使用してレジストリの参照、イメージのプルとプッシュ、イメージのビルドを行う機能を付与します。
    • ABAC のサポート: ACR では、Visual Studio Code ユーザーがレジストリ内のすべてのリポジトリへの完全なデータ プレーン アクセス権を持つことが推奨されます。 そのため、特定のリポジトリにスコープを設定せずにロールのアクセス許可を付与するには、Microsoft Entra ABAC 条件なしでこれらのロールを割り当てる必要があります。

次のステップ