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

Para impedir que os usuários do registro em uma organização vazando de forma mal-intencionada ou acidental os artefatos 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 de API 2021-06-01-preview para registros de contêiner Premium. A propriedade exportPolicy, quando seu status é definido como disabled, bloqueia a exportação de artefatos de um registro de rede restrita quando um usuário tenta:

  • Importar os artefatos do registro para outro registro de contêiner do Azure
  • Cria um pipeline de exportação de registro para transferir artefatos para outro registro de contêiner

Observação

Desabilitar a exportação de artefatos não impede o acesso de usuários autorizados ao registro na rede virtual para efetuar o pull de artefatos ou realizar outras operações de plano de dados. Para fazer auditoria deste uso, recomendamos que você configure as definições de diagnóstico para monitorar operações de registro.

Pré-requisitos

Outros requisitos para desabilitar 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 registro publicNetworkAccess deve ser definida como disabled). Você pode desabilitar o acesso à rede pública para o registro antes de desabilitar a exportação ou desabilitá-la ao mesmo tempo.

    Ao desabilitar o acesso ao ponto de extremidade público do registro, você garante que as operações de registro sejam autorizadas somente dentro da rede virtual. O acesso público ao registro para efetuar o pull de artefatos e executar outras operações é proibido.

  • Remover pipelines de exportação - antes de definir o status exportPolicy do registro para disabled, excluir todos os pipelines de exportação existentes configurados no registro. Se um pipeline for configurado, você não pode alterar o status exportPolicy.

Desabilitar a exportPolicy para um registro existente

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

Modelo de ARM

Incluir o JSON a seguir para atualizar o status exportPolicy e definir a propriedade publicNetworkAccess como disabled. Saiba mais sobre como implantar recursos a partir de um modelo do ARM.

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

CLI do Azure

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

Conforme mostrado neste exemplo, ao desabilitar a propriedade exportPolicy defina também a propriedade publicNetworkAccess 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"
[...]
}

Habilitar exportPolicy

Após desabilitar o status exportPolicy no registro, é possível habilitá-lo novamente a qualquer momento usando um modelo do ARM ou o comando az resource update.

Modelo de ARM

Incluir o JSON a seguir para atualizar o status exportPolicy como enabled. Saiba mais sobre como implantar recursos a partir de modelos do ARM

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

CLI do Azure

Executar az resource update para definir o status exportPolicy como enabled. Substitua os nomes do registro e do 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óximas etapas