Deshabilitación de la exportación de artefactos desde un registro de contenedor de Azure
Para evitar que los usuarios del registro de una organización filtre artefactos de forma malintencionada o accidental fuera de una red virtual, puede configurar la directiva de exportación del registro para deshabilitar las exportaciones.
La directiva de exportación es una propiedad introducida en la versión de API 2021-06-01-preview para los registros de contenedor prémium. La propiedad exportPolicy
, cuando su estado se establece en disabled
, bloquea la exportación de artefactos desde un registro restringido a la red cuando un usuario intenta:
- Importación de los artefactos del registro a otro registro de contenedor de Azure
- Creación de una canalización de exportación del registro para transferir artefactos a otro registro de contenedor
Nota
Deshabilitar la exportación de artefactos no impide que los usuarios autorizados accedan al registro dentro de la red virtual para extraer artefactos o realizar otras operaciones de plano de datos. Para auditar este uso, se recomienda configurar las opciones de diagnóstico para supervisar las operaciones del registro.
Requisitos previos
- Un registro de contenedor prémium configurado con un punto de conexión privado.
Use el entorno de Bash en Azure Cloud Shell. Para más información, consulte Inicio rápido para Bash en Azure Cloud Shell.
Si prefiere ejecutar comandos de referencia de la CLI localmente, instale la CLI de Azure. Si utiliza Windows o macOS, considere la posibilidad de ejecutar la CLI de Azure en un contenedor Docker. Para más información, vea Ejecución de la CLI de Azure en un contenedor de Docker.
Si usa una instalación local, inicie sesión en la CLI de Azure mediante el comando az login. Siga los pasos que se muestran en el terminal para completar el proceso de autenticación. Para ver otras opciones de inicio de sesión, consulte Inicio de sesión con la CLI de Azure.
En caso de que se le solicite, instale las extensiones de la CLI de Azure la primera vez que la use. Para más información sobre las extensiones, consulte Uso de extensiones con la CLI de Azure.
Ejecute az version para buscar cuál es la versión y las bibliotecas dependientes que están instaladas. Para realizar la actualización a la versión más reciente, ejecute az upgrade.
Otros requisitos para deshabilitar las exportaciones
Deshabilitar el acceso a la red pública: para deshabilitar la exportación de artefactos, también se debe deshabilitar el acceso público al registro (la
publicNetworkAccess
propiedad del registro debe establecerse endisabled
). Puede deshabilitar el acceso de red pública al registro antes de deshabilitar la exportación o deshabilitarla al mismo tiempo.Al deshabilitar el acceso al punto de conexión público del registro, asegúrese de que las operaciones del registro solo se permitan dentro de la red virtual. Se prohíbe el acceso público al registro para extraer artefactos y realizar otras operaciones.
Quitar canalizaciones de exportación: antes de establecer el estado
exportPolicy
del registro endisabled
, elimine las canalizaciones de exportación existentes configuradas en el registro. Si se configura una canalización, no se puede cambiar el estado deexportPolicy
.
Deshabilitación de exportPolicy para un registro existente
Cuando se crea un registro, el estado de exportPolicy
se establece en de forma predeterminada en enabled
, lo que permite exportar artefactos. Puede actualizar el estado a disabled
mediante una plantilla de ARM o el comando az resource update
.
Plantilla ARM
Incluya el siguiente código JSON para actualizar el estado de exportPolicy
y establezca la propiedad en publicNetworkAccess
en disabled
. Obtenga más información sobre cómo implementar recursos con plantillas de ARM.
{
[...]
"resources": [
{
"type": "Microsoft.ContainerRegistry/registries",
"apiVersion": "2021-06-01-preview",
"name": "myregistry",
[...]
"properties": {
"publicNetworkAccess": "disabled",
"policies": {
"exportPolicy": {
"status": "disabled"
}
}
}
}
]
[...]
}
Azure CLI
Ejecute az resource update para establecer el estado de exportPolicy
de un registro existente en disabled
. Sustituya los nombres del registro y el grupo de recursos.
Como se muestra en este ejemplo, al deshabilitar la propiedad exportPolicy
, establezca también la propiedad publicNetworkAccess
en 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"
La salida muestra que el estado de la directiva de exportación está deshabilitado.
{
"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"
[...]
}
Habilitación de exportPolicy
Después de deshabilitar el estado de exportPolicy
en un registro, puede volver a habilitarlo en cualquier momento mediante una plantilla de ARM o el comando az resource update
.
Plantilla ARM
Incluya el siguiente código JSON para actualizar el estado de exportPolicy
en enabled
. Obtenga más información sobre cómo implementar recursos con plantillas de ARM.
{
[...]
"resources": [
{
"type": "Microsoft.ContainerRegistry/registries",
"apiVersion": "2021-06-01-preview",
"name": "myregistry",
[...]
"properties": {
"policies": {
"exportPolicy": {
"status": "enabled"
}
}
}
}
]
[...]
}
Azure CLI
Ejecute az resource update para establecer el estado de exportPolicy
en enabled
. Sustituya los nombres del registro y el 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"
Pasos siguientes
- Más información sobre Roles y permisos de Azure Container Registry.
- Si desea evitar la eliminación accidental de artefactos del Registro, consulte Bloqueo de imágenes de contenedor.
- Más información sobre las directivas de Azure integradas para proteger Azure Container Registry