Azure Container Registry (ACR) では、 レジストリへのアクセスを管理するための Azure ロールベースのアクセス制御 (RBAC) がサポートされています。 ニーズに合った Azure Container Registry 組み込みロール がない場合は、シナリオに合わせてきめ細かなアクセス許可を持つカスタム ロールを作成できます。 この記事では、Azure Container Registry のカスタム ロールを定義、作成、割り当てる手順について説明します。
カスタム ロールのアクセス許可
一連のアクセス許可 (アクションとデータ アクション) によって、カスタム ロールが定義されます。 カスタム ロールで定義されているアクセス許可によって、ユーザーがレジストリ リソースに対して実行できる操作が決まります。
カスタム ロールで定義する必要があるアクセス許可 (アクションとデータ アクション) を決定するには、次の操作を行います。
- ACR 組み込みロールで 使用される一般的に使用されるアクセス許可 (アクションとデータ アクション) を含むコンテナーの Azure 組み込みロール ディレクトリの JSON 定義を確認します。
Microsoft.ContainerRegistry
リソース プロバイダーのアクセス許可の完全な一覧を確認する (アクションとデータ アクションの Azure Container Registry リファレンス)
Microsoft.ContainerRegistry
リソース プロバイダーで使用可能なすべてのアクセス許可 (アクションとデータ アクション) をプログラムで一覧表示するには、次の Azure CLI または Azure PowerShell コマンドを使用できます。
az provider operation show --namespace Microsoft.ContainerRegistry
Get-AzProviderOperation -OperationSearchString Microsoft.ContainerRegistry/*
例: Webhook を管理するカスタム ロール
たとえば、次の JSON は、 ACR Webhook の管理を許可するカスタム ロールの最小アクセス許可 (アクションとデータ アクション) を定義します。
{
"assignableScopes": [
"/subscriptions/<optional, but you can limit the visibility to one or more subscriptions>"
],
"description": "Manage Azure Container Registry webhooks.",
"Name": "Container Registry Webhook Contributor",
"permissions": [
{
"actions": [
"Microsoft.ContainerRegistry/registries/webhooks/read",
"Microsoft.ContainerRegistry/registries/webhooks/write",
"Microsoft.ContainerRegistry/registries/webhooks/delete"
],
"dataActions": [],
"notActions": [],
"notDataActions": []
}
],
"roleType": "CustomRole"
}
カスタム ロールの作成または更新
JSON 定義を使用してカスタム ロールを定義するには、 カスタム ロールを作成する手順を参照してください。 カスタム ロールは、 Azure CLI、 Azure Resource Manager テンプレート、または Azure PowerShell を使用して作成できます。
注
Azure Resource Manager プライベート リンクを使用して構成されたテナント内の Azure Container Registry では、カスタム ロールで Microsoft.ContainerRegistry/*/read
や Microsoft.ContainerRegistry/registries/*/write
などのワイルドカード アクションを使用することがサポートされており、一致するすべてのアクションへのアクセスが許可されます。
ARM プライベート リンクのないテナントでは、ワイルドカードを使用せず、必要なすべてのレジストリ アクションをカスタム ロールで個別に指定します。
カスタム ロールの割り当て
組み込みロールのロールの割り当てを管理するのと同じ方法で、カスタム ロールのロールの割り当てを追加または削除します。 Azure portal、Azure CLI、Azure PowerShell、またはその他の Azure ツールを使用した Azure ID への Azure ロールの割り当ての詳細を確認します。
次のステップ
- サポートされているロールの割り当て ID の種類、ロールの割り当てを実行する手順、一般的なシナリオで推奨されるロールなど、これらの組み込みロールの概要については、「 Azure Container Registry RBAC 組み込みロール」を参照してください。
- オプションの Microsoft Entra ABAC 条件でロールの割り当てを実行し、ロールの割り当てを特定のリポジトリにスコープ設定するには、 Microsoft Entra ベースのリポジトリのアクセス許可を参照してください。
- 各ロールによって付与されるアクセス許可など、すべての ACR 組み込みロールの詳細なリファレンスについては、 Azure Container Registry ロールのディレクトリ リファレンスを参照してください。