Configurar regras de rede IP pública

Por padrão, um registro de contêiner do Azure aceita conexões pela Internet de hosts em qualquer rede. Este artigo mostra como configurar o registro de contêiner para permitir o acesso de apenas endereços IP públicos específicos ou intervalos de endereços. Etapas equivalentes usando a CLI do Azure e o portal do Azure são fornecidas.

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

A configuração de regras de acesso IP está disponível na camada de serviço de registro de contêiner Premium . Para obter informações sobre camadas e limites de serviço do Registro, consulte Camadas do Registro de Contêiner do Azure.

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

Importante

Algumas funcionalidades podem não estar disponíveis ou exigir mais configuração em um registro de contêiner que restrinja o acesso a pontos de extremidade privados, sub-redes selecionadas ou endereços IP.

  • Quando o acesso à rede pública a um registo está desativado, o acesso ao registo por determinados serviços fidedignos, incluindo o Centro de Segurança do Azure, requer a ativação de uma definição de rede para ignorar as regras de rede.
  • Depois que o acesso à rede pública é desabilitado, as instâncias de determinados serviços do Azure, incluindo os Serviços de DevOps do Azure, não conseguem acessar o registro do contêiner.
  • Atualmente, não há suporte para pontos de extremidade privados com agentes gerenciados do Azure DevOps. Você precisará usar um agente auto-hospedado com linha de visão de rede para o ponto de extremidade privado.
  • Se o registro tiver um ponto de extremidade privado aprovado e o acesso à rede pública estiver desabilitado, os repositórios e marcas não poderão ser listados fora da rede virtual usando 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 padrão ao Registro

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

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

Adicionar regra de rede ao registo

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

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

Nota

Depois de adicionar uma regra, leva alguns minutos para que ela entre em vigor.

Acesso a partir da rede pública selecionada - portal

  1. No portal, navegue até o registro do contêiner.
  2. Em Configurações, selecione Rede.
  3. Na guia Acesso público, selecione para permitir o acesso público a partir de Redes selecionadas.
  4. Em Firewall, insira um endereço IP público, como o endereço IP público de uma VM em uma rede virtual. Ou insira um intervalo de endereços na notação CIDR que contenha o endereço IP da VM.
  5. Selecione Guardar.

Configurar regra de firewall para registro de contêiner

Nota

Depois de adicionar uma regra, leva alguns minutos para que ela entre em vigor.

Gorjeta

Opcionalmente, habilite o acesso ao Registro a partir de um computador cliente local ou intervalo de endereços IP. Para permitir esse acesso, você precisa do endereço IPv4 público do computador. Você pode encontrar este endereço pesquisando "qual é o meu endereço IP" em um navegador de internet. O endereço IPv4 do cliente atual também aparece automaticamente quando você define as configurações de firewall na página Rede no portal.

Desativar o acesso à rede pública

Opcionalmente, desative o ponto de extremidade público no registro. A desativação do ponto de extremidade público substitui todas as configurações de firewall. Por exemplo, talvez você queira desabilitar o acesso público a um registro protegido em uma rede virtual usando o Private Link.

Nota

Se o Registro estiver configurado em uma rede virtual com um ponto de extremidade de serviço, desabilitar o acesso ao ponto de extremidade público do Registro também desabilitará o acesso ao Registro dentro da rede virtual.

Desabilitar o acesso público - CLI

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

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

Desativar o acesso público - portal

  1. No portal, navegue até o registro do contêiner e selecione Configurações > de rede.
  2. Na guia Acesso público, em Permitir acesso à rede pública, selecione Desabilitado. Em seguida, selecione Guardar.

Desativar o acesso público

Restaurar o acesso à rede pública

Para reativar o ponto de extremidade público, atualize as configurações de rede para permitir o acesso público. A ativação do ponto de extremidade público substitui todas as configurações de 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 do Azure 2.6.0 ou posterior.

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

Restaurar o acesso público - portal

  1. No portal, navegue até o registro do contêiner e selecione Configurações > de rede.
  2. Na guia 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

Resolver problemas

Acesso por trás do proxy HTTPS

Se uma regra de rede pública for definida ou o acesso público ao registo for negado, as tentativas de iniciar sessão no registo a partir de uma rede pública não permitida falharão. O acesso do cliente por trás de um proxy HTTPS também falhará se uma regra de acesso para o proxy não estiver definida. Você 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.

Esses erros também podem ocorrer se você usar 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 de proxy. Para obter detalhes, consulte Proxy HTTP/HTTPS na documentação do Docker.

Acesso a partir de Pipelines do Azure

Se você usar o Azure Pipelines com um registro de contêiner do Azure que limita o acesso a endereços IP específicos, o pipeline pode não conseguir acessar o registro, porque o endereço IP de saída do pipeline não é fixo. Por padrão, o pipeline executa trabalhos usando um agente hospedado pela Microsoft em um pool de máquinas virtuais com um conjunto variável de endereços IP.

Uma solução alternativa é alterar o agente usado para executar o pipeline de hospedado pela Microsoft para auto-hospedado. Com um agente auto-hospedado em execução em uma máquina Windows ou Linux que você gerencia, você controla o endereço IP de saída do pipeline e pode adicionar esse endereço em uma regra de acesso IP do Registro.

Acesso a partir do AKS

Se você usar o Serviço Kubernetes do Azure (AKS) com um registro de contêiner do Azure que limita o acesso a endereços IP específicos, não poderá configurar um endereço IP AKS fixo por padrão. O endereço IP de saída do cluster AKS é atribuído aleatoriamente.

Para permitir que o cluster AKS acesse o registro, você tem estas opções:

  • Se você usar o Balanceador de Carga Básico do Azure, configure um endereço IP estático para o cluster AKS.
  • Se você usar o Balanceador de Carga Padrão do Azure, consulte as orientações para controlar o tráfego de saída do cluster.

Próximos passos