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 pull
z funkcji , docker push
, az acr list
, az acr build
i 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
Dowiedz się więcej na temat przypisywania ról platformy Azure do tożsamości platformy Azure przy użyciu witryny Azure Portal, interfejsu wiersza polecenia platformy Azure, programu Azure PowerShell lub innych narzędzi platformy Azure.
Dowiedz się więcej o opcjach uwierzytelniania usługi Azure Container Registry.
Dowiedz się więcej o włączaniu uprawnień o zakresie repozytorium w rejestrze kontenerów.