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
- No portal, navegue até o registro de contêiner.
- Em Configurações, selecione Rede.
- Na guia Acesso público, selecione a opção para permitir o acesso público de Redes selecionadas.
- 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.
- Clique em Salvar.
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
- No portal, navegue até o registro de contêiner e selecione Configurações > Rede.
- Na guia Acesso público, em Permitir acesso da rede pública, selecione Desabilitado. Em seguida, selecione Salvar.
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
- No portal, navegue até o registro de contêiner e selecione Configurações > Rede.
- Na guia Acesso público, em Permitir acesso da rede pública, selecione Todas as redes. Em seguida, selecione Salvar.
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:
- Se você usa o Azure Load Balancer Básico, configure um endereço IP estático para o cluster do AKS.
- Se você usa o Azure Standard Load Balancer, confira as diretrizes para controlar o tráfego de saída do cluster.
Próximas etapas
- Para restringir o acesso a um registro usando um ponto de extremidade privado em uma rede virtual, confira Configurar o Link Privado do Azure para um registro de contêiner do Azure.
- Se você precisar configurar regras de acesso do registro por trás de um firewall do cliente, confira Configurar regras para acessar um registro de contêiner do Azure atrás de um firewall.
- Para obter mais diretrizes de solução de problemas, confira Solucionar problemas de rede com o registro.