Отключение экспорта артефактов из реестра контейнеров Azure
Чтобы предотвратить в организации, в которой работают пользователи реестра, злонамеренные или случайные утечки артефактов за пределами виртуальной сети, можно настроить политику экспорта реестра, чтобы отключить экспорты.
Политика экспорта представляет собой свойство, введенное в версию API 2021-06-01-preview для реестров контейнеров Премиум. Свойство exportPolicy
, если его состояние имеет значение disabled
, блокирует экспорт артефактов из реестра, ограниченного сетью, при попытке пользователя выполнить следующие действия:
- Импорт артефактов реестра в другой реестр контейнеров Azure
- Создание конвейера экспорта реестра для передачи артефактов в другой реестр контейнеров
Примечание.
Отключение экспорта артефактов не мешает полномочным пользователям обращаться к реестру в виртуальной сети для извлечения артефактов или выполнения других операций с данными. Чтобы проверить это, рекомендуется настроить диагностические параметры для контроля операций с реестром.
Необходимые компоненты
- Реестр контейнеров Премиум, настроенный с частной конечной точкой.
Используйте среду Bash в Azure Cloud Shell. Дополнительные сведения см . в кратком руководстве по Bash в Azure Cloud Shell.
Если вы предпочитаете выполнять справочные команды CLI локально, установите Azure CLI. Если вы работаете в Windows или macOS, Azure CLI можно запустить в контейнере Docker. Дополнительные сведения см. в статье Как запустить Azure CLI в контейнере Docker.
Если вы используете локальную установку, выполните вход в Azure CLI с помощью команды az login. Чтобы выполнить аутентификацию, следуйте инструкциям в окне терминала. Сведения о других возможностях, доступных при входе, см. в статье Вход с помощью Azure CLI.
Установите расширение Azure CLI при первом использовании, когда появится соответствующий запрос. Дополнительные сведения о расширениях см. в статье Использование расширений с Azure CLI.
Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.
Другие требования к отключению экспорта
Отключить доступ к общедоступной сети. Чтобы отключить экспорт артефактов, необходимо также отключить общий доступ к реестру (свойство
publicNetworkAccess
реестра должно иметь значениеdisabled
). Вы можете отключить доступ к реестру через общедоступную сеть перед отключением экспорта или отключить его также.Отключив доступ к общедоступной конечной точке реестра, вы убедитесь, что операции с реестром разрешены только в пределах виртуальной сети. Общий доступ к реестру для извлечения артефактов и выполнения других операций запрещен.
Удаление конвейеров экспорта. Перед установкой состояния
exportPolicy
в значение реестраdisabled
удалите все существующие конвейеры экспорта, настроенные в реестре. Если конвейер настроен, вы не можете изменить состояниеexportPolicy
.
Отключение политики экспорта для существующего реестра
После создания реестра состояние exportPolicy
по умолчанию устанавливается в значение enabled
, которое позволяет экспортировать артефакты. Состояние можно обновить до значения disabled
с помощью шаблона ARM или команды az resource update
.
Шаблон ARM
Включите следующий JSON, чтобы обновить состояние exportPolicy
и установить для свойства publicNetworkAccess
значение disabled
. Дополнительные сведения о развертывании ресурсов с помощью шаблонов ARM.
{
[...]
"resources": [
{
"type": "Microsoft.ContainerRegistry/registries",
"apiVersion": "2021-06-01-preview",
"name": "myregistry",
[...]
"properties": {
"publicNetworkAccess": "disabled",
"policies": {
"exportPolicy": {
"status": "disabled"
}
}
}
}
]
[...]
}
Azure CLI
Выполните команду az resource update, чтобы установить состояние exportPolicy
в существующем реестре в значение disabled
. Замените имена реестра и группы ресурсов.
Как показано в этом примере, при отключении свойства exportPolicy
также установите для свойства publicNetworkAccess
значение 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"
В соответствии с выходными данными состояние политики экспорта отключается.
{
"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"
[...]
}
Включение политики экспорта
После отключения статуса exportPolicy
в реестре вы можете снова включить его в любое время, используя шаблон ARM или с помощью команды az resource update
.
Шаблон ARM
Включите следующий JSON, чтобы для состояния exportPolicy
установить значение enabled
. Дополнительные сведения о развертывании ресурсов с помощью шаблонов ARM
{
[...]
"resources": [
{
"type": "Microsoft.ContainerRegistry/registries",
"apiVersion": "2021-06-01-preview",
"name": "myregistry",
[...]
"properties": {
"policies": {
"exportPolicy": {
"status": "enabled"
}
}
}
}
]
[...]
}
Azure CLI
Выполните команду az resource update, чтобы для состояния exportPolicy
установить значение enabled
. Замените имена реестра и группы ресурсов.
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"
Следующие шаги
- Дополнительные сведения о ролях и разрешениях Реестра контейнеров Azure.
- Если необходимо предотвратить случайное удаление артефактов реестра, см. раздел Блокировка образов контейнеров.
- Дополнительные сведения о встроенных политиках Azure для защиты вашего реестра контейнеров Azure