Role a oprávnění služby Azure Container Registry

Služba Azure Container Registry podporuje sadu předdefinovaných rolí Azure, které poskytují různé úrovně oprávnění pro registr kontejnerů Azure. Pomocí řízení přístupu na základě role v Azure (Azure RBAC) přiřaďte uživatelům, instančním objektům nebo jiným identitám, které potřebují interakci s registrem, například pro vyžádání nebo nabízení imagí kontejneru. Můžete také definovat vlastní role s jemně odstupňovanými oprávněními k registru pro různé operace.

Role/oprávnění Přístup k Resource Manageru Vytvoření nebo odstranění registru Nasdílení změn image Obrázek vyžádané replikace Odstranění dat obrázku Změna zásad Podepsat obrázky
Vlastník X X X X X X
Přispěvatel X X X X X X
Čtenář X X
AcrPush X X
AcrPull X
AcrDelete X
AcrImageSigner X

Přiřazení rolí

Postup přidání přiřazení role pro kroky vysoké úrovně pro přidání přiřazení role k existujícímu uživateli, skupině, instančnímu objektu nebo spravované identitě Můžete použít Azure Portal, Azure CLI, Azure PowerShell nebo jiné nástroje Azure.

Při vytváření instančního objektu také nakonfigurujete jeho přístup a oprávnění k prostředkům Azure, jako je registr kontejneru. Ukázkový skript pomocí Azure CLI najdete v tématu Ověřování pomocí služby Azure Container Registry s instančními objekty.

Rozlišení uživatelů a služeb

Kdykoli se použijí oprávnění, osvědčeným postupem je poskytnout nejvíce omezenou sadu oprávnění pro určitou osobu nebo službu k provedení úkolu. Následující sady oprávnění představují sadu funkcí, které mohou používat lidé a bezobslužné služby.

Řešení CI/CD

Při automatizaci docker build příkazů z řešení CI/CD potřebujete docker push funkce. Pro tyto bezobslužné scénáře služeb doporučujeme přiřadit roli AcrPush . Tato role na rozdíl od širší role přispěvatele brání účtu provádět jiné operace registru nebo přistupovat k Azure Resource Manageru.

Uzly hostitele kontejneru

Podobně uzly, na kterých běží kontejnery, potřebují roli AcrPull , ale neměly by vyžadovat funkce čtenáře .

Rozšíření Docker pro Visual Studio Code

Pro nástroje, jako je rozšíření Visual Studio Code Docker, se k výpisu dostupných registrů kontejnerů Azure vyžaduje další přístup zprostředkovatele prostředků. V takovém případě poskytněte uživatelům přístup k roli Čtenář nebo Přispěvatel . Tyto role umožňují docker pull, , az acr listdocker push, az acr builda další funkce.

Přístup k Resource Manageru

Přístup k Azure Resource Manageru se vyžaduje pro správu webu Azure Portal a registru pomocí Azure CLI. Pokud chcete například pomocí příkazu získat seznam registrů az acr list , potřebujete tuto sadu oprávnění.

Vytvoření a odstranění registru

Možnost vytvářet a odstraňovat registry kontejnerů Azure.

Nasdílení změn image

Schopnost image docker push nebo nasdílení jiného podporovaného artefaktu , jako je chart Helm, do registru. Vyžaduje ověření s registrem pomocí autorizované identity.

Obrázek vyžádané replikace

Možnost umístit image mimo karanténu nebo vyžádat docker pull z registru jiný podporovaný artefakt , jako je chart Helm. Vyžaduje ověření s registrem pomocí autorizované identity.

Odstranění dat obrázku

Možnost odstranit image kontejnerů nebo odstranit další podporované artefakty , jako jsou grafy Helm, z registru.

Změna zásad

Možnost konfigurovat zásady v registru. Mezi zásady patří vyprázdnění imagí, povolení karantény a podepisování obrázků.

Podepsat obrázky

Možnost podepsat obrázky, obvykle přiřazené k automatizovanému procesu, který by používal instanční objekt. Toto oprávnění se obvykle kombinuje s nabízenou imagí , která umožňuje nasdílení důvěryhodné image do registru. Podrobnosti najdete v tématu Důvěryhodnost obsahu ve službě Azure Container Registry.

Vlastní role

Stejně jako u jiných prostředků Azure můžete vytvářet vlastní role s jemně odstupňovanými oprávněními ke službě Azure Container Registry. Potom přiřaďte vlastní role uživatelům, instančním objektům nebo jiným identitám, které potřebují pracovat s registrem.

Pokud chcete zjistit, která oprávnění se mají použít pro vlastní roli, podívejte se na seznam akcí Microsoft.ContainerRegistry, zkontrolujte povolené akce předdefinovaných rolí ACR nebo spusťte následující příkaz:

az provider operation show --namespace Microsoft.ContainerRegistry

Pokud chcete definovat vlastní roli, přečtěte si postup vytvoření vlastní role.

Poznámka:

V tenantech nakonfigurovaných s privátním propojením Azure Resource Manageru podporuje Služba Azure Container Registry akce se zástupnými činy, jako Microsoft.ContainerRegistry/*/read jsou nebo Microsoft.ContainerRegistry/registries/*/write ve vlastních rolích, a tím uděluje přístup ke všem odpovídajícím akcím. V tenantovi bez privátního propojení ARM zadejte všechny požadované akce registru jednotlivě ve vlastní roli.

Příklad: Vlastní role pro import imagí

Následující JSON například definuje minimální akce pro vlastní roli, která umožňuje import imagí do registru.

{
   "assignableScopes": [
     "/subscriptions/<optional, but you can limit the visibility to one or more subscriptions>"
   ],
   "description": "Can import images to registry",
   "Name": "AcrImport",
   "permissions": [
     {
       "actions": [
         "Microsoft.ContainerRegistry/registries/push/write",
         "Microsoft.ContainerRegistry/registries/pull/read",
         "Microsoft.ContainerRegistry/registries/read",
         "Microsoft.ContainerRegistry/registries/importImage/action"
       ],
       "dataActions": [],
       "notActions": [],
       "notDataActions": []
     }
   ],
   "roleType": "CustomRole"
 }

Pokud chcete vytvořit nebo aktualizovat vlastní roli pomocí popisu JSON, použijte Azure CLI, šablonu Azure Resource Manageru, Azure PowerShell nebo jiné nástroje Azure. Přidání nebo odebrání přiřazení rolí pro vlastní roli stejným způsobem, jakým spravujete přiřazení rolí pro předdefinované role Azure.

Další kroky

  • Přečtěte si další informace o přiřazování rolí Azure k identitě Azure pomocí webu Azure Portal, Azure CLI, Azure PowerShellu nebo jiných nástrojů Azure.

  • Seznamte se s možnostmi ověřování pro Azure Container Registry.

  • Přečtěte si o povolení oprávnění vymezených úložištěm v registru kontejneru.