Udostępnij za pośrednictwem


Role i uprawnienia usługi Azure Container Registry

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 do użytkowników, jednostek usługi lub innych tożsamości, które muszą wchodzić w interakcję z rejestrem, na przykład w celu ściągnięcia lub wypychania obrazów kontenerów. Możesz również zdefiniować role niestandardowe z precyzyjnymi uprawnieniami do rejestru dla różnych operacji.

Rola/Uprawnienie Uzyskiwanie dostępu do usługi 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ć witryny Azure Portal, interfejsu wiersza polecenia platformy Azure, programu Azure PowerShell lub innych narzędzi platformy Azure.

Podczas tworzenia jednostki usługi można również skonfigurować jej 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 usługi Azure Container Registry z jednostkami 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 bezgłówne.

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

Podczas automatyzowania poleceń z rozwiązań ciągłej integracji/ciągłego wdrażania docker build potrzebne są docker push możliwości. W przypadku tych scenariuszy usługi bezgłowych zalecamy przypisanie roli AcrPush . Ta rola, w przeciwieństwie do szerszej roli Współautor , uniemożliwia kontu 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 wymagają roli AcrPull , ale nie powinny wymagać możliwości czytelnika .

Rozszerzenie platformy Docker programu Visual Studio Code

W przypadku narzędzi takich jak rozszerzenie platformy Docker programu Visual Studio Code wymagany jest dodatkowy dostęp dostawcy zasobów do wyświetlania listy dostępnych rejestrów kontenerów platformy Azure. W takim przypadku podaj 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.

Uzyskiwanie dostępu do usługi Resource Manager

Dostęp do usługi Azure Resource Manager jest wymagany do zarządzania witryną Azure Portal i rejestrem 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ść docker push utworzenia obrazu lub wypchnięcia 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 innego obsługiwanego artefaktu , takiego jak wykres programu 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 usłudze Azure Container Registry.

Role niestandardowe

Podobnie jak w przypadku innych zasobów platformy Azure, można tworzyć role niestandardowe z precyzyjnymi uprawnieniami do usługi 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 wbudowane 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ą łącza prywatnego usługi Azure Resource Manager usługa 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, programu 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