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
- 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, confira Início Rápido para Bash no Azure Cloud Shell.
Se preferir executar os comandos de referência da CLI localmente, instale a CLI do Azure. Para execuções no Windows ou no macOS, considere executar a CLI do Azure em um contêiner do Docker. Para obter mais informações, confira Como executar a CLI do Azure em um contêiner do Docker.
Se estiver usando uma instalação local, entre com a CLI do Azure usando o comando az login. Para concluir o processo de autenticação, siga as etapas exibidas no terminal. Para ver outras opções de entrada, confira Conectar-se com a CLI do Azure.
Quando solicitado, instale a extensão da CLI do Azure no primeiro uso. Para obter mais informações sobre extensões, confira Usar extensões com a CLI do Azure.
Execute az version para localizar a versão e as bibliotecas dependentes que estão instaladas. Para fazer a atualização para a versão mais recente, execute az upgrade.
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 comodisabled
). 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 paradisabled
, excluir todos os pipelines de exportação existentes configurados no registro. Se um pipeline for configurado, você não pode alterar o statusexportPolicy
.
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
- Saiba mais sobre Funções e permissões do Registro de Contêiner do Azure.
- Se você quiser impedir a exclusão acidental de artefatos de registro, consulte Bloquear imagens de contêiner.
- Saiba mais sobre como criar políticas do Azure para proteger o registro de contêiner do Azure