Бөлісу құралы:


Отключение экспорта артефактов из реестра контейнеров 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"

Следующие шаги