Azure Container Registry role i uprawnienia

Usługa Azure Container Registry obsługuje zestaw wbudowanych ról platformy Azure, które zapewniają różne poziomy uprawnień do rejestru kontenerów platformy Azure. Użyj kontroli dostępu opartej na rolach (RBAC) platformy Azure , aby przypisać określone uprawnienia użytkownikom, jednostkom usługi lub innym tożsamościom, które muszą wchodzić w interakcję z rejestrem, na przykład w celu ściągania lub wypychania obrazów kontenerów. Możesz również zdefiniować role niestandardowe z precyzyjnymi uprawnieniami do rejestru dla różnych operacji.

Rola/Uprawnienie Dostęp do Resource Manager Tworzenie/usuwanie rejestru Wypychanie obrazu Obraz ściągania Usuwanie danych obrazu Zmienianie zasad Podpisywanie obrazów
Właściciel X X X X X X
Współautor X X X X X X
Czytelnik X X
AcrPush X X
AcrPull X
AcrDelete X
AcrImageSigner X

Przypisywanie ról

Zobacz Kroki dodawania przypisania roli dla kroków wysokiego poziomu, aby dodać przypisanie roli do istniejącego użytkownika, grupy, jednostki usługi lub tożsamości zarządzanej. Możesz użyć Azure Portal, interfejsu wiersza polecenia platformy Azure, Azure PowerShell lub innych narzędzi platformy Azure.

Podczas tworzenia jednostki usługi można również skonfigurować jego dostęp i uprawnienia do zasobów platformy Azure, takich jak rejestr kontenerów. Przykładowy skrypt korzystający z interfejsu wiersza polecenia platformy Azure można znaleźć w temacie Azure Container Registry authentication with service principals (Uwierzytelnianie za pomocą jednostek usługi).

Rozróżnianie użytkowników i usług

Za każdym razem, gdy są stosowane uprawnienia, najlepszym rozwiązaniem jest zapewnienie najbardziej ograniczonego zestawu uprawnień dla osoby lub usługi w celu wykonania zadania. Poniższe zestawy uprawnień reprezentują zestaw możliwości, które mogą być używane przez ludzi i usługi bez głowy.

Rozwiązania ciągłej integracji/ciągłego wdrażania

Podczas automatyzowania poleceń z rozwiązań ciągłej docker build integracji/ciągłego wdrażania potrzebne są docker push możliwości. W przypadku tych scenariuszy usługi bez głowy zalecamy przypisanie roli AcrPush . Ta rola, w przeciwieństwie do szerszej roli Współautor, uniemożliwia konto wykonywanie innych operacji rejestru lub uzyskiwanie dostępu do usługi Azure Resource Manager.

Węzły hosta kontenera

Podobnie węzły z uruchomionymi kontenerami potrzebują roli AcrPull , ale nie powinny wymagać możliwości czytelnika .

rozszerzenie platformy Docker Visual Studio Code

W przypadku narzędzi, takich jak rozszerzenie platformy Docker Visual Studio Code, do wyświetlania listy dostępnych rejestrów kontenerów platformy Azure wymagany jest dodatkowy dostęp dostawcy zasobów. W takim przypadku zapewnij użytkownikom dostęp do roli Czytelnik lub Współautor . Te role umożliwiają korzystanie docker pullz funkcji , docker push, az acr list, az acr buildi innych.

Dostęp do Resource Manager

Dostęp do usługi Azure Resource Manager jest wymagany do zarządzania Azure Portal i rejestru za pomocą interfejsu wiersza polecenia platformy Azure. Aby na przykład uzyskać listę rejestrów przy użyciu az acr list polecenia , potrzebny jest ten zestaw uprawnień.

Tworzenie i usuwanie rejestru

Możliwość tworzenia i usuwania rejestrów kontenerów platformy Azure.

Wypychanie obrazu

Możliwość korzystania z docker push obrazu lub wypychanie innego obsługiwanego artefaktu , takiego jak wykres helm, do rejestru. Wymaga uwierzytelniania z rejestrem przy użyciu autoryzowanej tożsamości.

Obraz ściągania

Możliwość docker pull ściągnięcia obrazu bez kwarantanny lub ściągnięcia innego obsługiwanego artefaktu , takiego jak wykres helm, z rejestru. Wymaga uwierzytelniania z rejestrem przy użyciu autoryzowanej tożsamości.

Usuwanie danych obrazu

Możliwość usuwania obrazów kontenerów lub usuwania innych obsługiwanych artefaktów , takich jak wykresy helm, z rejestru.

Zmienianie zasad

Możliwość konfigurowania zasad w rejestrze. Zasady obejmują przeczyszczanie obrazów, włączanie kwarantanny i podpisywanie obrazów.

Podpisywanie obrazów

Możliwość podpisywania obrazów, zwykle przypisywanych do zautomatyzowanego procesu, który będzie używać jednostki usługi. To uprawnienie jest zwykle łączone z obrazem wypychanym, aby umożliwić wypychanie zaufanego obrazu do rejestru. Aby uzyskać szczegółowe informacje, zobacz Zaufanie do zawartości w Azure Container Registry.

Role niestandardowe

Podobnie jak w przypadku innych zasobów platformy Azure, możesz tworzyć role niestandardowe z precyzyjnymi uprawnieniami do Azure Container Registry. Następnie przypisz role niestandardowe do użytkowników, jednostek usługi lub innych tożsamości, które muszą wchodzić w interakcję z rejestrem.

Aby określić, które uprawnienia mają być stosowane do roli niestandardowej, zobacz listę akcji Microsoft.ContainerRegistry, przejrzyj dozwolone akcje wbudowanych ról usługi ACR lub uruchom następujące polecenie:

az provider operation show --namespace Microsoft.ContainerRegistry

Aby zdefiniować rolę niestandardową, zobacz Kroki tworzenia roli niestandardowej.

Uwaga

W dzierżawach skonfigurowanych za pomocą usługi Azure Resource Manager łącza prywatnego Azure Container Registry obsługuje akcje wieloznaczne, takie jak Microsoft.ContainerRegistry/*/read lub Microsoft.ContainerRegistry/registries/*/write w rolach niestandardowych, udzielając dostępu do wszystkich pasujących akcji. W dzierżawie bez łącza prywatnego usługi ARM określ wszystkie wymagane akcje rejestru indywidualnie w roli niestandardowej.

Przykład: rola niestandardowa do importowania obrazów

Na przykład poniższy kod JSON definiuje minimalne akcje roli niestandardowej, która zezwala na importowanie obrazów do rejestru.

{
   "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"
 }

Aby utworzyć lub zaktualizować rolę niestandardową przy użyciu opisu JSON, użyj interfejsu wiersza polecenia platformy Azure, szablonu usługi Azure Resource Manager, Azure PowerShell lub innych narzędzi platformy Azure. Dodawanie lub usuwanie przypisań ról dla roli niestandardowej w taki sam sposób, jak zarządzanie przypisaniami ról dla wbudowanych ról platformy Azure.

Następne kroki