Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Istnieje kilka sposobów uwierzytelniania w rejestrze kontenerów platformy Azure, z których każdy ma zastosowanie do co najmniej jednego scenariusza użycia rejestru.
Zalecane sposoby obejmują:
- Uwierzytelnianie w rejestrze bezpośrednio za pomocą indywidualnego logowania
- Aplikacje i orkiestratory kontenerów mogą wykonywać uwierzytelnianie nienadzorowane lub „bezgłowy” przy użyciu uprawnienia usługi Microsoft Entra
Jeśli używasz rejestru kontenerów z usługą Azure Kubernetes Service (AKS) lub innym klastrem Kubernetes, zobacz Scenariusze uwierzytelniania w usłudze Azure Container Registry z platformy Kubernetes.
Opcje uwierzytelniania
W poniższej tabeli wymieniono dostępne metody uwierzytelniania i typowe scenariusze. Aby uzyskać szczegółowe informacje, zobacz połączoną zawartość.
Metoda | Jak uwierzytelnić | Scenariuszy | Microsoft Entra kontrola dostępu oparta na rolach (RBAC) | Ograniczenia |
---|---|---|---|---|
Indywidualna tożsamość firmy Microsoft Entra |
az acr login w interfejsie wiersza polecenia platformy AzureConnect-AzContainerRegistry w programie Azure PowerShell |
Interaktywne wypychanie/ściąganie przez deweloperów, testerów | Tak | Token Entra firmy Microsoft musi być odnawiany co 3 godziny |
Tożsamość usługi Microsoft Entra | docker login az acr login w interfejsie wiersza polecenia platformy AzureConnect-AzContainerRegistry w programie Azure PowerShellUstawienia logowania rejestru w interfejsach API lub narzędziach Sekret pobierania Kubernetes |
Nienadzorowane przesyłanie z potoku CI/CD Nienadzorowane ściąganie na platformę Azure lub usługi zewnętrzne |
Tak | Domyślny czas wygaśnięcia hasła sp to 1 rok |
Tożsamość zarządzana firmy Microsoft dla zasobów platformy Azure | docker login az acr login w interfejsie wiersza polecenia platformy AzureConnect-AzContainerRegistry w programie Azure PowerShell |
Nienadzorowane wypychanie z potoku CI/CD platformy Azure Nienadzorowane pobieranie danych do usług Azure Aby uzyskać listę scenariuszy przypisywania ról tożsamości zarządzanej, zapoznaj się ze scenariuszami przypisywania ról ACR. |
Tak Przypisania ról w Microsoft Entra RBAC z wbudowanymi rolami ACR Kontrola dostępu oparta na atrybutach firmy Microsoft (ABAC) dla uprawnień repozytorium opartego na usłudze Microsoft Entra |
Użyj tylko z wybranych usług platformy Azure, które obsługują tożsamości zarządzane dla zasobów platformy Azure |
Zarządzana tożsamość kubeleta węzła klastra AKS | Dołącz rejestr, gdy klaster AKS jest tworzony lub aktualizowany | Nienadzorowane ściąganie do węzła klastra usługi AKS w tej samej lub innej subskrypcji | Nie, dostęp tylko do ściągania | Dostępne tylko w klastrze usługi AKS Nie można używać do uwierzytelniania między dzierżawcami |
Jednostka usługi klastra usługi AKS | Włącz po utworzeniu lub zaktualizowaniu klastra AKS | Automatyczne ściąganie do klastra usługi AKS z rejestru w innej dzierżawie Entra | Nie, dostęp tylko do ściągania | Dostępne tylko w klastrze AKS |
Użytkownik administratora | docker login |
Interakcyjne wypychanie/ściąganie przez pojedynczego dewelopera lub testera Wdrażanie obrazu z rejestru do usługi Azure App Service lub usługi Azure Container Instances w portalu |
Nie, zawsze uzyskuj dostęp przez pociąganie i wypychanie | Pojedyncze konto na rejestr, niezalecane dla wielu użytkowników |
Uprawnienia do repozytorium opartego na tokenach firmy Innej niż Microsoft | docker login az acr login w interfejsie wiersza polecenia platformy AzureConnect-AzContainerRegistry w programie Azure PowerShellSekret pobierania Kubernetes |
Interaktywne wypychanie/ściąganie do repozytorium przez pojedynczego dewelopera lub testera Nienadzorowane ściąganie z repozytorium przez pojedynczy system lub urządzenie zewnętrzne |
Uprawnienia repozytorium oparte na tokenach nie obsługują przypisania ról RBAC Microsoft Entra. Aby uzyskać uprawnienia do repozytorium opartego na usłudze Microsoft Entra, zobacz Microsoft Entra attribute-based access control (ABAC) for Microsoft Entra-based repository permissions zamiast tego. |
Obecnie nie jest zintegrowana z tożsamością Microsoft Entra |
Logowanie indywidualne przy użyciu identyfikatora Entra firmy Microsoft
Podczas bezpośredniej pracy z rejestrem, na przykład przy pobieraniu obrazów na stację roboczą dewelopera i wysyłaniu obrazów z tej stacji do utworzonego rejestru, należy uwierzytelnić się, korzystając z indywidualnej tożsamości platformy Azure. Zaloguj się do interfejsu wiersza polecenia platformy Azure za pomocą polecenia az login, a następnie uruchom polecenie az acr login :
az login
az acr login --name <acrName>
Po zalogowaniu się za pomocą az acr login
CLI używa tokenu utworzonego podczas wykonywania az login
, aby bezproblemowo uwierzytelniać sesję w rejestrze. Aby ukończyć przepływ uwierzytelniania, interfejs wiersza polecenia Dockera i demon Dockera muszą być zainstalowane i uruchomione w środowisku.
az acr login
używa klienta platformy Docker do ustawienia tokenu docker.config
Microsoft Entra w pliku. Po zalogowaniu się w ten sposób, twoje poświadczenia są buforowane, a kolejne docker
polecenia w sesji nie wymagają nazwy użytkownika ani hasła.
Wskazówka
Użyj az acr login
również do uwierzytelnienia tożsamości indywidualnej, gdy chcesz przesłać lub pobrać artefakty inne niż obrazy Docker do rejestru, takie jak artefakty OCI.
W przypadku dostępu do rejestru token używany przez az acr login
jest ważny przez 3 godziny, dlatego zalecamy, aby przed uruchomieniem docker
polecenia zawsze logować się do rejestru. Jeśli twój token wygaśnie, możesz go odświeżyć, ponownie używając polecenia az acr login
do ponownego uwierzytelnienia.
Korzystanie az acr login
z tożsamości Azure zapewnia kontrolę dostępu (RBAC) opartą na rolach platformy Azure. W niektórych scenariuszach możesz zalogować się do rejestru przy użyciu własnej tożsamości w usłudze Microsoft Entra ID lub skonfigurować innych użytkowników platformy Azure z określonymi rolami. Zobacz Omówienie uprawnień i ról usługi Azure Container Registry. W scenariuszach obejmujących wiele usług lub w celu obsługi potrzeb grupy roboczej lub przepływu pracy programowania, w którym nie chcesz zarządzać dostępem indywidualnym, możesz również zalogować się przy użyciu tożsamości zarządzanej dla zasobów platformy Azure.
az acr login with --expose-token
W niektórych przypadkach musisz uwierzytelnić się za pomocą az acr login
, gdy demon Docker nie jest uruchomiony w danym środowisku. Na przykład może być konieczne uruchomienie az acr login
skryptu w usłudze Azure Cloud Shell, który udostępnia interfejs wiersza polecenia platformy Docker, ale nie uruchamia demona platformy Docker.
W tym scenariuszu uruchom najpierw polecenie az acr login
z parametrem --expose-token
. Ta opcja uwidacznia token dostępu zamiast logowania za pośrednictwem interfejsu wiersza polecenia platformy Docker.
az acr login --name <acrName> --expose-token
Wynik wyświetla token dostępu, skrócony tutaj.
{
"accessToken": "eyJhbGciOiJSUzI1NiIs[...]24V7wA",
"loginServer": "myregistry.azurecr.io"
}
W przypadku uwierzytelniania rejestru zalecamy przechowywanie poświadczenia tokenu w bezpiecznej lokalizacji i przestrzeganie zalecanych praktyk w celu zarządzania poświadczeniami logowania platformy Docker. Na przykład zapisz wartość tokenu w zmiennej środowiskowej:
TOKEN=$(az acr login --name <acrName> --expose-token --output tsv --query accessToken)
Następnie uruchom polecenie docker login
, przekazując 00000000-0000-0000-0000-000000000000
jako nazwę użytkownika i używając tokenu dostępu jako hasło:
docker login myregistry.azurecr.io --username 00000000-0000-0000-0000-000000000000 --password-stdin <<< $TOKEN
Podobnie można użyć tokenu zwróconego przez az acr login
przy użyciu polecenia helm registry login
, aby uwierzytelnić się w rejestrze.
echo $TOKEN | helm registry login myregistry.azurecr.io \
--username 00000000-0000-0000-0000-000000000000 \
--password-stdin
Jednostka usługi
Jeśli przypiszesz jednostkę usługi do rejestru, aplikacja lub usługa może jej używać do uwierzytelniania bezgłowego. Jednostki usługi umożliwiają kontrolę dostępu opartą na rolach (RBAC) platformy Azure do rejestru i można przypisać wiele jednostek usługi do rejestru. Główne usługi umożliwiają definiowanie różnego dostępu dla różnych aplikacji.
Token uwierzytelniania usługi ACR jest tworzony podczas logowania do usługi ACR i jest odświeżany po kolejnych operacjach. Czas wygaśnięcia tego tokenu wynosi 3 godziny.
Aby uzyskać listę dostępnych ról, zobacz Azure Container Registry Entra permissions and roles overview (Omówienie uprawnień i ról usługi Azure Container Registry).
Aby uzyskać skrypty CLI służące do tworzenia jednostki usługi do uwierzytelniania się w rejestrze kontenerów Azure oraz dodatkowe wskazówki, zobacz Uwierzytelnianie usługi Azure Container Registry przy użyciu jednostek usługi.
Konto administratora
Każdy rejestr kontenerów zawiera konto użytkownika administratora, które jest domyślnie wyłączone. Możesz włączyć użytkownika administratora i zarządzać jego poświadczeniami w witrynie Azure Portal lub przy użyciu interfejsu wiersza polecenia platformy Azure, programu Azure PowerShell lub innych narzędzi platformy Azure. Konto administratora ma pełne uprawnienia do rejestru.
Konto administratora jest obecnie wymagane w niektórych scenariuszach, aby wdrożyć obraz z rejestru kontenerów do niektórych usług platformy Azure. Na przykład konto administratora jest potrzebne, gdy używasz witryny Azure Portal do wdrażania obrazu kontenera z rejestru bezpośrednio w usłudze Azure Container Instances lub Azure Web Apps for Containers.
Ważne
Konto administratora jest przeznaczone dla jednego użytkownika w celu uzyskania dostępu do rejestru, głównie do celów testowych. Nie zalecamy udostępniania poświadczeń konta administratora przez wielu użytkowników. Wszyscy użytkownicy uwierzytelniani przy użyciu konta administratora są wyświetlani jako pojedynczy użytkownik z dostępem do przesyłania i pobierania do rejestru. Zmiana lub wyłączenie tego konta powoduje wyłączenie dostępu do rejestru dla wszystkich użytkowników, którzy używają swoich poświadczeń. Indywidualna tożsamość jest zalecana dla użytkowników i jednostek usługi w scenariuszach bezgłowych.
Konto administratora jest dostarczane z dwoma hasłami, z których oba mogą być ponownie generowane. Nowe hasła utworzone dla kont administratorów są dostępne natychmiast. Regenerowanie haseł dla kont administratora zajmie 60 sekund, aby zmiany zostały odzwierciedlone i były dostępne. Dwa hasła umożliwiają utrzymywanie połączenia z rejestrem przy użyciu jednego hasła podczas ponownego generowania drugiego. Jeśli konto administratora jest włączone, możesz przekazać nazwę użytkownika i jedno z haseł do docker login
polecenia, po wyświetleniu monitu o uwierzytelnianie podstawowe do rejestru. Przykład:
docker login myregistry.azurecr.io
Aby zapoznać się z zalecanymi praktykami dotyczącymi zarządzania poświadczeniami logowania, zobacz odniesienie do polecenia docker login.
Aby włączyć użytkownika administratora dla istniejącego rejestru, możesz użyć --admin-enabled
parametru polecenia az acr update w interfejsie wiersza polecenia platformy Azure:
az acr update -n <acrName> --admin-enabled true
Możesz włączyć użytkownika administratora w witrynie Azure Portal, przechodząc do rejestru, wybierając pozycję Klucze dostępu w obszarze USTAWIENIA, a następnie pozycję Włącz w obszarze Użytkownik administracyjny.
Zaloguj się za pomocą alternatywnego narzędzia kontenerowego zamiast Docker
W niektórych scenariuszach należy użyć alternatywnych narzędzi kontenerowych, takich jak podman
, zamiast powszechnego narzędzia kontenerowego docker
. Na przykład: Platforma Docker nie jest już dostępna w systemach RHEL 8 i 9, więc musisz przełączyć narzędzie kontenera.
Domyślne narzędzie kontenera jest ustawione na docker
w przypadku poleceń az acr login
. Jeśli nie skonfigurujesz domyślnego narzędzia kontenerowego i brakuje polecenia docker
w twoim środowisku, zostanie wyświetlony następujący błąd:
az acr login --name <acrName>
2024-03-29 07:30:10.014426 An error occurred: DOCKER_COMMAND_ERROR
Please verify if Docker client is installed and running.
Aby zmienić domyślne narzędzie kontenera używane przez az acr login
polecenie, można ustawić zmienną środowiskową DOCKER_COMMAND
. Przykład:
DOCKER_COMMAND=podman \
az acr login --name <acrName>
Uwaga / Notatka
Do korzystania z tej funkcji potrzebna jest wersja interfejsu wiersza polecenia platformy Azure w wersji 2.59.0 lub nowszej. Uruchom az --version
, aby znaleźć wersję. Jeśli musisz zainstalować lub uaktualnić, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure.