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 list
docker push
, az acr build
a 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.