Configurar regras de rede de IP público

Por predefinição, um registo de contentor do Azure aceita ligações através da Internet a partir de anfitriões em qualquer rede. Este artigo mostra como configurar o seu registo de contentor para permitir o acesso apenas a partir de endereços IP públicos específicos ou intervalos de endereços. São fornecidos passos equivalentes com a CLI do Azure e portal do Azure.

As regras de rede IP são configuradas no ponto final do registo público. As regras de rede IP não se aplicam a pontos finais privados configurados com Private Link

A configuração de regras de acesso ip está disponível no escalão de serviço de registo de contentor Premium . Para obter informações sobre os escalões e limites do serviço de registo, veja escalões de Azure Container Registry.

Cada registo suporta um máximo de 100 regras de acesso IP.

Importante

Algumas funcionalidades podem estar indisponíveis ou exigir mais configuração num registo de contentor que restringe o acesso a pontos finais privados, sub-redes selecionadas ou endereços IP.

  • Quando o acesso à rede pública a um registo é desativado, o acesso ao registo por determinados serviços fidedignos, incluindo Centro de Segurança do Azure, requer a ativação de uma definição de rede para ignorar as regras de rede.
  • Assim que o acesso à rede pública estiver desativado, as instâncias de determinados serviços do Azure, incluindo os Serviços do Azure DevOps, não conseguem aceder ao registo de contentor.
  • Os pontos finais privados não são atualmente suportados com agentes geridos do Azure DevOps. Terá de utilizar um agente autoalojado com uma linha de visão de rede para o ponto final privado.
  • Se o registo tiver um ponto final privado aprovado e o acesso à rede pública estiver desativado, os repositórios e etiquetas não podem ser listados fora da rede virtual com o portal do Azure, a CLI do Azure ou outras ferramentas.

Acesso a partir da rede pública selecionada - CLI

Alterar o acesso de rede predefinido ao registo

Para limitar o acesso a uma rede pública selecionada, primeiro altere a ação predefinida para negar o acesso. Substitua o nome do seu registo no seguinte comando az acr update :

az acr update --name myContainerRegistry --default-action Deny

Adicionar regra de rede ao registo

Utilize o comando az acr network-rule add para adicionar uma regra de rede ao seu registo que permita o acesso a partir de um endereço IP público ou intervalo. Por exemplo, substitua o nome do registo de contentor e o endereço IP público de uma VM numa rede virtual.

az acr network-rule add \
  --name mycontainerregistry \
  --ip-address <public-IP-address>

Nota

Depois de adicionar uma regra, a regra demora alguns minutos a entrar em vigor.

Acesso a partir da rede pública selecionada - portal

  1. No portal, navegue para o registo de contentor.
  2. Em Definições, selecione Rede.
  3. No separador Acesso público , selecione para permitir o acesso público a partir de Redes selecionadas.
  4. Em Firewall, introduza um endereço IP público, como o endereço IP público de uma VM numa rede virtual. Em alternativa, introduza um intervalo de endereços na notação CIDR que contenha o endereço IP da VM.
  5. Selecione Guardar.

Configurar a regra de firewall para o registo de contentor

Nota

Depois de adicionar uma regra, a regra demora alguns minutos a entrar em vigor.

Dica

Opcionalmente, ative o acesso ao registo a partir de um computador cliente local ou intervalo de endereços IP. Para permitir este acesso, precisa do endereço IPv4 público do computador. Pode encontrar este endereço ao procurar "qual é o meu endereço IP" num browser. O endereço IPv4 do cliente atual também aparece automaticamente quando configura as definições da firewall na página Rede no portal.

Desativar o acesso à rede pública

Opcionalmente, desative o ponto final público no registo. Desativar o ponto final público substitui todas as configurações da firewall. Por exemplo, poderá querer desativar o acesso público a um registo protegido numa rede virtual com Private Link.

Nota

Se o registo estiver configurado numa rede virtual com um ponto final de serviço, desativar o acesso ao ponto final público do registo também desativa o acesso ao registo na rede virtual.

Desativar o acesso público - CLI

Para desativar o acesso público com a CLI do Azure, execute az acr update e defina --public-network-enabled como false. O public-network-enabled argumento requer a CLI 2.6.0 do Azure ou posterior.

az acr update --name myContainerRegistry --public-network-enabled false

Desativar o acesso público - portal

  1. No portal, navegue para o seu registo de contentor e selecione Definições > Redes.
  2. No separador Acesso público , em Permitir acesso à rede pública, selecione Desativado. Em seguida, selecione Guardar.

Desativar o acesso público

Restaurar o acesso à rede pública

Para reativar o ponto final público, atualize as definições de rede para permitir o acesso público. Ativar o ponto final público substitui todas as configurações da firewall.

Restaurar o acesso público - CLI

Execute az acr update e defina --public-network-enabled como true.

Nota

O public-network-enabled argumento requer a CLI 2.6.0 do Azure ou posterior.

az acr update --name myContainerRegistry --public-network-enabled true

Restaurar o acesso público - portal

  1. No portal, navegue para o seu registo de contentor e selecione Definições > Redes.
  2. No separador Acesso público , em Permitir acesso à rede pública, selecione Todas as redes. Em seguida, selecione Guardar.

Acesso público a partir de todas as redes

Resolução de problemas

Acesso por trás do proxy HTTPS

Se uma regra de rede pública estiver definida ou o acesso público ao registo for negado, as tentativas de início de sessão no registo a partir de uma rede pública não permitida falharão. O acesso de cliente por trás de um proxy HTTPS também falhará se não estiver definida uma regra de acesso para o proxy. Verá uma mensagem de erro semelhante a Error response from daemon: login attempt failed with status: 403 Forbidden ou Looks like you don't have access to registry.

Estes erros também podem ocorrer se utilizar um proxy HTTPS permitido por uma regra de acesso à rede, mas o proxy não estiver configurado corretamente no ambiente do cliente. Verifique se o cliente do Docker e o daemon do Docker estão configurados para o comportamento do proxy. Para obter detalhes, veja proxy HTTP/HTTPS na documentação do Docker.

Acesso a partir dos Pipelines do Azure

Se utilizar o Azure Pipelines com um registo de contentor do Azure que limita o acesso a endereços IP específicos, o pipeline poderá não conseguir aceder ao registo, porque o endereço IP de saída do pipeline não foi corrigido. Por predefinição, o pipeline executa tarefas com um agente alojado pela Microsoft num conjunto de máquinas virtuais com um conjunto de endereços IP em mudança.

Uma solução é alterar o agente utilizado para executar o pipeline de alojado pela Microsoft para autoalojado. Com um agente autoalojado em execução num computador Windows ou Linux que gere, controla o endereço IP de saída do pipeline e pode adicionar este endereço numa regra de acesso ip de registo.

Acesso a partir do AKS

Se utilizar Azure Kubernetes Service (AKS) com um registo de contentor do Azure que limita o acesso a endereços IP específicos, não pode configurar um endereço IP do AKS fixo por predefinição. O endereço IP de saída do cluster do AKS é atribuído aleatoriamente.

Para permitir que o cluster do AKS aceda ao registo, tem estas opções:

Passos seguintes