Azure Container Registry rolí a oprávnění

Služba Azure Container Registry podporuje sadu předdefinovaných rolí Azure, které poskytují různé úrovně oprávnění ke službě Azure Container Registry. Řízení přístupu na základě role v Azure (Azure RBAC) slouží k přiřazení konkrétních oprávnění uživatelům, instančním objektům nebo jiným identitám, které potřebují komunikovat s registrem, například kvůli načítání nebo nabízení imagí kontejnerů. 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í Access Resource Manager Vytvoření nebo odstranění registru Nasdílení image Vyžádaná image Odstranění dat obrázku Změna zásad Podepsat obrázky
Vlastník × × × × × ×
Přispěvatel × × × × × ×
Čtenář × ×
AcrPush × ×
AcrPull ×
AcrDelete ×
AcrImageSigner ×

Přiřazení rolí

Základní postup přidání přiřazení role k existujícímu uživateli, skupině, instančnímu objektu nebo spravované identitě najdete v tématu Postup přidání přiřazení role . 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 s využitím Azure CLI najdete v tématu Azure Container Registry ověřování pomocí instančních objektů.

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

Při každém použití oprávnění je osvědčeným postupem poskytnout osobě nebo službě k provedení úkolu co nejomežnější sadu oprávnění. Následující sady oprávnění představují sadu funkcí, které můžou 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 scénáře bezobslužných služeb doporučujeme přiřadit roli AcrPush . Tato role, na rozdíl od širší role Přispěvatel, brání účtu v provádění dalších operací s registrem nebo v přístupu k Azure Resource Manager.

Hostitelské uzly kontejneru

Podobně uzly s vašimi kontejnery potřebují roli AcrPull , ale neměly by vyžadovat funkce čtenáře .

Rozšíření Dockeru pro Visual Studio Code

Pro nástroje, jako je rozšíření Dockeru pro Visual Studio Code, se k výpisu dostupných registrů kontejnerů Azure vyžaduje další přístup poskytovatele 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, docker push, az acr list, az acr builda další možnosti.

Access Resource Manager

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

Vytvoření a odstranění registru

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

Nasdílení image

Možnost nasdílení docker push obrázku nebo odeslání jiného podporovaného artefaktu , jako je chart Helm, do registru. Vyžaduje ověření v registru s použitím autorizované identity.

Vyžádaná image

Možnost vytvořit obrázek bez karantény nebo vyžádat docker pull z registru jiný podporovaný artefakt , jako je chart Helm. Vyžaduje ověření v registru s použitím autorizované identity.

Odstranění dat obrázku

Možnost odstranit image kontejneru nebo jiné podporované artefakty , jako jsou charty Helm, z registru.

Změna zásad

Možnost konfigurovat zásady v registru. Mezi zásady patří mazání imagí, povolení karantény a podepisování imagí.

Podepsat obrázky

Schopnost podepisovat obrázky, obvykle přiřazené automatizovanému procesu, který by používal instanční objekt. Toto oprávnění se obvykle kombinuje s nabízenou imagí , aby bylo možné nasdílení důvěryhodné image do registru. Podrobnosti najdete v tématu Důvěryhodnost obsahu v 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 k Azure Container Registry. Pak 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, projděte si 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, projděte si postup vytvoření vlastní role.

Poznámka

V tenantech nakonfigurovaných pomocí služby Azure Resource Manager Private Link Azure Container Registry podporuje akce se zástupnými znakůýmimi sadou, jako Microsoft.ContainerRegistry/*/read jsou nebo Microsoft.ContainerRegistry/registries/*/write ve vlastních rolích, a udělují tak 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í kód JSON například definuje minimální akce pro vlastní roli, která umožňuje import obrázků 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 Manager, 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