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 seu registro de contêiner para permitir o acesso somente de endereços IP públicos ou intervalos de endereços específicos. São fornecidas etapas equivalentes usando a CLI do Azure e o portal do Azure.

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 Link Privado

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

Os registros oferecem suporte no máximo a 100 regras de acesso IP.

Importante

Algumas funcionalidades podem estar indisponíveis ou exigir configurações adicionais 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 para um registro está desabilitado, o acesso ao registro por determinados serviços confiáveis, incluindo a Central de Segurança do Azure, requer a habilitação de uma configuração de rede para ignorar as regras de rede.
  • Depois que o acesso à rede pública é desabilitado, as instâncias de alguns serviços do Azure, incluindo o Azure DevOps Services, atualmente não conseguem acessar o registro de contêiner.
  • No momento, 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 as marcas não poderão ser listados fora da rede virtual usando o portal do Azure, o CLI do Azure ou outras ferramentas.

Acesso da rede pública selecionada – CLI

Alterar o acesso de rede padrão para o 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 registro pelo seguinte comando az acr update:

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

Adicionar regra de rede ao registro

Use o comando az acr network-rule add para adicionar uma regra de rede ao registro que permite o acesso de um intervalo ou endereço IP público. 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>

Observação

Após a adição de uma regra, levará alguns minutos para que ela entre em vigor.

Acesso da rede pública selecionada – portal

  1. No portal, navegue até o registro de contêiner.
  2. Em Configurações, selecione Rede.
  3. Na guia Acesso público, selecione a opção para permitir o acesso público 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 contém o endereço IP da VM.
  5. Clique em Salvar.

Configurar regra de firewall para registro de contêiner

Observação

Após a adição de uma regra, levará alguns minutos para que ela entre em vigor.

Dica

Opcionalmente, habilite o acesso ao registro 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 esse endereço pesquisando "qual é meu endereço IP" em um navegador da 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.

Desabilitar o acesso de redes públicas

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

Observação

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 desabilita o acesso ao registro na rede virtual.

Desabilitar o acesso público – CLI

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

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

Desabilitar o acesso público – portal

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

Desabilitar o acesso público

Restaurar o acesso de rede pública

Para reabilitar o ponto de extremidade público, atualize as configurações de rede para permitir o acesso público. A habilitação do ponto de extremidade público substitui todas as configurações do firewall.

Restaurar o acesso público – CLI

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

Observação

O argumento public-network-enabled 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 de contêiner e selecione Configurações > Rede.
  2. Na guia Acesso público, em Permitir acesso da rede pública, selecione Todas as redes. Em seguida, selecione Salvar.

Acesso público de todas as redes

Solucionar problemas

Acesso protegido por proxy HTTPS

Se uma regra de rede pública estiver definida ou o acesso público ao registro for negado, tentativas de logon no registro 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 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ê usa um proxy HTTPS permitido por uma regra de acesso à rede, mas o proxy não está configurado corretamente no ambiente do cliente. Verifique se o cliente e o daemon do Docker estão configurados para o comportamento do proxy. Para obter detalhes, confira Proxy HTTP/HTTPS na documentação do Docker.

Acesso do Azure Pipelines

Se você usar o Azure Pipelines com um registro de contêiner do Azure que limite o acesso a endereços IP específicos, talvez o pipeline não consiga acessar o registro, pois 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 de endereços IP que se altera.

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 um computador Windows ou Linux sob o seu gerenciamento, você controla o endereço IP de saída do pipeline e pode adicionar esse endereço em uma regra de acesso de IP do registro.

Acesso do AKS

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

Para permitir que o cluster do AKS acesse o registro, há estas opções:

Próximas etapas