Аудит соответствия реестров контейнеров Azure требованиям с помощью Политики Azure

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

В этой статье описаны встроенные определения политики для Реестра контейнеров Azure. Используйте эти определения, чтобы проводить аудит новых и существующих реестров для обеспечения соответствия требованиям.

Плата за использование Политики Azure не взимается.

Встроенные определения политик

Следующие встроенные определения политик относятся к Реестру контейнеров Azure:

Имя.
(портал Azure)
Description Действие Версия
(GitHub)
[Предварительная версия]: реестр контейнеров должен быть избыточным по зонам Реестр контейнеров можно настроить как избыточный в зоне или нет. Если свойству zoneRedundancy для реестра контейнеров присвоено значение "Отключено", это означает, что реестр не является избыточным по зонам. Применение этой политики помогает обеспечить правильную настройку реестра контейнеров для обеспечения устойчивости зоны, что снижает риск простоя во время сбоев в зонах. Audit, Deny, Disabled 1.0.0 (предварительная версия)
[Предварительная версия]. Реестр контейнеров должен использовать конечную точку службы для виртуальной сети Эта политика выполняет аудит всех реестров контейнеров, не настроенных для использования конечной точки службы виртуальной сети. Audit, Disabled 1.0.0 (предварительная версия)
Образы контейнеров реестра Azure должны иметь устраненные уязвимости (на базе Управление уязвимостями Microsoft Defender) Оценка уязвимостей образа контейнера проверяет реестр на наличие распространенных уязвимостей (CVEs) и предоставляет подробный отчет об уязвимостях для каждого образа. Устранение уязвимостей может значительно повысить уровень безопасности, обеспечивая безопасность образов, безопасных для использования до развертывания. AuditIfNotExists, Disabled 1.0.1
Настройте реестры контейнеров, чтобы отключить анонимную проверку подлинности. Отключите анонимное извлечение для реестра, чтобы данные не были доступны пользователям, не прошедшим проверку подлинности. Отключение локальных методов проверки подлинности, таких как администратор, маркеры доступа с областью действия репозитория и анонимное извлечение, повышает безопасность за счет того, что регистрам контейнеров для проверки подлинности требуются только удостоверения Azure Active Directory. См. дополнительные сведения: https://aka.ms/acr/authentication. Modify, Disabled 1.0.0
Настройка реестров контейнеров для отключения проверки подлинности токена аудитории ARM. Отключите маркеры аудитории Azure Active Directory ARM для проверки подлинности в реестре. Для проверки подлинности будут использоваться только маркеры аудитории Реестра контейнеров Azure (ACR). Это гарантирует, что для проверки подлинности можно использовать только маркеры, предназначенные для использования в реестре. Отключение маркеров аудитории ARM не влияет на проверку подлинности пользователей или маркеров доступа с заданной областью. См. дополнительные сведения: https://aka.ms/acr/authentication. Modify, Disabled 1.0.0
Настройте реестры контейнеров, чтобы отключить локальную учетную запись администратора. Отключите учетную запись администратора для реестра, чтобы реестр был недоступен для локального администратора. Отключение методов локальной проверки подлинности (например, администратор, маркеры доступа с областью действия репозитория, анонимное извлечение) позволяет повысить уровень безопасности за счет того, что для проверки подлинности в реестрах контейнеров необходимы только удостоверения Azure Active Directory. См. дополнительные сведения: https://aka.ms/acr/authentication. Modify, Disabled 1.0.1
Настройка реестров контейнеров для отключения доступа через общедоступную сеть Отключите доступ к общедоступной сети для своего ресурса Реестра контейнеров, чтобы он был недоступным через Интернет. Это позволяет снизить риски утечки данных. Дополнительные сведения см. здесь: https://aka.ms/acr/portal/public-network и https://aka.ms/acr/private-link. Modify, Disabled 1.0.0
Настройте реестры контейнеров, чтобы отключить маркер доступа с областью действия репозитория. Отключите для реестра маркеры доступа с областью действия репозитория, чтобы закрыть доступ к этим репозиториям с помощью маркеров. Отключение локальных методов проверки подлинности, таких как администратор, маркеры доступа с областью действия репозитория и анонимное извлечение, повышает безопасность за счет того, что регистрам контейнеров для проверки подлинности требуются только удостоверения Azure Active Directory. См. дополнительные сведения: https://aka.ms/acr/authentication. Modify, Disabled 1.0.0
Настройка реестров контейнеров с использованием частных конечных точек Частные конечные точки подключают виртуальную сеть к службам Azure без общедоступного IP-адреса в исходном или целевом расположении. Сопоставление частных конечных точек с ресурсами реестра контейнеров уровня "Премиум" позволяет снизить риски утечки данных. Дополнительные сведения см. здесь: https://aka.ms/privateendpoints и https://aka.ms/acr/private-link. DeployIfNotExists, Disabled 1.0.0
Реестры контейнеров должны шифроваться с помощью ключа, управляемого клиентом Используйте ключи, управляемые клиентом, для управления шифрованием неактивного содержимого реестров. По умолчанию неактивные данные шифруются с помощью ключей, управляемых службой, но для соблюдения нормативных требований обычно требуются ключи, управляемые клиентом. Ключи, управляемые клиентом, позволяют шифровать данные с помощью ключа Azure Key Vault, создателем и владельцем которого являетесь вы. Вы полностью контролируете жизненный цикл ключа, включая его смену и управление им. Узнайте больше по адресу https://aka.ms/acr/CMK. Audit, Deny, Disabled 1.1.2
Для реестров контейнеров должна быть отключена анонимная проверка подлинности. Отключите анонимное извлечение для реестра, чтобы данные не были доступны пользователям, не прошедшим проверку подлинности. Отключение локальных методов проверки подлинности, таких как администратор, маркеры доступа с областью действия репозитория и анонимное извлечение, повышает безопасность за счет того, что регистрам контейнеров для проверки подлинности требуются только удостоверения Azure Active Directory. См. дополнительные сведения: https://aka.ms/acr/authentication. Audit, Deny, Disabled 1.0.0
В реестрах контейнеров должна быть отключена проверка подлинности токена аудитории ARM. Отключите маркеры аудитории Azure Active Directory ARM для проверки подлинности в реестре. Для проверки подлинности будут использоваться только маркеры аудитории Реестра контейнеров Azure (ACR). Это гарантирует, что для проверки подлинности можно использовать только маркеры, предназначенные для использования в реестре. Отключение маркеров аудитории ARM не влияет на проверку подлинности пользователей или маркеров доступа с заданной областью. См. дополнительные сведения: https://aka.ms/acr/authentication. Audit, Deny, Disabled 1.0.0
В реестрах контейнеров должны быть отключены операции экспорта Отключение операций экспорта повышает безопасность, обеспечивая доступ к данным в реестре исключительно через плоскость данных (docker pull). Данные не могут быть перемещены из реестра с помощью команды acr import или acr transfer. Чтобы отключить операции экспорта, необходимо запретить доступ через общедоступную сеть. См. дополнительные сведения: https://aka.ms/acr/export-policy. Audit, Deny, Disabled 1.0.0
В реестрах контейнеров должна быть отключена локальная учетная запись администратора. Отключите учетную запись администратора для реестра, чтобы реестр был недоступен для локального администратора. Отключение методов локальной проверки подлинности (например, администратор, маркеры доступа с областью действия репозитория, анонимное извлечение) позволяет повысить уровень безопасности за счет того, что для проверки подлинности в реестрах контейнеров необходимы только удостоверения Azure Active Directory. См. дополнительные сведения: https://aka.ms/acr/authentication. Audit, Deny, Disabled 1.0.1
У реестров контейнеров должен быть отключен маркер доступа с областью действия репозитория. Отключите для реестра маркеры доступа с областью действия репозитория, чтобы закрыть доступ к этим репозиториям с помощью маркеров. Отключение локальных методов проверки подлинности, таких как администратор, маркеры доступа с областью действия репозитория и анонимное извлечение, повышает безопасность за счет того, что регистрам контейнеров для проверки подлинности требуются только удостоверения Azure Active Directory. См. дополнительные сведения: https://aka.ms/acr/authentication. Audit, Deny, Disabled 1.0.0
Реестры контейнеров должны иметь номера SKU, поддерживающие Приватные каналы Приватный канал Azure позволяет подключить виртуальную сеть к службам Azure без общедоступного IP-адреса в исходном или целевом расположении. Платформа Приватного канала поддерживает подключение между потребителем и службами через магистральную сеть Azure. Сопоставив частные конечные точки с реестрами контейнеров вместо всей службы, вы снизите риски утечки данных. См. дополнительные сведения: https://aka.ms/acr/private-link. Audit, Deny, Disabled 1.0.0
В реестрах контейнеров не должен быть разрешен неограниченный сетевой доступ По умолчанию реестры контейнеров Azure принимают подключения через Интернет от узлов в любой сети. Чтобы защитить свои реестры от потенциальных угроз, разрешите доступ только с частных конечных точек, общедоступных IP-адресов или диапазонов адресов. Если для реестра не настроены сетевые правила, он отобразится как неработоспособный ресурс. См. дополнительные сведения о сетевых правилах Реестра контейнеров: https://aka.ms/acr/privatelink, https://aka.ms/acr/portal/public-network и https://aka.ms/acr/vnet. Audit, Deny, Disabled 2.0.0
Реестры контейнеров должны предотвратить создание правила кэша Отключите создание правила кэша для Реестр контейнеров Azure, чтобы предотвратить извлечение кэша. См. дополнительные сведения: https://aka.ms/acr/cache. Audit, Deny, Disabled 1.0.0
Реестры контейнеров должны использовать приватный канал Приватный канал Azure позволяет подключить виртуальную сеть к службам Azure без общедоступного IP-адреса в исходном или целевом расположении. Платформа приватного канала обрабатывает подключение между потребителем и службами через магистральную сеть Azure. Сопоставление частных конечных точек с реестрами контейнеров, а не всей службой также обеспечивает защиту от утечки данных. См. дополнительные сведения: https://aka.ms/acr/private-link. Audit, Disabled 1.0.1
Включение ведения журнала по группе категорий для реестров контейнеров (microsoft.containerregistry/registries) в Концентратор событий Журналы ресурсов должны быть включены для отслеживания действий и событий в ресурсах, а также для получения и просмотра аналитических сведений обо всех возникающих изменениях. Эта политика развертывает параметр диагностики с помощью группы категорий для маршрутизации журналов в Концентратор событий для реестров контейнеров (microsoft.containerregistry/registries). DeployIfNotExists, AuditIfNotExists, Disabled 1.1.0
Включение ведения журнала по группе категорий для реестров контейнеров (microsoft.containerregistry/registries) в Log Analytics Журналы ресурсов должны быть включены для отслеживания действий и событий в ресурсах, а также для получения и просмотра аналитических сведений обо всех возникающих изменениях. Эта политика развертывает параметр диагностики с помощью группы категорий для маршрутизации журналов в рабочую область Log Analytics для реестров контейнеров (microsoft.containerregistry/registries). DeployIfNotExists, AuditIfNotExists, Disabled 1.0.0
Включение ведения журнала по группе категорий для реестров контейнеров (microsoft.containerregistry/registries) для служба хранилища Журналы ресурсов должны быть включены для отслеживания действий и событий в ресурсах, а также для получения и просмотра аналитических сведений обо всех возникающих изменениях. Эта политика развертывает параметр диагностики с помощью группы категорий для маршрутизации журналов в учетную запись служба хранилища для реестров контейнеров (microsoft.containerregistry/registries). DeployIfNotExists, AuditIfNotExists, Disabled 1.0.0
Для реестров контейнеров должен быть отключен доступ через общедоступную сеть Отключение доступа к общедоступной сети усиливает защиту, гарантируя, что реестры контейнеров не будут представлены в общедоступном Интернете. Создание частных конечных точек может снизить риски раскрытия ресурсов реестра контейнеров. Дополнительные сведения см. здесь: https://aka.ms/acr/portal/public-network и https://aka.ms/acr/private-link. Audit, Deny, Disabled 1.0.0

Создание назначений политик

Примечание.

После создания или обновления назначения политики для ее применения к ресурсам в заданной области потребуется некоторое время. См. сведения о триггерах оценки политики.

Проверка соответствия политик требованиям

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

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

Сведения о соответствии политик требованиям на портале:

  1. Выберите Все службы и найдите Политика.

  2. Выберите Соответствие.

  3. Используйте фильтры для выбора состояний соответствия требованиям и поиска политик.

    Сведения о соответствии политик требованиям на портале

  4. Выберите политику для просмотра сводных сведений о соответствии требованиям и событиях. При необходимости выберите конкретный реестр контейнеров для просмотра сведений о соответствии ресурсов требованиям.

Сведения о соответствии политик требованиям в Azure CLI

Также для получения сведений о соответствии можно использовать Azure CLI. Например, используйте команду az policy assignment list, чтобы получить идентификаторы политик, которые применяются к Реестру контейнеров Azure:

az policy assignment list --query "[?contains(displayName,'Container Registries')].{name:displayName, ID:id}" --output table

Образец вывода:

Name                                                                                   ID
-------------------------------------------------------------------------------------  --------------------------------------------------------------------------------------------------------------------------------
Container Registries should not allow unrestricted network access           /subscriptions/<subscriptionID>/providers/Microsoft.Authorization/policyAssignments/b4faf132dc344b84ba68a441
Container Registries should be encrypted with a Customer-Managed Key (CMK)  /subscriptions/<subscriptionID>/providers/Microsoft.Authorization/policyAssignments/cce1ed4f38a147ad994ab60a

Затем выполните команду az policy state list, чтобы посмотреть состояние соответствия требованиям в формате JSON для всех ресурсов с указанным идентификатором политики:

az policy state list \
  --resource <policyID>

Или выполните команду az policy state list, чтобы посмотреть состояние соответствия требованиям в формате JSON для определенного ресурса реестра, например myregistry:

az policy state list \
 --resource myregistry \
 --namespace Microsoft.ContainerRegistry \
 --resource-type registries \
 --resource-group myresourcegroup

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