Azure Container Registry (ACR) には、ACR レジストリに Microsoft Entra ベースのアクセス許可管理を提供する 一連の組み込みロール が用意されています。 Azure ロールベースのアクセス制御 (RBAC) を使用すると、組み込みロールをユーザー、マネージド ID、またはサービス プリンシパルに割り当てて、ロール内で定義された Microsoft Entra ベースのアクセス許可を付与できます。 組み込みロールが要件を満たしていない場合は、特定のニーズに合わせて調整されたきめ細かいアクセス許可を持つ カスタム ロールを定義して割り当てることもできます。
サポートされているロールの割り当て ID の種類
ACR ロールを次の ID の種類に割り当てて、レジストリにアクセス許可を付与できます。
- 個々のユーザー ID
- Azure リソースのマネージド ID
- Azure DevOps - Azure Pipelines ID
- AKS ノードが ACR からイメージをプルできるようにするために、Azure Kubernetes Service (AKS) ノードの kubelet ID を利用する。 ACR では、AKS ノードが ACR からイメージをプルするための AKS マネージド kubelet ID と AKS 事前に作成された kubelet ID の 両方に対するロールの割り当てがサポートされています。
- Azure Container Apps (ACA) ID
- Azure Container Instances (ACI) ID
- Azure Machine Learning (AML) ワークスペース ID
- Kubernetes クラスターのノードが ACR からイメージを取得できるようにするための、AML に紐づけられた Kubernetes クラスター ノードの kubelet の ID。
- AML オンライン エンドポイント ID
- Azure App Service ID
- Azure Web Apps ID
- Azure Batch ID
- Azure Functions ID
- サービス プリンシパル
- AKS ノードが ACR からイメージをプルできるようにする AKS クラスター サービス プリンシパル。 ACR では、テナント間 のサービス プリンシパル ロールの割り当てと認証によって、テナント間の AKS ノードから ACR への認証もサポートされます。
- ACI サービス プリンシパル
- サービス プリンシパルを使用した Azure Stack Hub 上のハイブリッドまたはオンプレミスの AKS クラスター
クラウドベースの 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 を使用したイメージへの署名はサポートされていません。
- Notary Project などの OCI 参照元を使用してイメージに署名する場合:
シナリオ: ACR レジストリを作成、更新、または 削除 する必要があるパイプライン、ID、開発者
- 役割:
Container Registry Contributor and Data Access Configuration Administrator
- アクセス許可:
- 次のようなレジストリを 作成、構成、管理、 および削除 するためのコントロール プレーン アクセスを許可します。
- レジストリ SKU の構成
- 認証アクセス設定 (管理者ユーザー ログイン資格情報、 匿名プル、 Microsoft Entra 以外のトークン ベースのリポジトリのアクセス許可、 Microsoft Entra authentication-as-arm トークンの対象ユーザー)
- 高可用性機能 (地理的レプリケーション、可用性ゾーン、ゾーン冗長性)
- オンプレミスの機能 (接続されたレジストリ)
- レジストリ エンドポイント (専用データ エンドポイント)
- ネットワーク アクセス (プライベート リンクとプライベート エンドポイントの設定、パブリック ネットワーク アクセス、信頼されたサービス バイパス、ネットワーク ファイアウォール規則、仮想ネットワーク (VNET) サービス エンドポイント)
- レジストリ ポリシー (保持ポリシー、 レジストリ全体の検疫の有効化、 ソフト デリートの有効化、 データ漏洩防止ポリシー)
- 診断と監視の設定 (診断設定、ログ、メトリック、レジストリとジオレプリケーション用のウェブフック、および Event Gridを含む)
- レジストリの システム割り当てマネージド ID を管理する
- 注: このロールは、レジストリ自体を削除するアクセス許可を付与します。
- 注: このロールには、データ プレーン操作 (画像のプッシュ/プルなど)、ロールの割り当て機能、ACR タスクは含まれません。
- 注: レジストリのユーザー割り当てマネージド ID を管理するには、割り当て先にも
Managed Identity Operator
ロールが必要です。
- 次のようなレジストリを 作成、構成、管理、 および削除 するためのコントロール プレーン アクセスを許可します。
- ABAC のサポート: このロールは、ロールのスコープがレジストリ レベルであるため、Microsoft Entra ABAC 条件をサポートしていません。これにより、レジストリ全体のコントロール プレーンの設定と構成を管理するためのアクセス許可が付与されます。
- 役割:
シナリオ: レジストリを一覧表示し、レジストリ構成を表示する必要があるが、レジストリ イメージへのアクセスは必要ないパイプライン、インフラストラクチャ エンジニア、またはコントロール プレーンの観測/監視ツール
- 役割:
Container Registry Configuration Reader and Data Access Configuration Reader
- アクセス許可:
Container Registry Contributor and Data Access Configuration Administrator
ロールに対応する読み取り専用のもの。 レジストリを表示および一覧表示し、レジストリ構成を検査するためのコントロール プレーン アクセスを許可しますが、変更することはできません。 データ プレーン操作 (画像のプッシュ/プルなど) やロールの割り当て機能は含まれません。 - ABAC のサポート: このロールは、ロールのスコープがレジストリ レベルであるため、Microsoft Entra ABAC 条件をサポートしていません。これにより、レジストリ全体のコントロール プレーン設定と構成を読み取るためのアクセス許可が付与されます。
- 役割:
シナリオ: レジストリとレジストリの構成を監査し、レジストリ イメージにアクセスして脆弱性をスキャンする必要がある脆弱性スキャナーとツール
- ロール:
Container Registry Repository Reader
、Container Registry Repository Catalog Lister
、およびContainer Registry Configuration Reader and Data Access Configuration Reader
- アクセス許可: ACR レジストリの表示と一覧表示、および監査とコンプライアンスのためのレジストリ構成の監査に対するコントロール プレーン アクセスを許可します。 また、画像、成果物、およびビュー タグをプルして、画像をスキャンして脆弱性を分析するためのアクセス許可も付与します。
- ABAC のサポート: ACR では、脆弱性スキャナーとモニターが、レジストリ内のすべてのリポジトリへの完全なデータ プレーン アクセス権を持つことが推奨されます。 そのため、特定のリポジトリにスコープを設定せずにロールのアクセス許可を付与するには、Microsoft Entra ABAC 条件なしでこれらのロールを割り当てる必要があります。
- ロール:
シナリオ: ACR タスクを調整するパイプラインと ID
- 役割:
Container Registry Tasks Contributor
- アクセス許可: タスク定義とタスク実行、タスク エージェント プール、
az acr build
を使用したクイック ビルド、az acr run
を使用したクイック実行、タスク ログなど、ACR タスクを管理します。 データ プレーンのアクセス許可またはより広範なレジストリ構成は含まれません - 注: タスク ID を完全に管理するには、割り当て先に
Managed Identity Operator
ロールが必要です。 - ABAC のサポート: このロールは、レジストリ レベルにスコープが設定され、レジストリ内のすべての ACR タスクを管理するためのアクセス許可を付与するため、Microsoft Entra ABAC 条件をサポートしていません。
- 役割:
シナリオ:
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 Writer
、Container 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 条件なしでこれらのロールを割り当てる必要があります。
- ロール:
次のステップ
- オプションの Microsoft Entra ABAC 条件でロールの割り当てを実行し、ロールの割り当てを特定のリポジトリにスコープ設定するには、 Microsoft Entra ベースのリポジトリのアクセス許可を参照してください。
- 各ロールによって付与されるアクセス許可など、すべての ACR 組み込みロールの詳細なリファレンスについては、 Azure Container Registry ロールのディレクトリ リファレンスを参照してください。
- 特定のニーズと要件を満たすカスタム ロールの作成の詳細については、「 Azure Container Registry カスタム ロール」を参照してください。