Configurar regras para acessar um registro de contêiner do Azure atrás de um firewall

Este artigo explica como configurar regras no firewall para permitir o acesso a um registro de contêiner do Azure. Por exemplo, um dispositivo Azure IoT Edge por trás de um firewall ou servidor proxy pode precisar acessar um registro de contêiner para efetuar pull de uma imagem de contêiner. Ou um servidor bloqueado em uma rede local pode precisar de acesso para enviar por push uma imagem.

Se, em vez disso, você quiser configurar o acesso à rede de entrada para um registro de contêiner somente dentro de uma rede virtual do Azure, consulte Configurar o Link Privado do Azure para um registro de contêiner do Azure.

Sobre os pontos de extremidade do registro

Para efetuar pull ou enviar imagens ou outros artefatos por push para um registro de contêiner do Azure, um cliente como um daemon do Docker precisa interagir por HTTPS com dois pontos de extremidade distintos. Para clientes que acessam um registro por trás de um firewall, é preciso configurar regras de acesso para ambos os pontos de extremidade. Ambos os pontos de extremidade são alcançados pela porta 443.

  • Ponto de extremidade da API REST do registro: as operações de gerenciamento de autenticação e registro são manipuladas por meio do ponto de extremidade da API REST pública do registro. Esse ponto de extremidade é o nome do servidor de logon do registro. Exemplo: myregistry.azurecr.io

    • Ponto de extremidade da API REST do registro para certificados – O Registro de Contêiner do Azure usa um certificado SSL curinga para todos os subdomínios. Ao se conectar com o Registro de Contêiner do Azure usando SSL, o cliente precisa baixar o certificado para o handshake do TLS. Nesses casos, azurecr.io também deve ser acessível.
  • Ponto de extremidade de armazenamento (dados) : o Azure aloca armazenamento de blobs em contas de Armazenamento do Microsoft Azure em nome de cada registro para gerenciar os dados de imagens de contêiner e outros artefatos. Quando um cliente acessa camadas de imagem em um registro de contêiner do Azure, ele faz solicitações usando um ponto de extremidade de conta de armazenamento fornecido pelo registro.

Se o registro estiver replicado geograficamente, um cliente poderá precisar interagir com o ponto de extremidade de dados em uma região específica ou em várias regiões replicadas.

Permitir acesso a pontos de extremidade de dados e REST

  • Ponto de extremidade REST: permitir acesso ao nome do servidor de logon totalmente qualificado <registry-name>.azurecr.ioou um intervalo de endereços IP associado
  • Ponto de extremidade de armazenamento (dados) : permitir acesso a todas as contas de armazenamento de blobs do Azure usando o caractere curinga *.blob.core.windows.netou um intervalo de endereços IP associado.

Observação

O Registro de Contêiner do Azure está apresentando pontos de extremidade de dados dedicados, permitindo que você atenda rigorosamente às regras de firewall do cliente para o armazenamento do registro. Como alternativa, habilite os pontos de extremidade de dados em todas as regiões em que o registro está localizado ou replicado, usando o formulário <registry-name>.<region>.data.azurecr.io.

Sobre os FQDNs do Registro

O registro tem dois FQDNs, a URL de logon e o ponto de extremidade de dados.

  • A URL de logon e o ponto de extremidade de dados estão acessíveis de dentro da rede virtual, usando IPs privados através da habilitação de um link privado.
  • Um registro que não usa pontos de extremidade de dados teria que acessar os dados de um ponto de extremidade do formulário *.blob.core.windows.net e não fornece o isolamento necessário ao configurar regras de firewall.
  • Um registro com um link privado habilitado obtém automaticamente o ponto de extremidade de dados dedicado.
  • Um ponto de extremidade de dados dedicado é criado por região para um registro.
  • A URL de logon permanece a mesma independentemente de o ponto de extremidade de dados estar habilitado ou desabilitado.

Permitir o acesso por intervalo de endereços IP

Se a sua organização tiver políticas para permitir o acesso somente a endereços IP ou intervalos de endereços específicos, baixe os intervalos de IP do Azure e marcas de serviço – nuvem pública.

Para encontrar os intervalos IP do ponto de extremidade REST do Azure Container Registry para o qual você precisa permitir o acesso, procure AzureContainerRegistry no arquivo JSON.

Importante

Os intervalos de endereços IP para os serviços do Azure podem ser alterados, e as atualizações são publicadas semanalmente. Baixe o arquivo JSON regularmente e faça as atualizações necessárias em suas regras de acesso. Se o seu cenário envolve a configuração de regras de grupo de segurança de rede em uma rede virtual do Azure ou se você usa o Firewall do Azure, use a marca de serviçoAzureContainerRegistry.

Endereços IP REST para todas as regiões

{
  "name": "AzureContainerRegistry",
  "id": "AzureContainerRegistry",
  "properties": {
    "changeNumber": 10,
    "region": "",
    "platform": "Azure",
    "systemService": "AzureContainerRegistry",
    "addressPrefixes": [
      "13.66.140.72/29",
    [...]

Endereços IP REST para uma região específica

Procure a região específica, como AzureContainerRegistry. AustraliaEast.

{
  "name": "AzureContainerRegistry.AustraliaEast",
  "id": "AzureContainerRegistry.AustraliaEast",
  "properties": {
    "changeNumber": 1,
    "region": "australiaeast",
    "platform": "Azure",
    "systemService": "AzureContainerRegistry",
    "addressPrefixes": [
      "13.70.72.136/29",
    [...]

Endereços IP de armazenamento para todas as regiões

{
  "name": "Storage",
  "id": "Storage",
  "properties": {
    "changeNumber": 19,
    "region": "",
    "platform": "Azure",
    "systemService": "AzureStorage",
    "addressPrefixes": [
      "13.65.107.32/28",
    [...]

Endereços IP de armazenamento para uma região específica

Procure a região específica, como Storage.AustraliaCentral.

{
  "name": "Storage.AustraliaCentral",
  "id": "Storage.AustraliaCentral",
  "properties": {
    "changeNumber": 1,
    "region": "australiacentral",
    "platform": "Azure",
    "systemService": "AzureStorage",
    "addressPrefixes": [
      "52.239.216.0/23"
    [...]

Permitir acesso por marca de serviço

Em uma rede virtual do Azure, use as regras de segurança de rede para filtrar o tráfego de um recurso, como uma máquina virtual, para um registro de contêiner. Para simplificar a criação das regras de rede do Azure, use a marca de serviçoAzureContainerRegistry. Uma marca de serviço representa um grupo de prefixos de endereço IP para acessar um serviço do Azure globalmente ou por região do Azure. A marca é atualizada automaticamente quando os endereços são alterados.

Por exemplo, crie uma regra de grupo de segurança de rede de saída com destino AzureContainerRegistry para permitir o tráfego para um registro de contêiner do Azure. Para permitir o acesso à marca de serviço somente em uma região específica, especifique a região no seguinte formato: AzureContainerRegistry.[nome da região].

Habilitar pontos de extremidade dos dados dedicados

Aviso

Se você configurou anteriormente o acesso de firewall do cliente aos pontos de extremidade atuais do *.blob.core.windows.net, alternar para pontos de extremidade de dados dedicados afetará a conectividade do cliente, causando falhas de pull. Para garantir que os clientes tenham acesso consistente, adicione as novas regras de ponto de extremidade de dados às regras de firewall do cliente. Depois de concluído, habilite os pontos de extremidade de dados dedicados para seus registros usando a CLI do Azure ou outras ferramentas.

Os pontos de extremidade de dados dedicados são um recurso opcional da camada de serviço do registro de contêiner Premium. Para obter informações sobre os limites e as camadas de serviço do Registro, confira Camadas de serviço do Registro de Contêiner do Azure.

É possível habilitar pontos de extremidade de dados dedicados usando o portal do Azure ou a CLI do Azure. Os pontos de extremidade de dados seguem um padrão regional, <registry-name>.<region>.data.azurecr.io. Em um registro replicado geograficamente, a habilitação dos pontos de extremidade de dados permite pontos de extremidade em todas as regiões de réplica.

Portal

Para habilitar os pontos de extremidade de dados usando o portal:

  1. Navegue até seu registro de contêiner.
  2. Escolha Rede>Acesso público.
  3. Marque a caixa de seleção Habilitar ponto de extremidade de dados dedicados.
  4. Clique em Salvar.

O ponto de extremidade ou os pontos de extremidades de dados aparecem no Portal.

Pontos de extremidade de dados dedicados no portal

CLI do Azure

Para habilitar os pontos de extremidade de dados usando a CLI do Azure, use a versão 2.4.0 ou superior. Se você precisa instalar ou atualizar, consulte Instalar a CLI do Azure.

O comando az acr update a seguir permite pontos de extremidade de dados dedicados em um registro myregistry.

az acr update --name myregistry --data-endpoint-enabled

Para exibir os pontos de extremidade de dados, use o comando az acr show-endpoints:

az acr show-endpoints --name myregistry

A saída para fins de demonstração mostra dois pontos de extremidade regionais

{
    "loginServer": "myregistry.azurecr.io",
    "dataEndpoints": [
        {
            "region": "eastus",
            "endpoint": "myregistry.eastus.data.azurecr.io",
        },
        {
            "region": "westus",
            "endpoint": "myregistry.westus.data.azurecr.io",
        }
    ]
}

Depois de configurar pontos de extremidade de dados dedicados para o registro, é possível habilitar as regras de acesso de firewall do cliente para os pontos de extremidade de dados. Habilite regras de acesso de ponto de extremidade de dados para todas as regiões de registro necessárias.

Configurar regras de firewall do cliente para MCR

Se precisar acessar o MCR (Registro de Contêiner do Azure) por trás de um firewall, consulte as diretrizes para configurar regras de firewall de cliente do MCR. O MCR é o registro principal para todas as imagens do Docker publicadas pela Microsoft, como imagens do Windows Server.

Próximas etapas