Share via


Extração de imagem das Azure Container Apps com identidade gerida

Você pode extrair imagens de repositórios privados no Registro de Contêiner do Microsoft Azure usando identidades gerenciadas para autenticação para evitar o uso de credenciais administrativas. Você pode usar uma identidade gerenciada atribuída pelo sistema ou pelo usuário para autenticar com o Registro de Contêiner do Azure.

Com uma identidade gerenciada atribuída ao sistema, a identidade é criada e gerenciada pelos Aplicativos de Contêiner do Azure. A identidade está vinculada ao seu aplicativo de contêiner e é excluída quando seu aplicativo é excluído. Com uma identidade gerenciada atribuída pelo usuário, você cria e gerencia a identidade fora dos Aplicativos de Contêiner do Azure. Ele pode ser atribuído a vários recursos do Azure, incluindo Aplicativos de Contêiner do Azure.

O Container Apps verifica se há uma nova versão da imagem sempre que um contêiner é iniciado. Na terminologia do Docker ou do Kubernetes, o Container Apps define a política de pull de imagem de cada contêiner como always.

Este artigo descreve como usar o portal do Azure para configurar seu aplicativo de contêiner para usar identidades gerenciadas atribuídas pelo usuário e pelo sistema para extrair imagens de repositórios privados do Registro de Contêiner do Azure.

Identidade gerida atribuída pelo utilizador

As etapas a seguir descrevem o processo para configurar seu aplicativo de contêiner para usar uma identidade gerenciada atribuída pelo usuário para extrair imagens de repositórios privados do Registro de Contêiner do Azure.

  1. Crie um aplicativo de contêiner com uma imagem pública.
  2. Adicione a identidade gerenciada atribuída pelo usuário ao aplicativo de contêiner.
  3. Crie uma revisão de aplicativo de contêiner com uma imagem privada e a identidade gerenciada atribuída pelo usuário.

Pré-requisitos

  • Uma conta do Azure com uma subscrição ativa.

  • Um Registro de Contêiner do Azure privado contendo uma imagem que você deseja extrair.

  • Seu Registro de Contêiner do Azure deve permitir tokens de audiência ARM para autenticação para usar a identidade gerenciada para extrair imagens. Use o seguinte comando para verificar se os tokens ARM têm permissão para acessar seu ACR:

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

    Se os tokens ARM não forem permitidos, você poderá permiti-los com o seguinte comando:

    az acr config authentication-as-arm update -r <REGISTRY> --status enabled
    
  • Crie uma identidade gerida atribuída pelo utilizador. Para obter mais informações, consulte Criar uma identidade gerenciada atribuída pelo usuário.

Criar um aplicativo de contêiner

Use as etapas a seguir para criar um aplicativo de contêiner com a imagem de início rápido padrão.

  1. Navegue até a página inicial do portal.

  2. Pesquise por Aplicativos de contêiner na barra de pesquisa superior.

  3. Selecione Aplicativos de contêiner nos resultados da pesquisa.

  4. Selecione o botão Criar.

  5. Na guia Noções básicas, execute as seguintes ações.

    Definição Ação
    Subscrição Selecione a subscrição do Azure.
    Grupo de recursos Selecione um grupo de recursos existente ou crie um novo.
    Nome do aplicativo de contêiner Insira um nome de aplicativo de contêiner.
    Localização Selecione uma localização.
    Criar ambiente de aplicativo de contêiner Crie um ambiente novo ou selecione um existente.
  6. Selecione o botão Rever + Criar na parte inferior da página Criar Aplicativo de Contêiner.

  7. Selecione o botão Criar na parte inferior da janela Criar aplicativo de contêiner.

Aguarde alguns minutos para que a implantação do aplicativo de contêiner seja concluída. Quando a implantação estiver concluída, selecione Ir para recurso.

Adicionar a identidade gerenciada atribuída pelo usuário

  1. Selecione Identidade no menu à esquerda.
  2. Selecione a guia Usuário atribuído .
  3. Selecione o botão Adicionar identidade gerenciada atribuída ao usuário.
  4. Selecione a sua subscrição.
  5. Selecione a identidade que criou.
  6. Selecione Adicionar.

Criar uma revisão de aplicativo de contêiner

Crie uma revisão de aplicativo de contêiner com uma imagem privada e a identidade gerenciada atribuída ao sistema.

  1. Selecione Gerenciamento de revisões no menu à esquerda.

  2. Selecione Criar nova revisão.

  3. Selecione a imagem do contêiner na tabela Imagem do contêiner .

  4. Insira as informações na caixa de diálogo Editar um contêiner .

    Campo Ação
    Nome Insira um nome para o contêiner.
    Fonte da imagem Selecione Azure Container Registry.
    Autenticação Selecione Identidade gerenciada.
    Identidade Selecione a identidade que você criou no menu suspenso.
    Registo Selecione o registro que deseja usar no menu suspenso.
    Image Introduza o nome da imagem que pretende utilizar.
    Tag de imagem Introduza o nome e a etiqueta da imagem que pretende extrair.

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

    Nota

    Se as credenciais administrativas não estiverem habilitadas no registro do Registro de Contêiner do Azure, você verá uma mensagem de aviso exibida e precisará inserir o nome da imagem e as informações da marca manualmente.

  5. Selecione Guardar.

  6. Selecione Criar na página Criar e implantar nova revisão.

Uma nova revisão será criada e implantada. O portal tentará adicionar automaticamente a acrpull função à identidade gerenciada atribuída pelo usuário. Se a função não for adicionada, você poderá adicioná-la manualmente.

Você pode verificar se a função foi adicionada verificando a identidade no painel Identidade da página do aplicativo contêiner.

  1. Selecione Identidade no menu à esquerda.
  2. Selecione a guia Usuário atribuído .
  3. Selecione a identidade gerenciada atribuída pelo usuário.
  4. Selecione Atribuições de função do Azure no menu na página de recursos de identidade gerenciada.
  5. Verifique se a acrpull função está atribuída à identidade gerenciada atribuída pelo usuário.

Criar um aplicativo de contêiner com uma imagem privada

Se você não quiser começar criando um aplicativo de contêiner com uma imagem pública, também pode fazer o seguinte.

  1. Crie uma identidade gerida atribuída pelo utilizador.
  2. Adicione a acrpull função à identidade gerenciada atribuída pelo usuário.
  3. Crie um aplicativo de contêiner com uma imagem privada e a identidade gerenciada atribuída pelo usuário.

Esse método é típico em cenários de infraestrutura como código (IaC).

Clean up resources (Limpar recursos)

Se não pretender continuar a utilizar esta aplicação, pode eliminar a instância das Aplicações de Contentor do Azure e todos os serviços associados removendo o grupo de recursos.

Aviso

A exclusão do grupo de recursos excluirá todos os recursos do grupo. Se você tiver outros recursos no grupo, eles também serão excluídos. Se quiser manter os recursos, você pode excluir a instância do aplicativo contêiner e o ambiente do aplicativo contêiner.

  1. Selecione seu grupo de recursos na seção Visão geral .
  2. Selecione o botão Excluir grupo de recursos na parte superior da visão geral do grupode recursos.
  3. Insira o nome do grupo de recursos na caixa de diálogo de confirmação.
  4. Selecione Eliminar.
    O processo para excluir o grupo de recursos pode levar alguns minutos para ser concluído.

Identidade gerida atribuída pelo sistema

O método para configurar uma identidade gerenciada atribuída pelo sistema no portal do Azure é o mesmo que configurar uma identidade gerenciada atribuída pelo usuário. A única diferença é que você não precisa criar uma identidade gerenciada atribuída pelo usuário. Em vez disso, a identidade gerenciada atribuída ao sistema é criada quando você cria o aplicativo de contêiner.

O método para configurar uma identidade gerenciada atribuída ao sistema no portal do Azure é:

  1. Crie um aplicativo de contêiner com uma imagem pública.
  2. Crie uma revisão de aplicativo de contêiner com uma imagem privada e a identidade gerenciada atribuída ao sistema.

Pré-requisitos

  • Uma conta do Azure com uma subscrição ativa.
  • Um Registro de Contêiner do Azure privado contendo uma imagem que você deseja extrair. Consulte Criar um Registro de Contêiner do Azure privado.

Criar um aplicativo de contêiner

Siga estas etapas para criar um aplicativo de contêiner com a imagem de início rápido padrão.

  1. Navegue até a página inicial do portal.

  2. Pesquise por Aplicativos de contêiner na barra de pesquisa superior.

  3. Selecione Aplicativos de contêiner nos resultados da pesquisa.

  4. Selecione o botão Criar.

  5. Na guia Noções básicas, execute as seguintes ações.

    Definição Ação
    Subscrição Selecione a subscrição do Azure.
    Grupo de recursos Selecione um grupo de recursos existente ou crie um novo.
    Nome do aplicativo de contêiner Insira um nome de aplicativo de contêiner.
    Localização Selecione uma localização.
    Criar ambiente de aplicativo de contêiner Crie um ambiente novo ou selecione um existente.
  6. Selecione o botão Rever + Criar na parte inferior da página Criar Aplicativo de Contêiner.

  7. Selecione o botão Criar na parte inferior da página Criar aplicativo de contêiner.

Aguarde alguns minutos para que a implantação do aplicativo de contêiner seja concluída. Quando a implantação estiver concluída, selecione Ir para recurso.

Editar e implantar uma revisão

Edite o contêiner para usar a imagem do seu Registro de Contêiner privado do Azure e configure a autenticação para usar a identidade atribuída pelo sistema.

  1. Os contêineres do menu lateral à esquerda.

  2. Selecione Editar e implantar.

  3. Selecione o contêiner simple-hello-world-container na lista.

    Definição Ação
    Nome Insira o nome do aplicativo de contêiner.
    Fonte da imagem Selecione Azure Container Registry.
    Autenticação Selecione Identidade gerida.
    Identidade Selecione Sistema atribuído.
    Registo Insira o nome do Registro.
    Image Insira o nome da imagem.
    Tag de imagem Insira a tag .

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

    Nota

    Se as credenciais administrativas não estiverem habilitadas no registro do Registro de Contêiner do Azure, você verá uma mensagem de aviso exibida e precisará inserir o nome da imagem e as informações da marca manualmente.

  4. Selecione Salvar na parte inferior da página.

  5. Selecione Criar na parte inferior da página Criar e implantar nova revisão

  6. Após alguns minutos, selecione Atualizar na página Gerenciamento de revisão para ver a nova revisão.

Uma nova revisão será criada e implantada. O portal tentará adicionar automaticamente a acrpull função à identidade gerenciada atribuída ao sistema. Se a função não for adicionada, você poderá adicioná-la manualmente.

Você pode verificar se a função foi adicionada verificando a identidade no painel Identidade da página do aplicativo de contêiner.

  1. Selecione Identidade no menu à esquerda.
  2. Selecione a guia Sistema atribuído .
  3. Selecione Atribuições de função do Azure.
  4. Verifique se a acrpull função está atribuída à identidade gerenciada atribuída ao sistema.

Clean up resources (Limpar recursos)

Se não pretender continuar a utilizar esta aplicação, pode eliminar a instância das Aplicações de Contentor do Azure e todos os serviços associados removendo o grupo de recursos.

Aviso

A exclusão do grupo de recursos excluirá todos os recursos do grupo. Se você tiver outros recursos no grupo, eles também serão excluídos. Se quiser manter os recursos, você pode excluir a instância do aplicativo contêiner e o ambiente do aplicativo contêiner.

  1. Selecione seu grupo de recursos na seção Visão geral .
  2. Selecione o botão Excluir grupo de recursos na parte superior da visão geral do grupode recursos.
  3. Insira o nome do grupo de recursos na caixa de diálogo de confirmação.
  4. Selecione Eliminar.
    O processo para excluir o grupo de recursos pode levar alguns minutos para ser concluído.

Este artigo descreve como configurar seu aplicativo de contêiner para usar identidades gerenciadas para extrair imagens de um repositório privado do Registro de Contêiner do Azure usando a CLI do Azure e o Azure PowerShell.

Pré-requisitos

Pré-requisito Description
Conta do Azure Uma conta do Azure com uma subscrição ativa. Se você não tiver um, você pode criar um gratuitamente.
CLI do Azure Se estiver usando a CLI do Azure, instale a CLI do Azure em sua máquina local.
Azure PowerShell Se estiver usando o PowerShell, instale o Azure PowerShell em sua máquina local. Certifique-se de que a versão mais recente do módulo Az.App está instalada executando o comando Install-Module -Name Az.App.
Registo de Contentores do Azure Um Registro de Contêiner do Azure privado contendo uma imagem que você deseja extrair. Guia de início rápido: criar um registro de contêiner privado usando a CLI do Azure ou Guia de início rápido: criar um registro de contêiner privado usando o Azure PowerShell

Configurar

Primeiro, entre no Azure pela CLI ou PowerShell. Execute o seguinte comando e siga as instruções para concluir o processo de autenticação.

az login

Instale a extensão Aplicativos de Contêiner do Azure para a CLI.

az extension add --name containerapp --upgrade

Agora que a extensão ou módulo atual está instalado, registre o namespace e o Microsoft.AppMicrosoft.OperationalInsights provedor, caso não os tenha registrado antes.

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

Em seguida, defina as seguintes variáveis de ambiente. Substitua os <ESPAÇOS RESERVADOS> pelos seus próprios valores.

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

Se já tiver um grupo de recursos, ignore este passo. Caso contrário, crie um grupo de recursos.

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

Criar um ambiente de aplicativo de contêiner

Se o ambiente não existir, execute o seguinte comando:

Para criar o ambiente, execute o seguinte comando:

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

Continue para a próxima seção para configurar a identidade gerenciada atribuída pelo usuário ou pule para a seção Identidade gerenciada atribuída pelo sistema.

Identidade gerida atribuída pelo utilizador

Siga este procedimento para configurar a identidade gerenciada atribuída pelo usuário:

  1. Crie uma identidade gerida atribuída pelo utilizador.
  2. Se você estiver usando o PowerShell, atribua uma acrpull função para seu registro à identidade gerenciada. A CLI do Azure faz essa atribuição automaticamente.
  3. Crie um aplicativo de contêiner com a imagem do registro privado autenticada com a identidade gerenciada atribuída pelo usuário.

Criar uma identidade gerida atribuída pelo utilizador

Crie uma identidade gerida atribuída pelo utilizador. Substitua os <espaços reservados> pelo nome da sua identidade gerenciada.

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

Obtenha o ID de recurso da identidade.

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

Criar um aplicativo de contêiner

Crie seu aplicativo de contêiner com sua imagem do registro privado autenticado com a identidade.

Copie o ID de recurso da identidade para colar nos <espaços reservados IDENTITY_ID> no comando abaixo. Se a etiqueta da imagem não latestfor , substitua "mais recente" pela etiqueta.

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"

Limpeza

Atenção

O comando a seguir exclui o grupo de recursos especificado e todos os recursos contidos nele. Se existirem recursos fora do escopo deste início rápido no grupo de recursos especificado, eles também serão excluídos.

az group delete --name $RESOURCE_GROUP

Identidade gerida atribuída pelo sistema

Para configurar uma identidade atribuída ao sistema, você precisará:

  1. Crie um aplicativo de contêiner com uma imagem pública.
  2. Atribua uma identidade gerenciada atribuída pelo sistema ao aplicativo de contêiner.
  3. Atualize o aplicativo contêiner com a imagem privada.

Criar um aplicativo de contêiner

Crie um contêiner com uma imagem pública.

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

Atualizar o aplicativo de contêiner

Atualize o aplicativo de contêiner com a imagem do seu registro de contêiner privado e adicione uma identidade atribuída pelo sistema para autenticar o recebimento do Registro de Contêiner do Azure. Você também pode incluir outras configurações necessárias para seu aplicativo de contêiner, como configurações de entrada, escala e Dapr.

Defina o servidor de registro e ative a identidade gerenciada atribuída pelo sistema no aplicativo de contêiner.

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"

Limpeza

Atenção

O comando a seguir exclui o grupo de recursos especificado e todos os recursos contidos nele. Se existirem recursos fora do escopo deste início rápido no grupo de recursos especificado, eles também serão excluídos.

az group delete --name $RESOURCE_GROUP

Próximos passos