Desativar a exportação de artefactos de um registo de contentor do Azure

Para impedir que os utilizadores do registo numa organização façam fugas maliciosas ou acidentais de artefactos fora de uma rede virtual, pode configurar a política de exportação do registo para desativar as exportações.

A política de exportação é uma propriedade introduzida na versão de API 2021-06-01-preview para registos de contentores Premium. A exportPolicy propriedade, quando o respetivo estado está definido como , bloqueia a disabledexportação de artefactos de um registo restrito à rede quando um utilizador tenta:

  • Importar os artefactos do registo para outro registo de contentor do Azure
  • Criar um pipeline de exportação de registo para transferir artefactos para outro registo de contentor

Nota

A desativação da exportação de artefactos não impede o acesso dos utilizadores autorizados ao registo na rede virtual para solicitar artefactos ou realizar outras operações de plano de dados. Para auditar esta utilização, recomendamos que configure as definições de diagnóstico para monitorizar as operações de registo.

Pré-requisitos

Outros requisitos para desativar as exportações

  • Desativar o acesso à rede pública – para desativar a exportação de artefactos, o acesso público ao registo também tem de ser desativado (a propriedade do registo tem de publicNetworkAccess estar definida como disabled). Pode desativar o acesso de rede pública ao registo antes de desativar a exportação ou desativar ao mesmo tempo.

    Ao desativar o acesso ao ponto final público do registo, certifique-se de que as operações de registo são permitidas apenas na rede virtual. O acesso público ao registo para solicitar artefactos e realizar outras operações é proibido.

  • Remover pipelines de exportação – antes de definir o estado do exportPolicy registo como disabled, elimine todos os pipelines de exportação existentes configurados no registo. Se um pipeline estiver configurado, não poderá alterar o exportPolicy estado.

Desativar exportPolicy para um registo existente

Quando cria um registo, o exportPolicy estado está definido como enabled por predefinição, o que permite exportar artefactos. Pode atualizar o estado para disabled utilizar um modelo do ARM ou o az resource update comando.

Modelo ARM

Inclua o seguinte JSON para atualizar o exportPolicy estado e definir a publicNetworkAccess propriedade como disabled. Saiba mais sobre como implementar 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 estado num registo existente como disabled. Substitua os nomes do seu registo e grupo de recursos.

Conforme mostrado neste exemplo, ao desativar 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"  

O resultado mostra que o estado da política de exportação está desativado.

{
  "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 estado num registo, pode ativá-lo novamente em qualquer altura através de um modelo do ARM ou do az resource update comando.

Modelo ARM

Inclua o seguinte JSON para atualizar o exportPolicy estado para enabled. Saiba mais sobre como implementar recursos com modelos do 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 estado 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"

Passos seguintes