Ściąganie obrazu usługi Azure Container Apps z tożsamością zarządzaną

Obrazy można ściągać z repozytoriów prywatnych w usłudze Microsoft Azure Container Registry przy użyciu tożsamości zarządzanych do uwierzytelniania, aby uniknąć użycia poświadczeń administracyjnych. Do uwierzytelniania w usłudze Azure Container Registry można użyć przypisanej przez system lub przypisanej przez użytkownika tożsamości zarządzanej.

W przypadku tożsamości zarządzanej przypisanej przez system tożsamość jest tworzona i zarządzana przez usługę Azure Container Apps. Tożsamość jest powiązana z aplikacją kontenera i jest usuwana po usunięciu aplikacji. Przy użyciu tożsamości zarządzanej przypisanej przez użytkownika tworzysz tożsamość poza usługą Azure Container Apps i zarządzasz nią. Można go przypisać do wielu zasobów platformy Azure, w tym do usługi Azure Container Apps.

Usługa Container Apps sprawdza nową wersję obrazu przy każdym uruchomieniu kontenera. W terminologii platformy Docker lub Kubernetes usługa Container Apps ustawia zasady ściągania obrazów każdego kontenera na alwayswartość .

W tym artykule opisano, jak za pomocą witryny Azure Portal skonfigurować aplikację kontenera do używania tożsamości zarządzanych przypisanych przez użytkownika i przypisanych przez system do ściągania obrazów z prywatnych repozytoriów usługi Azure Container Registry.

Tożsamość zarządzana przypisana przez użytkownika

W poniższych krokach opisano proces konfigurowania aplikacji kontenera w celu używania tożsamości zarządzanej przypisanej przez użytkownika do ściągania obrazów z prywatnych repozytoriów usługi Azure Container Registry.

  1. Utwórz aplikację kontenera z publicznym obrazem.
  2. Dodaj tożsamość zarządzaną przypisaną przez użytkownika do aplikacji kontenera.
  3. Utwórz poprawkę aplikacji kontenera z obrazem prywatnym i tożsamością zarządzaną przypisaną przez użytkownika.

Wymagania wstępne

  • Konto platformy Azure z aktywną subskrypcją.

  • Prywatna usługa Azure Container Registry zawierająca obraz, który chcesz ściągnąć.

  • Usługa Azure Container Registry musi zezwalać na tokeny odbiorców usługi ARM na potrzeby uwierzytelniania w celu używania tożsamości zarządzanej do ściągania obrazów. Użyj następującego polecenia, aby sprawdzić, czy tokeny usługi ARM mogą uzyskiwać dostęp do usługi ACR:

    az acr config authentication-as-arm show -r <REGISTRY>
    

    Jeśli tokeny usługi ARM są niedozwolone, możesz zezwolić na nie za pomocą następującego polecenia:

    az acr config authentication-as-arm update -r <REGISTRY> --status enabled
    
  • Utwórz tożsamość zarządzaną przypisaną przez użytkownika. Aby uzyskać więcej informacji, zobacz Tworzenie tożsamości zarządzanej przypisanej przez użytkownika.

Tworzenie aplikacji kontenera

Wykonaj poniższe kroki, aby utworzyć aplikację kontenera z domyślnym obrazem szybkiego startu.

  1. Przejdź do strony głównej portalu.

  2. Wyszukaj pozycję Container Apps na górnym pasku wyszukiwania.

  3. Wybierz pozycję Container Apps w wynikach wyszukiwania.

  4. Zaznacz przycisk Utwórz.

  5. Na karcie Podstawy wykonaj następujące czynności.

    Ustawienie Akcja
    Subskrypcja Wybierz subskrypcję platformy Azure.
    Grupa zasobów: Wybierz istniejącą grupę zasobów lub utwórz nową.
    Nazwa aplikacji kontenera Wprowadź nazwę aplikacji kontenera.
    Lokalizacja Wybierz lokalizację.
    Tworzenie środowiska aplikacji kontenera Utwórz nowe lub wybierz istniejące środowisko.
  6. Wybierz przycisk Przejrzyj i utwórz w dolnej części strony Tworzenie aplikacji kontenera.

  7. Wybierz przycisk Utwórz w dolnej części okna Tworzenie aplikacji kontenera.

Poczekaj kilka minut na zakończenie wdrażania aplikacji kontenera. Po zakończeniu wdrażania wybierz pozycję Przejdź do zasobu.

Dodawanie tożsamości zarządzanej przypisanej przez użytkownika

  1. Wybierz pozycję Tożsamość z menu po lewej stronie.
  2. Wybierz kartę Użytkownik przypisany .
  3. Wybierz przycisk Dodaj tożsamość zarządzaną przypisaną przez użytkownika.
  4. Wybierz subskrypcję.
  5. Wybierz utworzoną tożsamość.
  6. Wybierz Dodaj.

Tworzenie poprawki aplikacji kontenera

Utwórz poprawkę aplikacji kontenera z obrazem prywatnym i tożsamością zarządzaną przypisaną przez system.

  1. Wybierz pozycję Zarządzanie poprawkami z menu po lewej stronie.

  2. Wybierz pozycję Utwórz nową poprawkę.

  3. Wybierz obraz kontenera z tabeli Obraz kontenera .

  4. Wprowadź informacje w oknie dialogowym Edytowanie kontenera .

    Pole Akcja
    Nazwa/nazwisko Wprowadź nazwę kontenera.
    Źródło obrazu Wybierz pozycję Azure Container Registry.
    Authentication Wybierz pozycję Tożsamość zarządzana.
    Tożsamość Wybierz tożsamość utworzoną z menu rozwijanego.
    Rejestr Wybierz rejestr, którego chcesz użyć z menu rozwijanego.
    Obraz Wprowadź nazwę obrazu, którego chcesz użyć.
    Tag obrazu Wprowadź nazwę i tag obrazu, który chcesz ściągnąć.

    Screen shot of the Edit a container dialog entering user assigned managed identity.

    Uwaga

    Jeśli poświadczenia administracyjne nie są włączone w rejestrze usługi Azure Container Registry, zostanie wyświetlony komunikat ostrzegawczy i musisz ręcznie wprowadzić nazwę obrazu i informacje o tagu.

  5. Wybierz pozycję Zapisz.

  6. Wybierz pozycję Utwórz na stronie Utwórz i wdróż nową poprawkę.

Zostanie utworzona i wdrożona nowa poprawka. Portal automatycznie podejmie próbę dodania acrpull roli do tożsamości zarządzanej przypisanej przez użytkownika. Jeśli rola nie zostanie dodana, możesz dodać ją ręcznie.

Możesz sprawdzić, czy rola została dodana, sprawdzając tożsamość w okienku Tożsamość na stronie aplikacji kontenera.

  1. Wybierz pozycję Tożsamość z menu po lewej stronie.
  2. Wybierz kartę Użytkownik przypisany .
  3. Wybierz tożsamość zarządzaną przypisaną przez użytkownika.
  4. Wybierz pozycję Przypisania ról platformy Azure z menu na stronie zasobu tożsamości zarządzanej.
  5. Sprawdź, czy rola jest przypisana acrpull do tożsamości zarządzanej przypisanej przez użytkownika.

Tworzenie aplikacji kontenera z obrazem prywatnym

Jeśli nie chcesz zacząć od utworzenia aplikacji kontenera z publicznym obrazem, możesz również wykonać następujące czynności.

  1. Utwórz tożsamość zarządzaną przypisaną przez użytkownika.
  2. acrpull Dodaj rolę do tożsamości zarządzanej przypisanej przez użytkownika.
  3. Utwórz aplikację kontenera z obrazem prywatnym i tożsamością zarządzaną przypisaną przez użytkownika.

Ta metoda jest typowa w scenariuszach infrastruktury jako kodu (IaC).

Czyszczenie zasobów

Jeśli nie zamierzasz nadal korzystać z tej aplikacji, możesz usunąć wystąpienie usługi Azure Container Apps i wszystkie skojarzone usługi, usuwając grupę zasobów.

Ostrzeżenie

Usunięcie grupy zasobów spowoduje usunięcie wszystkich zasobów w grupie. Jeśli masz inne zasoby w grupie, zostaną one również usunięte. Jeśli chcesz zachować zasoby, możesz usunąć wystąpienie aplikacji kontenera i środowisko aplikacji kontenera.

  1. Wybierz grupę zasobów w sekcji Przegląd .
  2. Wybierz przycisk Usuń grupę zasobów w górnej części grupy zasobów Przegląd.
  3. Wprowadź nazwę grupy zasobów w oknie dialogowym potwierdzenia.
  4. Wybierz Usuń.
    Proces usuwania grupy zasobów może potrwać kilka minut.

Tożsamość zarządzana przypisana przez system

Metoda konfigurowania tożsamości zarządzanej przypisanej przez system w witrynie Azure Portal jest taka sama jak konfigurowanie tożsamości zarządzanej przypisanej przez użytkownika. Jedyną różnicą jest to, że nie musisz tworzyć tożsamości zarządzanej przypisanej przez użytkownika. Zamiast tego tożsamość zarządzana przypisana przez system jest tworzona podczas tworzenia aplikacji kontenera.

Metoda konfigurowania tożsamości zarządzanej przypisanej przez system w witrynie Azure Portal to:

  1. Utwórz aplikację kontenera z publicznym obrazem.
  2. Utwórz poprawkę aplikacji kontenera z obrazem prywatnym i tożsamością zarządzaną przypisaną przez system.

Wymagania wstępne

Tworzenie aplikacji kontenera

Wykonaj następujące kroki, aby utworzyć aplikację kontenera z domyślnym obrazem szybkiego startu.

  1. Przejdź do strony głównej portalu.

  2. Wyszukaj pozycję Container Apps na górnym pasku wyszukiwania.

  3. Wybierz pozycję Container Apps w wynikach wyszukiwania.

  4. Zaznacz przycisk Utwórz.

  5. Na karcie Podstawy wykonaj następujące czynności.

    Ustawienie Akcja
    Subskrypcja Wybierz subskrypcję platformy Azure.
    Grupa zasobów: Wybierz istniejącą grupę zasobów lub utwórz nową.
    Nazwa aplikacji kontenera Wprowadź nazwę aplikacji kontenera.
    Lokalizacja Wybierz lokalizację.
    Tworzenie środowiska aplikacji kontenera Utwórz nowe lub wybierz istniejące środowisko.
  6. Wybierz przycisk Przejrzyj i utwórz w dolnej części strony Tworzenie aplikacji kontenera.

  7. Wybierz przycisk Utwórz w dolnej części strony Tworzenie aplikacji kontenera.

Poczekaj kilka minut na zakończenie wdrażania aplikacji kontenera. Po zakończeniu wdrażania wybierz pozycję Przejdź do zasobu.

Edytowanie i wdrażanie poprawki

Zmodyfikuj kontener, aby używać obrazu z prywatnego rejestru Azure Container Registry, i skonfiguruj uwierzytelnianie do używania tożsamości przypisanej przez system.

  1. Kontenery z menu bocznego po lewej stronie.

  2. Wybierz pozycję Edytuj i wdróż.

  3. Wybierz kontener simple-hello-world-container z listy.

    Ustawienie Akcja
    Nazwa/nazwisko Wprowadź nazwę aplikacji kontenera.
    Źródło obrazu Wybierz pozycję Azure Container Registry.
    Authentication Wybierz pozycję Tożsamość zarządzana.
    Tożsamość Wybierz pozycję Przypisany system.
    Rejestr Wprowadź nazwę rejestru.
    Obraz Wprowadź nazwę obrazu.
    Tag obrazu Wprowadź tag.

    Screen shot Edit a container with system-assigned managed identity.

    Uwaga

    Jeśli poświadczenia administracyjne nie są włączone w rejestrze usługi Azure Container Registry, zostanie wyświetlony komunikat ostrzegawczy i musisz ręcznie wprowadzić nazwę obrazu i informacje o tagu.

  4. Wybierz pozycję Zapisz w dolnej części strony.

  5. Wybierz pozycję Utwórz w dolnej części strony Tworzenie i wdrażanie nowej poprawki

  6. Po kilku minutach wybierz pozycję Odśwież na stronie zarządzanie poprawkami , aby wyświetlić nową wersję.

Zostanie utworzona i wdrożona nowa poprawka. Portal automatycznie podejmie próbę dodania acrpull roli do tożsamości zarządzanej przypisanej przez system. Jeśli rola nie zostanie dodana, możesz dodać ją ręcznie.

Możesz sprawdzić, czy rola została dodana, sprawdzając tożsamość w okienku Tożsamość na stronie aplikacji kontenera.

  1. Wybierz pozycję Tożsamość z menu po lewej stronie.
  2. Wybierz kartę Przypisane przez system.
  3. Wybierz pozycję Przypisania ról platformy Azure.
  4. Sprawdź, czy rola jest przypisana acrpull do tożsamości zarządzanej przypisanej przez system.

Czyszczenie zasobów

Jeśli nie zamierzasz nadal korzystać z tej aplikacji, możesz usunąć wystąpienie usługi Azure Container Apps i wszystkie skojarzone usługi, usuwając grupę zasobów.

Ostrzeżenie

Usunięcie grupy zasobów spowoduje usunięcie wszystkich zasobów w grupie. Jeśli masz inne zasoby w grupie, zostaną one również usunięte. Jeśli chcesz zachować zasoby, możesz usunąć wystąpienie aplikacji kontenera i środowisko aplikacji kontenera.

  1. Wybierz grupę zasobów w sekcji Przegląd .
  2. Wybierz przycisk Usuń grupę zasobów w górnej części grupy zasobów Przegląd.
  3. Wprowadź nazwę grupy zasobów w oknie dialogowym potwierdzenia.
  4. Wybierz Usuń.
    Proces usuwania grupy zasobów może potrwać kilka minut.

W tym artykule opisano sposób konfigurowania aplikacji kontenera w celu używania tożsamości zarządzanych do ściągania obrazów z prywatnego repozytorium usługi Azure Container Registry przy użyciu interfejsu wiersza polecenia platformy Azure i programu Azure PowerShell.

Wymagania wstępne

Wymaganie wstępne opis
Konto platformy Azure Konto platformy Azure z aktywną subskrypcją. Jeśli go nie masz, możesz go utworzyć bezpłatnie.
Interfejs wiersza polecenia platformy Azure Jeśli używasz interfejsu wiersza polecenia platformy Azure, zainstaluj interfejs wiersza polecenia platformy Azure na komputerze lokalnym.
Azure PowerShell W przypadku korzystania z programu PowerShell zainstaluj program Azure PowerShell na komputerze lokalnym. Upewnij się, że zainstalowano najnowszą wersję modułu Az.App, uruchamiając polecenie Install-Module -Name Az.App.
Azure Container Registry Prywatna usługa Azure Container Registry zawierająca obraz, który chcesz ściągnąć. Szybki start: tworzenie prywatnego rejestru kontenerów przy użyciu interfejsu wiersza polecenia platformy Azure lub szybkiego startu: tworzenie prywatnego rejestru kontenerów przy użyciu programu Azure PowerShell

Konfiguracja

Najpierw zaloguj się do platformy Azure z poziomu interfejsu wiersza polecenia lub programu PowerShell. Uruchom następujące polecenie i postępuj zgodnie z monitami, aby ukończyć proces uwierzytelniania.

Zainstaluj rozszerzenie Azure Container Apps dla interfejsu wiersza polecenia.

az extension add --name containerapp --upgrade

Po zainstalowaniu bieżącego rozszerzenia lub modułu zarejestruj Microsoft.App przestrzeń nazw i Microsoft.OperationalInsights dostawcę, jeśli jeszcze ich nie zarejestrowano.

az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights

Następnie ustaw następujące zmienne środowiskowe. Zastąp <symbole> ZASTĘPCZE własnymi wartościami.

RESOURCE_GROUP="<YOUR_RESOURCE_GROUP_NAME>"
LOCATION="<YOUR_LOCATION>"
CONTAINERAPPS_ENVIRONMENT="<YOUR_ENVIRONMENT_NAME>"
REGISTRY_NAME="<YOUR_REGISTRY_NAME>"
CONTAINERAPP_NAME="<YOUR_CONTAINERAPP_NAME>"
IMAGE_NAME="<YOUR_IMAGE_NAME>"

Jeśli masz już grupę zasobów, pomiń ten krok. W przeciwnym razie utwórz grupę zasobów.

az group create \
  --name $RESOURCE_GROUP \
  --location $LOCATION

Tworzenie środowiska aplikacji kontenera

Jeśli środowisko nie istnieje, uruchom następujące polecenie:

Aby utworzyć środowisko, uruchom następujące polecenie:

az containerapp env create \
  --name $CONTAINERAPPS_ENVIRONMENT \
  --resource-group $RESOURCE_GROUP \
  --location $LOCATION

Przejdź do następnej sekcji, aby skonfigurować tożsamość zarządzaną przypisaną przez użytkownika lub przejść do sekcji Tożsamość zarządzana przypisana przez system.

Tożsamość zarządzana przypisana przez użytkownika

Postępuj zgodnie z tą procedurą, aby skonfigurować tożsamość zarządzaną przypisaną przez użytkownika:

  1. Utwórz tożsamość zarządzaną przypisaną przez użytkownika.
  2. Jeśli używasz programu PowerShell, przypisz acrpull rolę rejestru do tożsamości zarządzanej. Interfejs wiersza polecenia platformy Azure automatycznie wykonuje to przypisanie.
  3. Utwórz aplikację kontenera z obrazem z rejestru prywatnego uwierzytelnionego przy użyciu tożsamości zarządzanej przypisanej przez użytkownika.

Tworzenie tożsamości zarządzanej przypisanej przez użytkownika

Utwórz tożsamość zarządzaną przypisaną przez użytkownika. <Zastąp symbole> ZASTĘPCZE nazwą tożsamości zarządzanej.

IDENTITY="<YOUR_IDENTITY_NAME>"
az identity create \
  --name $IDENTITY \
  --resource-group $RESOURCE_GROUP

Pobierz identyfikator zasobu tożsamości.

IDENTITY_ID=`az identity show \
  --name $IDENTITY \
  --resource-group $RESOURCE_GROUP \
  --query id`

Tworzenie aplikacji kontenera

Utwórz aplikację kontenera przy użyciu obrazu z rejestru prywatnego uwierzytelnionego przy użyciu tożsamości.

Skopiuj identyfikator zasobu tożsamości, aby wkleić go do <symboli zastępczych IDENTITY_ID> w poniższym poleceniu. Jeśli tag obrazu nie latestma wartości , zastąp ciąg "latest" tagiem.

echo $IDENTITY_ID
az containerapp create \
  --name $CONTAINERAPP_NAME \
  --resource-group $RESOURCE_GROUP \
  --environment $CONTAINERAPPS_ENVIRONMENT \
  --user-assigned <IDENTITY_ID> \
  --registry-identity <IDENTITY_ID> \
  --registry-server "$REGISTRY_NAME.azurecr.io" \
  --image "$REGISTRY_NAME.azurecr.io/$IMAGE_NAME:latest"

Czyszczenie

Uwaga

Następujące polecenie usuwa określoną grupę zasobów i wszystkie zawarte w niej zasoby. Jeśli zasoby spoza zakresu tego przewodnika Szybki start istnieją w określonej grupie zasobów, zostaną również usunięte.

az group delete --name $RESOURCE_GROUP

Tożsamość zarządzana przypisana przez system

Aby skonfigurować tożsamość przypisaną przez system, musisz:

  1. Utwórz aplikację kontenera z publicznym obrazem.
  2. Przypisz tożsamość zarządzaną przypisaną przez system do aplikacji kontenera.
  3. Zaktualizuj aplikację kontenera przy użyciu obrazu prywatnego.

Tworzenie aplikacji kontenera

Utwórz kontener z publicznym obrazem.

az containerapp create \
  --name $CONTAINERAPP_NAME \
  --resource-group $RESOURCE_GROUP \
  --environment $CONTAINERAPPS_ENVIRONMENT \
  --image mcr.microsoft.com/k8se/quickstart:latest \
  --target-port 80 \
  --ingress external

Aktualizowanie aplikacji kontenera

Zaktualizuj aplikację kontenera przy użyciu obrazu z prywatnego rejestru kontenerów i dodaj tożsamość przypisaną przez system, aby uwierzytelnić ściąganie usługi Azure Container Registry. Możesz również uwzględnić inne ustawienia niezbędne dla aplikacji kontenera, takie jak ustawienia ruchu przychodzącego, skalowania i języka Dapr.

Ustaw serwer rejestru i włącz tożsamość zarządzaną przypisaną przez system w aplikacji kontenera.

az containerapp registry set \
  --name $CONTAINERAPP_NAME \
  --resource-group $RESOURCE_GROUP \
  --identity system \
  --server "$REGISTRY_NAME.azurecr.io"
az containerapp update \
  --name $CONTAINERAPP_NAME \
  --resource-group $RESOURCE_GROUP \
  --image "$REGISTRY_NAME.azurecr.io/$IMAGE_NAME:latest"

Czyszczenie

Uwaga

Następujące polecenie usuwa określoną grupę zasobów i wszystkie zawarte w niej zasoby. Jeśli zasoby spoza zakresu tego przewodnika Szybki start istnieją w określonej grupie zasobów, zostaną również usunięte.

az group delete --name $RESOURCE_GROUP

Następne kroki