Configurar regras para aceder a um registo de contentor do Azure atrás de uma firewall

Este artigo explica como configurar regras na firewall para permitir o acesso a um registo de contentor do Azure. Por exemplo, um dispositivo IoT Edge do Azure atrás de uma firewall ou servidor proxy poderá ter de aceder a um registo de contentor para solicitar uma imagem de contentor. Em alternativa, um servidor bloqueado numa rede no local poderá precisar de acesso para emitir uma imagem.

Se, em vez disso, pretender configurar o acesso de rede de entrada a um registo de contentor apenas numa rede virtual do Azure, veja Configurar Azure Private Link para um registo de contentor do Azure.

Acerca dos pontos finais do registo

Para solicitar ou enviar imagens ou outros artefactos para um registo de contentor do Azure, um cliente como um daemon do Docker tem de interagir através de HTTPS com dois pontos finais distintos. Para clientes que acedem a um registo a partir de uma firewall, tem de configurar regras de acesso para ambos os pontos finais. Ambos os pontos finais são alcançados através da porta 443.

  • Ponto final da API REST do Registo – as operações de gestão de registo e autenticação são processadas através do ponto final público da API REST do registo. Este ponto final é o nome do servidor de início de sessão do registo. Exemplo: myregistry.azurecr.io

    • Ponto final da API REST do Registo para certificados – o registo de contentor do Azure utiliza um certificado SSL universal para todos os subdomínios. Ao ligar ao registo de contentor do Azure com sSL, o cliente tem de conseguir transferir o certificado para o handshake TLS. Nesses casos, azurecr.io também tem de estar acessível.
  • Ponto final de armazenamento (dados) – o Azure aloca o armazenamento de blobs em contas de Armazenamento do Azure em nome de cada registo para gerir os dados de imagens de contentor e outros artefactos. Quando um cliente acede a camadas de imagem num registo de contentor do Azure, faz pedidos com um ponto final de conta de armazenamento fornecido pelo registo.

Se o seu registo for georreplicado, um cliente poderá ter de interagir com o ponto final de dados numa região específica ou em várias regiões replicadas.

Permitir acesso a REST e pontos finais de dados

  • Ponto final REST – permitir o acesso ao nome do servidor de início de sessão do registo completamente qualificado ou <registry-name>.azurecr.ioa um intervalo de endereços IP associado
  • Ponto final de armazenamento (dados) – permita o acesso a todas as contas de armazenamento de blobs do Azure com o caráter universal *.blob.core.windows.netou um intervalo de endereços IP associado.

Nota

Azure Container Registry está a introduzir pontos finais de dados dedicados, permitindo-lhe definir de forma rigorosa as regras de firewall do cliente para o seu armazenamento de registos. Opcionalmente, ative os pontos finais de dados em todas as regiões onde o registo está localizado ou replicado, utilizando o formulário <registry-name>.<region>.data.azurecr.io.

Acerca do FQDN do Registo

O registo tem dois FQDN, o url de início de sessão e o ponto final de dados.

  • Tanto o url de início de sessão como o ponto final de dados estão acessíveis a partir da rede virtual, através de IP privados ao ativar uma ligação privada.
  • Um registo que não utilize pontos finais de dados teria de aceder aos dados a partir de um ponto final do formulário *.blob.core.windows.net e não fornece o isolamento necessário ao configurar regras de firewall.
  • Um registo com uma ligação privada ativada obtém automaticamente o ponto final de dados dedicado.
  • É criado um ponto final de dados dedicado por região para um registo.
  • O URL de início de sessão permanece o mesmo, independentemente de o ponto final de dados estar ativado ou desativado.

Permitir o acesso por intervalo de endereços IP

Se a sua organização tiver políticas para permitir o acesso apenas a endereços IP ou intervalos de endereços específicos, transfira Intervalos de IP do Azure e Etiquetas de Serviço – Cloud Pública.

Para localizar os intervalos de IP do ponto final REST do ACR para os quais precisa de permitir o acesso, procure AzureContainerRegistry no ficheiro JSON.

Importante

Os intervalos de endereços IP dos serviços do Azure podem ser alterados e as atualizações são publicadas semanalmente. Transfira regularmente o ficheiro JSON e faça as atualizações necessárias nas suas regras de acesso. Se o seu cenário envolver a configuração de regras de grupo de segurança de rede numa rede virtual do Azure ou utilizar Azure Firewall, utilize a etiqueta 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 regiões específicas

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 etiqueta de serviço

Numa rede virtual do Azure, utilize regras de segurança de rede para filtrar o tráfego de um recurso, como uma máquina virtual, para um registo de contentor. Para simplificar a criação das regras de rede do Azure, utilize a etiqueta de serviçoAzureContainerRegistry. Uma etiqueta de serviço representa um grupo de prefixos de endereços IP para aceder a um serviço do Azure globalmente ou por região do Azure. A etiqueta é 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 o AzureContainerRegistry de destino para permitir o tráfego para um registo de contentor do Azure. Para permitir o acesso à etiqueta de serviço apenas numa região específica, especifique a região no seguinte formato: AzureContainerRegistry. [nome da região].

Ativar pontos finais de dados dedicados

Aviso

Se configurou anteriormente o acesso da firewall de cliente aos pontos finais existentes *.blob.core.windows.net , mudar para pontos finais de dados dedicados afetará a conectividade do cliente, causando falhas de solicitação. Para garantir que os clientes têm acesso consistente, adicione as novas regras de ponto final de dados às regras de firewall do cliente. Depois de concluído, ative pontos finais de dados dedicados para os seus registos com a CLI do Azure ou outras ferramentas.

Os pontos finais de dados dedicados são uma funcionalidade opcional do 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 Azure Container Registry escalões de serviço.

Pode ativar pontos finais de dados dedicados com o portal do Azure ou a CLI do Azure. Os pontos finais de dados seguem um padrão regional, <registry-name>.<region>.data.azurecr.io. Num registo georreplicado, ativar pontos finais de dados permite pontos finais em todas as regiões de réplica.

Portal

Para ativar pontos finais de dados com o portal:

  1. Navegue para o seu registo de contentor.
  2. Selecione Acessopúblicoà> rede.
  3. Selecione a caixa de verificação Ativar ponto final de dados dedicado .
  4. Selecione Guardar.

O ponto final de dados ou os pontos finais são apresentados no portal.

Pontos finais de dados dedicados no portal

CLI do Azure

Para ativar pontos finais de dados com a CLI do Azure, utilize a versão 2.4.0 ou superior da CLI do Azure. Se precisar de instalar ou atualizar, veja Install Azure CLI (Instalar o Azure CLI).

O seguinte comando az acr update permite pontos finais de dados dedicados numa myregistry de registo.

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

Para ver os pontos finais de dados, utilize o comando az acr show-endpoints :

az acr show-endpoints --name myregistry

A saída para fins de demonstração mostra dois pontos finais 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 finais de dados dedicados para o seu registo, pode ativar as regras de acesso da firewall de cliente para os pontos finais de dados. Ativar regras de acesso a pontos finais de dados para todas as regiões de registo necessárias.

Configurar regras de firewall de cliente para MCR

Se precisar de aceder ao Microsoft Container Registry (MCR) a partir de uma firewall, veja a documentação de orientação para configurar as regras de firewall do cliente MCR. O MCR é o registo principal de todas as imagens do Docker publicadas pela Microsoft, como imagens do Windows Server.

Passos seguintes