Обеспечение безопасного доступа доверенных служб к реестру контейнеров с сетевыми ограничениями

Служба "Реестр контейнеров Azure" позволяет выбрать доверенные службы Azure для доступа к реестру, для которого настроены правила доступа к сети. Если доверенные службы разрешены, экземпляр доверенной службы может безопасно обходить сетевые правила для реестра и выполнять такие операции, как получение или отправка образов. В этой статье объясняется, как включить и использовать доверенные службы с реестром контейнеров Azure, ограниченным сетью.

Для выполнения примеров команд в этой статье используйте Azure Cloud Shell или локальный экземпляр Azure CLI. Если вы хотите использовать его локально, требуется версия 2.18 или более поздняя. Чтобы узнать версию, выполните команду az --version. Если вам необходимо выполнить установку или обновление, см. статью Установка Azure CLI 2.0.

Ограничения

О доверенных службах

Служба "Реестр контейнеров Azure" имеет многоуровневую модель безопасности, поддерживающую несколько конфигураций сети, которые ограничивают доступ к реестру, в том числе перечисленные далее.

  • Частная конечная точка с Приватным каналом Azure. При настройке закрытая конечная точка реестра доступна только для ресурсов в пределах виртуальной сети с использованием частных IP-адресов.
  • Правила брандмауэра реестра, которые разрешают доступ к общедоступной конечной точке реестра только из конкретных общедоступных IP-адресов или диапазонов адресов. Вы также можете настраивать брандмауэр, чтобы блокировать доступ к общедоступной конечной точке при использовании частных конечных точек.

При развертывании в виртуальной сети или при настройке с помощью правил брандмауэра реестр запрещает доступ пользователям или службам извне этих источников.

Несколько многоклиентных служб Azure работают с сетями, которые нельзя добавить в эти сетевые параметры реестра, что предотвращает выполнение ими таких операций, как получение образов из реестра или их отправка в реестр. Определив некоторые экземпляры службы как "доверенные", владелец реестра может разрешить выбранным ресурсам Azure безопасно обходить сетевые параметры реестра для выполнения операций с реестром.

Доверенные службы

Экземпляры следующих служб могут получить доступ к реестру контейнеров с ограниченным сетевым доступом, если включен параметр реестра Allow Trusted Services (по умолчанию). Со временем будет добавлено больше услуг.

Где указано, доступ со стороны доверенной службы требует дополнительной настройки управляемого удостоверения в экземпляре службы, назначения роли RBAC и проверки подлинности в реестре. Примеры действий см. в разделе Рабочий процесс доверенных служб далее в этой статье.

Доверенная служба Поддерживаемые сценарии использования Настройка управляемого удостоверения с ролью RBAC
Экземпляры контейнеров Azure Развертывание в службе "Экземпляры контейнеров Azure" из реестра контейнеров Azure с использованием управляемого удостоверения Да, назначаемое системой удостоверение или удостоверение, назначаемое пользователем
Microsoft Defender для облака Сканирование уязвимостей с помощью Defender для реестров контейнеров Нет
Задачи ACR Доступ к родительскому реестру или другому реестру из задачи ACR Да
Машинное обучение Развертывание или обучение модели в рабочей области Машинного обучения Azure с помощью пользовательского образа контейнера Docker Да
Реестр контейнеров Azure Импорт изображений в реестр контейнеров Azure с ограниченным доступом к сети или из него Нет

Примечание

В настоящее время включение параметра разрешения доверенных служб не применяется к службе приложений Azure.

Разрешение использовать доверенные службы (CLI)

По умолчанию параметр Allow Trusted Services (Разрешить доверенные службы) в новом реестре контейнеров Azure включен. Отключить или включить этот параметр можно, выполнив команду az acr update.

Чтобы отключить параметр:

az acr update --name myregistry --allow-trusted-services false

Включение параметра в имеющемся реестре или в реестре, где он уже отключен:

az acr update --name myregistry --allow-trusted-services true

Разрешение использовать доверенные службы (портал)

По умолчанию параметр Allow Trusted Services (Разрешить доверенные службы) в новом реестре контейнеров Azure включен.

Чтобы отключить или повторно включить параметр на портале:

  1. На портале перейдите к нужному реестру контейнеров.
  2. В разделе Параметры выберите Сеть.
  3. В окне Allow public network access (Разрешить доступ к общедоступной сети) выберите Выбранные сети или Отключено.
  4. Выполните одно из следующих действий.
    • Чтобы отключить доступ доверенных служб, в разделе Firewall exception (Исключение брандмауэра) снимите флажок Allow trusted Microsoft services to access this container registry (Разрешить доверенным службам Майкрософт доступ к этому реестру контейнеров).
    • Чтобы разрешить доступ доверенных служб, в разделе Firewall exception (Исключение брандмауэра) установите флажок Allow trusted Microsoft services to access this container registry (Разрешить доверенным службам Майкрософт доступ к этому реестру контейнеров).
  5. Щелкните Сохранить.

Рабочий процесс доверенных служб

Ниже приведен типичный рабочий процесс, позволяющий экземпляру доверенной службы получить доступ к реестру контейнеров с ограниченным сетевым доступом. Этот рабочий процесс необходим, если управляемое удостоверение экземпляра службы используется для обхода сетевых правил реестра.

  1. Включите управляемое удостоверение в экземпляр одной из доверенных служб для Реестра контейнеров Azure.
  2. Назначьте удостоверение роли Azure для этого реестра. Например, назначьте роль ACRPull для получения образов контейнеров.
  3. В реестре с ограниченным сетевым доступом настройте параметр, разрешающий доступ доверенным службам.
  4. Используйте учетные данные удостоверения для проверки подлинности в реестре с ограниченным сетевым доступом.
  5. Получайте образы из реестра или выполняйте другие операции, разрешенные этой ролью.

Пример: служба "Задачи ACR"

В следующем примере показано, как служба "Задачи ACR" используется в качестве доверенной службы. Дополнительные сведения см. в статье о проверке подлинности в разных реестрах в рамках задачи контроля доступа с помощью удостоверения, управляемого Azure.

  1. Создайте или обновите реестр контейнеров Azure. Создайте задачу ACR.
    • Включение назначенного системой управляемого удостоверения при создании задачи.
    • Отключите режим проверки подлинности по умолчанию (--auth-mode None) для задачи.
  2. Назначьте удостоверению задачи роль Azure для доступа к реестру. Например, назначьте роль AcrPush, которая имеет разрешения на получение и отправку образов.
  3. Добавьте учетные данные управляемого удостоверения для реестра в задачу.
  4. Чтобы убедиться в том, что задача обходит ограничения сети, отключите открытый доступ в реестре.
  5. Запустите задачу. Если реестр и задача настроены должным образом, задача выполняется успешно, так как реестр разрешает доступ.

Чтобы проверить отключение доступа доверенных служб, выполните следующие действия.

  1. Чтобы разрешить доступ доверенным службам, отключите этот параметр.
  2. Запустите задачу еще раз. В этом случае выполнение задачи завершается ошибкой, так как реестр больше не разрешает доступ задаче.

Дальнейшие действия