Desabilitar a exportação de artefatos de um registro de contêiner do Azure

Para evitar que os usuários do Registro em uma organização vazem artefatos de forma maliciosa ou acidental fora de uma rede virtual, você pode configurar a política de exportação do Registro para desabilitar as exportações.

A política de exportação é uma propriedade introduzida na versão da API 2021-06-01-preview para registros de contêiner Premium. A exportPolicy propriedade, quando seu status é definido como disabled, bloqueia a exportação de artefatos de um registro restrito à rede quando um usuário tenta:

Nota

A desativação da exportação de artefatos não impede o acesso de usuários autorizados ao registro dentro da rede virtual para extrair artefatos ou executar outras operações de plano de dados. Para auditar esse uso, recomendamos que você defina as configurações de diagnóstico para monitorar as operações do Registro.

Pré-requisitos

  • Um registro de contêiner Premium configurado com um ponto de extremidade privado.
  • Use o ambiente Bash no Azure Cloud Shell. Para obter mais informações, consulte Guia de início rápido para Bash no Azure Cloud Shell.

  • Se preferir executar comandos de referência da CLI localmente, instale a CLI do Azure. Se estiver a utilizar o Windows ou macOS, considere executar a CLI do Azure num contentor Docker. Para obter mais informações, consulte Como executar a CLI do Azure em um contêiner do Docker.

    • Se estiver a utilizar uma instalação local, inicie sessão no CLI do Azure ao utilizar o comando az login. Para concluir o processo de autenticação, siga os passos apresentados no seu terminal. Para outras opções de entrada, consulte Entrar com a CLI do Azure.

    • Quando solicitado, instale a extensão da CLI do Azure na primeira utilização. Para obter mais informações sobre as extensões, veja Utilizar extensões com o CLI do Azure.

    • Execute o comando az version para localizar a versão e as bibliotecas dependentes instaladas. Para atualizar para a versão mais recente, execute o comando az upgrade.

Outros requisitos para desativar as exportações

  • Desabilitar o acesso à rede pública - Para desabilitar a exportação de artefatos, o acesso público ao Registro também deve ser desabilitado (a propriedade do publicNetworkAccess Registro deve ser definida como disabled). Você pode desabilitar o acesso de rede pública ao registro antes de desabilitar a exportação ou desativá-lo ao mesmo tempo.

    Ao desativar o acesso ao ponto de extremidade público do Registro, você garante que as operações do Registro sejam permitidas somente dentro da rede virtual. O acesso público ao registo para extrair artefactos e realizar outras operações é proibido.

  • Remover pipelines de exportação - Antes de definir o status do Registro como disabled, exclua todos os pipelines exportPolicy de exportação existentes configurados no Registro. Se um pipeline estiver configurado, não será possível alterar o exportPolicy status.

Desabilitar exportPolicy para um registro existente

Quando você cria um registro, o status é definido como enabled por padrão, o exportPolicy que permite que os artefatos sejam exportados. Você pode atualizar o status usando disabled um modelo ARM ou o az resource update comando.

Modelo ARM

Inclua o JSON a seguir para atualizar o exportPolicy status e definir a publicNetworkAccess propriedade como disabled. Saiba mais sobre como implantar recursos com modelos ARM.

{
[...]
"resources": [
    {
    "type": "Microsoft.ContainerRegistry/registries",
    "apiVersion": "2021-06-01-preview",
    "name": "myregistry",
    [...]
    "properties": {
      "publicNetworkAccess": "disabled",
      "policies": {
        "exportPolicy": {
          "status": "disabled"
         }
      }
      }
    }
]
[...]
}

CLI do Azure

Execute az resource update para definir o exportPolicy status em um registro existente como disabled. Substitua os nomes do seu registo e grupo de recursos.

Como mostrado neste exemplo, ao desabilitar a exportPolicy propriedade, defina também a publicNetworkAccess propriedade como disabled.

az resource update --resource-group myResourceGroup \
    --name myregistry \
    --resource-type "Microsoft.ContainerRegistry/registries" \
    --api-version "2021-06-01-preview" \
    --set "properties.policies.exportPolicy.status=disabled" \
    --set "properties.publicNetworkAccess=disabled"  

A saída mostra que o status da política de exportação está desabilitado.

{
  "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/myregistry",
  "identity": null,
  "kind": null,
  "location": "centralus",
  "managedBy": null,
  "name": "myregistry",
  "plan": null,
  "properties": {
    [...]
    "policies": {
      "exportPolicy": {
        "status": "disabled"
      },
      "quarantinePolicy": {
        "status": "disabled"
      },
      "retentionPolicy": {
        "days": 7,
        "lastUpdatedTime": "2021-07-20T23:20:30.9985256+00:00",
        "status": "disabled"
      },
      "trustPolicy": {
        "status": "disabled",
        "type": "Notary"
      },
    "privateEndpointConnections": [],
    "provisioningState": "Succeeded",
    "publicNetworkAccess": "Disabled",
    "zoneRedundancy": "Disabled"
[...]
}

Ativar exportPolicy

Depois de desativar o exportPolicy status em um registro, você pode reativá-lo a qualquer momento usando um modelo ARM ou o az resource update comando.

Modelo ARM

Inclua o JSON a seguir para atualizar o exportPolicy status para enabled. Saiba mais sobre como implantar recursos com modelos ARM

{
[...]
"resources": [
    {
    "type": "Microsoft.ContainerRegistry/registries",
    "apiVersion": "2021-06-01-preview",
    "name": "myregistry",
    [...]
    "properties": {
     "policies": {
        "exportPolicy": {
          "status": "enabled"
         }
      }
      }
    }
]
[...]
}

CLI do Azure

Execute az resource update para definir o exportPolicy status como enabled. Substitua os nomes do seu registo e grupo de recursos.

az resource update --resource-group myResourceGroup \
    --name myregistry \
    --resource-type "Microsoft.ContainerRegistry/registries" \
    --api-version "2021-06-01-preview" \
    --set "properties.policies.exportPolicy.status=enabled"

Próximos passos

  • Saiba mais sobre as funções e permissões do Registro de Contêiner do Azure.
  • Se você quiser evitar a exclusão acidental de artefatos do Registro, consulte Bloquear imagens de contêiner.
  • Saiba mais sobre as políticas internas do Azure para proteger seu registro de contêiner do Azure