Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Политика Azure расширяет Gatekeeper версии 3, веб-перехватчик контроллера пропуска для инструмента Open Policy Agent (OPA), для применения мер принудительного контроля и защиты компонентов вашего кластера в широком масштабе централизованно и согласованно. Компоненты кластера включают Pods, контейнеры и пространства имен.
Политика Azure позволяет управлять и сообщать о состоянии соответствия компонентов кластера Kubernetes из одного места. Используя надстройку или расширение Политика Azure, управление компонентами кластера улучшается с помощью функций Политика Azure, таких как возможность использования selectors и overrides для безопасного развертывания и отката политики.
Политика Azure для Kubernetes поддерживает следующие среды кластера:
- Azure Kubernetes Service (AKS), через Политика Azure Add-on для AKS
- Azure Arc включает Kubernetes, через расширение Политика Azure для Arc
Внимание
Установка Gatekeeper за пределами надстройки Политика Azure не поддерживается. Удалите все компоненты, установленные предыдущей установкой Gatekeeper, прежде чем включить надстройку Политика Azure.
Обзор
Установив надстройку или расширение Политика Azure в кластерах Kubernetes, Политика Azure выполняет следующие функции:
- Проверяет с помощью службы Политика Azure наличие назначений политик в кластере.
- Развертывает определения политик в кластере в виде пользовательских ресурсов как шаблона ограничения и ограничения или в виде шаблона мутации (в зависимости от содержимого определения политики).
- Возвращает сведения об аудите и соответствии обратно в службу Политика Azure.
Чтобы включить и использовать Политика Azure с кластером Kubernetes, выполните следующие действия:
Настройте кластер Kubernetes и установите надстройку Azure Kubernetes Service (AKS) или расширение Политика Azure для кластеров Kubernetes с поддержкой Arc (в зависимости от типа кластера).
Примечание.
Распространенные проблемы с установкой см. в разделе Troubleshoot — надстройка Политика Azure.
Создайте или используйте пример определения политики Azure для Kubernetes
Ознакомьтесь с ограничениями и рекомендациями в нашем разделе часто задаваемых вопросов
Установка надстройки Политика Azure для AKS
Дополнение Политика Azure для AKS является частью Kubernetes версии 1.27 с долгосрочной поддержкой (LTS).
Предварительные условия
Зарегистрируйте поставщиков ресурсов и функции предварительного просмотра.
портал Azure:
Зарегистрируйте поставщиков ресурсов
Microsoft.PolicyInsights. Действия см. в разделе Поставщики и типы ресурсов.Azure CLI:
# Log in first with az login if you're not using Cloud Shell # Provider register: Register the Azure Policy provider az provider register --namespace Microsoft.PolicyInsights
Вам потребуется Azure CLI версии 2.12.0 или более поздней версии. Чтобы найти версию, выполните команду
az --version. Если необходимо установить или обновить Azure CLI, см. раздел Как установить Azure CLI.Кластер AKS должен быть поддерживаемой версией Kubernetes в Azure Kubernetes Service (AKS). Используйте следующий скрипт для проверки версии кластера AKS:
# Log in first with az login if you're not using Cloud Shell # Look for the value in kubernetesVersion az aks listОткройте порты для расширения Политика Azure. Расширение Политика Azure использует эти домены и порты для получения определений и назначений политики, а также для получения отчетов о соответствии кластера Политика Azure.
Домен Порт data.policy.core.windows.net443store.policy.core.windows.net443login.windows.net443dc.services.visualstudio.com443
После завершения предварительных требований установите надстройку Политика Azure в кластере AKS, которым требуется управлять.
портал Azure
Запустите службу AKS на портале Azure, выбрав службы All, а затем найдите и выберите службы Kubernetes.
Выберите один из кластеров AKS.
Выберите Политики в левой части страницы службы Kubernetes.
На основной странице нажмите кнопку Включить дополнение.
Azure CLI
# Log in first with az login if you're not using Cloud Shell az aks enable-addons --addons azure-policy --name MyAKSCluster --resource-group MyResourceGroup
Чтобы убедиться, что установка надстройки прошла успешно и что объекты pod azure-policy и gatekeeper запущены, выполните следующую команду:
# azure-policy pod is installed in kube-system namespace
kubectl get pods -n kube-system
# gatekeeper pod is installed in gatekeeper-system namespace
kubectl get pods -n gatekeeper-system
Наконец, убедитесь, что последняя надстройка установлена, выполнив эту команду Azure CLI, заменив <rg> именем группы ресурсов и <cluster-name> именем кластера AKS: az aks show --query addonProfiles.azurepolicy -g <rg> -n <cluster-name>. Результат должен выглядеть примерно как на следующих примерах для кластеров с использованием учетных записей служб.
{
"config": null,
"enabled": true,
"identity": null
}
И следующие результаты для кластеров с использованием управляемой идентификации:
{
"config": null,
"enabled": true,
"identity": {
"clientId": "########-####-####-####-############",
"objectId": "########-####-####-####-############",
"resourceId": "<resource-id>"
}
}
Установите расширение Политика Azure для Kubernetes с поддержкой Azure Arc
Политика Azure для Kubernetes позволяет управлять и сообщать о состоянии соответствия кластеров Kubernetes из одного места. С помощью расширения Политика Azure для кластеров Kubernetes с поддержкой Arc вы можете управлять компонентами кластера Kubernetes с поддержкой Arc, такими как модули pod и контейнеры.
В этой статье описывается, как создать, показать статус расширения и удалить расширение Политика Azure для Kubernetes.
Общие сведения о платформе расширений см. в разделе расширения кластера Azure Arc.
Предварительные условия
Если вы уже развернули Политика Azure для Kubernetes в кластере Azure Arc с помощью Helm напрямую без расширений, следуйте инструкциям, чтобы удалить диаграмму Helm. После завершения удаления можно продолжить.
Убедитесь, что дистрибутив кластера Kubernetes поддерживается.
Примечание.
Политика Azure для расширения Arc поддерживается для следующих дистрибутивов Kubernetes.
Убедитесь, что выполнены все распространенные предварительные требования для расширений Kubernetes, перечисленных here включая подключение кластера к Azure Arc.
Примечание.
расширение Политика Azure поддерживается для кластеров Kubernetes с поддержкой Arc в этих регионах.
Откройте порты для расширения Политика Azure. Расширение Политика Azure использует эти домены и порты для получения определений и назначений политики, а также для получения отчетов о соответствии кластера Политика Azure.
Домен Порт data.policy.core.windows.net443store.policy.core.windows.net443login.windows.net443dc.services.visualstudio.com443Перед установкой расширения Политика Azure или включения любого из компонентов службы подписка должна включить поставщики ресурсов
Microsoft.PolicyInsights.Примечание.
Чтобы включить поставщик ресурсов, выполните действия, описанные в разделе Ресурс поставщиков и типов или выполните команду Azure CLI или Azure PowerShell.
Azure CLI
# Log in first with az login if you're not using Cloud Shell # Provider register: Register the Azure Policy provider az provider register --namespace 'Microsoft.PolicyInsights'Azure PowerShell
# Log in first with Connect-AzAccount if you're not using Cloud Shell # Provider register: Register the Azure Policy provider Register-AzResourceProvider -ProviderNamespace 'Microsoft.PolicyInsights'
Создание расширения Политика Azure
Примечание.
Обратите внимание на следующее для создания расширения Политика Azure:
- Функция автоматического обновления включена по умолчанию, что позволит обновлять младшие версии расширения Политика Azure при внесении новых изменений.
- Все переменные прокси-сервера, передаваемые в качестве параметров
connectedk8s, будут распространяться в расширение Политика Azure для поддержки исходящего прокси-сервера.
Чтобы создать экземпляр расширения для кластера с поддержкой Arc, выполните следующую команду, подставив в <> свои значения:
az k8s-extension create --cluster-type connectedClusters --cluster-name <CLUSTER_NAME> --resource-group <RESOURCE_GROUP> --extension-type Microsoft.PolicyInsights --name <EXTENSION_INSTANCE_NAME>
Пример:
az k8s-extension create --cluster-type connectedClusters --cluster-name my-test-cluster --resource-group my-test-rg --extension-type Microsoft.PolicyInsights --name azurepolicy
Пример результата:
{
"aksAssignedIdentity": null,
"autoUpgradeMinorVersion": true,
"configurationProtectedSettings": {},
"configurationSettings": {},
"customLocationSettings": null,
"errorInfo": null,
"extensionType": "microsoft.policyinsights",
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/my-test-rg/providers/Microsoft.Kubernetes/connectedClusters/my-test-cluster/providers/Microsoft.KubernetesConfiguration/extensions/azurepolicy",
"identity": {
"principalId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"tenantId": null,
"type": "SystemAssigned"
},
"location": null,
"name": "azurepolicy",
"packageUri": null,
"provisioningState": "Succeeded",
"releaseTrain": "Stable",
"resourceGroup": "my-test-rg",
"scope": {
"cluster": {
"releaseNamespace": "kube-system"
},
"namespace": null
},
"statuses": [],
"systemData": {
"createdAt": "2021-10-27T01:20:06.834236+00:00",
"createdBy": null,
"createdByType": null,
"lastModifiedAt": "2021-10-27T01:20:06.834236+00:00",
"lastModifiedBy": null,
"lastModifiedByType": null
},
"type": "Microsoft.KubernetesConfiguration/extensions",
"version": "1.1.0"
}
Показать расширение Политика Azure
Чтобы проверить успешность создания экземпляра расширения и проверить метаданные расширения, выполните следующую команду, подставив в <> свои значения:
az k8s-extension show --cluster-type connectedClusters --cluster-name <CLUSTER_NAME> --resource-group <RESOURCE_GROUP> --name <EXTENSION_INSTANCE_NAME>
Пример:
az k8s-extension show --cluster-type connectedClusters --cluster-name my-test-cluster --resource-group my-test-rg --name azurepolicy
Чтобы убедиться, что установка расширения прошла успешно и что объекты pod azure-policy и gatekeeper запущены, выполните следующую команду:
# azure-policy pod is installed in kube-system namespace
kubectl get pods -n kube-system
# gatekeeper pod is installed in gatekeeper-system namespace
kubectl get pods -n gatekeeper-system
Удаление расширения Политика Azure
Чтобы удалить экземпляр расширения, выполните следующую команду, подставив в <> свои значения:
az k8s-extension delete --cluster-type connectedClusters --cluster-name <CLUSTER_NAME> --resource-group <RESOURCE_GROUP> --name <EXTENSION_INSTANCE_NAME>
Создать определение политики.
Структура языка Политика Azure для управления Kubernetes следует за существующими определениями политик. Существуют примеры файлов определений, которые можно назначить в встроенной библиотеке политик Политика Azure которые можно использовать для управления компонентами кластера.
Политика Azure для Kubernetes также поддерживает создание пользовательских определений на уровне компонента для кластеров Служба Azure Kubernetes и кластеров Kubernetes с поддержкой Azure Arc. Примеры шаблонов ограничений и шаблонов мутаций доступны в библиотеке сообщества Gatekeeper. Расширение Политика Azure для Visual Studio Code можно использовать для преобразования существующего шаблона ограничения или шаблона мутации в пользовательскую политику Политика Azure.
В режиме поставщика ресурсов Resource ProviderMicrosoft.Kubernetes.Data, эффекты audit, deny, disabled и mutate используются для управления кластерами Kubernetes.
Аудит и отказ должны предоставлять details свойства, относящиеся к работе с OPA Constraint Framework и Gatekeeper v3.
В рамках свойств details.templateInfo или details.constraintInfo в определении политики Политика Azure передает URI или Base64Encoded значения этих CustomResourceDefinitions(CRD) дополнению. Rego — это язык, поддерживаемый OPA и Gatekeeper для проверки запросов к кластеру Kubernetes. Поддерживая существующий стандарт управления Kubernetes, Политика Azure позволяет повторно использовать существующие правила и связывать их с Политика Azure для единого взаимодействия с отчетами о соответствии облачным требованиям. Дополнительные сведения см. в разделе "Что такое Rego?"
Назначить определение политики
Чтобы назначить определение политики на кластер Kubernetes, вам должны быть назначены соответствующие операции назначения политики управления доступом на основе ролей в Azure (Azure RBAC). Встроенные роли Azure Resource Policy Contributor и Владелец имеют эти операции. Дополнительные сведения см. в разделе права доступа Azure RBAC в Политика Azure.
Найдите встроенные определения политик для управления кластером с помощью портала Azure, выполнив следующие действия. Если используется пользовательское определение политики, выполните поиск по имени или категории, в которой она была создана.
Запустите службу Политика Azure на портале Azure. На панели слева выберите Все службы, а затем выполните поиск по запросу Политика и выберите этот пункт.
В левой области страницы Политика Azure выберите Definitions.
В раскрывающемся списке "Категория" щелкните Выбрать все, чтобы очистить фильтр, а затем выберите Kubernetes.
Выберите определение политики, а затем нажмите кнопку Назначить.
Задайте область для группы управления, подписки или группы ресурсов кластера Kubernetes, где применяется назначение политики.
Примечание.
При назначении определения Политика Azure для Kubernetes необходимо включить ресурс кластера Scope.
Присвойте назначению политики имя и описание, по которым его можно будет легко отличить.
Задайте для принудительного применения политики одно из следующих значений:
Включено — принудительное применение политики в кластере. Запросы на доступ Kubernetes с нарушениями отклоняются.
Отключено — не применять политику в кластере. Запросы на допуск Kubernetes с нарушениями не отклоняются. Результаты оценки соответствия по-прежнему доступны. При развертывании новых определений политик для работающих кластеров параметр Отключено полезен для тестирования определения политики, поскольку запросы на прием с нарушениями не отклоняются.
Выберите Далее.
Установка значений параметра
- Чтобы исключить пространства имен Kubernetes из оценки политики, укажите список пространств имен в параметре Исключения пространства имен. Рекомендация заключается в исключении: kube-system, gatekeeper-system и azure-arc.
Выберите Просмотреть и создать (Review + create).
Или воспользуйтесь кратким руководством Назначение политики с помощью портала для поиска и назначения политики Kubernetes. Ищите определение политики Kubernetes вместо примера audit vms.
Внимание
Встроенные определения политик доступны для кластеров Kubernetes в категории Kubernetes. Список встроенных определений политик см. в Образцы Kubernetes.
Оценка политики
Надстройка связывается со службой Политика Azure, чтобы проверять изменения в назначениях политик каждые 15 минут. Во время этого цикла обновления надстройка проверяет наличие изменений. Эти изменения инициируют создание, обновление или удаление шаблонов ограничений и самих ограничений.
В кластере Kubernetes, если пространство имен имеет метку, соответствующую кластеру, запросы на допуск с нарушениями не отклоняются. Результаты оценки соответствия по-прежнему доступны.
- кластер Kubernetes с поддержкой Azure Arc:
admission.policy.azure.com/ignore
Примечание.
Хотя администратор кластера может иметь разрешение на создание и обновление шаблонов ограничений и ресурсов, установленных с помощью надстройки Политика Azure, эти сценарии не поддерживаются, так как ручные обновления перезаписываются. Gatekeeper продолжает оценивать политики, имевшие место до установки надстройки и назначения определений политики в Политика Azure.
Каждые 15 минут дополнение вызывает полную проверку кластера. После сбора сведений о полной проверке и любого анализа в режиме реального времени с помощью Gatekeeper, связанных с попытками изменений в кластере, надстройка сообщает о результатах обратно в Политика Azure для включения в сведения о соответствии, как и любое назначение Политика Azure. Только результаты назначений активной политики возвращаются во время цикла аудита. Результаты аудита также могут отображаться как нарушения, указанные в поле состояния ограничения, завершившегося сбоем. Дополнительные сведения о ресурсах, не соответствующих требованиям, см. в разделе Сведения о компоненте для режимов поставщиков ресурсов.
Примечание.
Каждый отчет о соответствии в Политика Azure для кластеров Kubernetes включает все нарушения за последние 45 минут. Метка времени указывает, когда произошло нарушение.
Другие замечания:
Если подписка кластера зарегистрирована в Microsoft Defender для облака, Microsoft Defender для облака политики Kubernetes применяются к кластеру автоматически.
Если политика запрета применяется к кластеру с существующими ресурсами Kubernetes, все существующие ресурсы, которые не соответствуют новой политике, продолжают действовать. Когда несоответствующий ресурс перераспределяется на другой узел, Gatekeeper блокирует создание ресурсов.
Если в кластере есть политика запрета, которая проверяет ресурсы, пользователь не получает сообщение об отказе при создании развертывания. Например, рассмотрим развертывание Kubernetes, содержащее
replicasetsи модули pod. Когда пользователь выполняетkubectl describe deployment $MY_DEPLOYMENT, сообщение об отклонении не возвращается частью событий. Однакоkubectl describe replicasets.apps $MY_DEPLOYMENTвозвращает события, связанные с отклонением.
Примечание.
Контейнеры инициализации могут быть включены во время оценки политики. Чтобы узнать, включены ли контейнеры инициализации, просмотрите CRD для следующего или аналогичного объявления:
input_containers[c] {
c := input.review.object.spec.initContainers[_]
}
Конфликты шаблонов ограничений
Если шаблоны ограничений имеют одно и то же имя метаданных ресурса, но определение политики ссылается на источник в различных расположениях, определения политик считаются конфликтующими. Пример. Два определения политики ссылались на один и тот же файл template.yaml, хранящийся в разных исходных расположениях, таких как хранилище шаблонов Политика Azure (store.policy.core.windows.net) и GitHub.
Если определения политик и их шаблоны ограничений назначены, но еще не установлены в кластере и конфликтуют, они сообщаются как конфликт и не устанавливаются в кластер до тех пор, пока конфликт не будет разрешен. Аналогичным образом, все существующие определения политик и их шаблоны ограничений, которые уже находятся в кластере, который конфликтует с недавно назначенными определениями политик, продолжают работать нормально. Если существующее назначение обновляется и возникает сбой синхронизации шаблона ограничения, кластер также помечается как конфликт. Все сообщения о конфликтах см. в разделе Причины проблем соответствия режимов поставщика услуг AKS.
Логирование
Pod'ы azure-policy и gatekeeper, выступающие в роли контроллеров/контейнеров Kubernetes, ведут журналы в кластере Kubernetes. Как правило, журналы политики Azure можно использовать для устранения проблем с приемом политик в кластере и отчетах о соответствии требованиям. Журналы управляющего контроллером gatekeeper можно использовать для устранения отказов во время выполнения. Журналы пода gatekeeper-audit можно использовать для устранения неполадок при аудите существующих ресурсов. Журналы можно просмотреть на странице Insights кластера Kubernetes. Дополнительные сведения см. в разделе мониторинг производительности кластера Kubernetes с помощью Azure Monitor для контейнеров.
Чтобы просмотреть журналы надстроек, используйте kubectl:
# Get the azure-policy pod name installed in kube-system namespace
kubectl logs <azure-policy pod name> -n kube-system
# Get the gatekeeper pod name installed in gatekeeper-system namespace
kubectl logs <gatekeeper pod name> -n gatekeeper-system
Если вы пытаетесь устранить неполадки с определенным кодом ComplianceReasonCode, который отображается в результатах соответствия требованиям, вы можете найти журналы pod azure-policy для этого кода, чтобы увидеть полную сопутствующую ошибку.
Дополнительные сведения см. в статье об отладке Gatekeeper в документации по Gatekeeper.
Просмотр артефактов Gatekeeper
После загрузки назначений политик дополнения и установки шаблонов ограничений и ограничений в кластере, он аннотирует их сведениями Политика Azure, такими как идентификатор назначения политики и идентификатор определения политики. Чтобы настроить клиент для просмотра артефактов, связанных с надстройкой, выполните следующие действия.
Настройте
kubeconfigдля кластера.Для кластера Служба Azure Kubernetes используйте следующие Azure CLI:
# Set context to the subscription az account set --subscription <YOUR-SUBSCRIPTION> # Save credentials for kubeconfig into .kube in your home folder az aks get-credentials --resource-group <RESOURCE-GROUP> --name <CLUSTER-NAME>Проверка подключения к кластеру.
Выполните команду
kubectl cluster-info. В случае успешного выполнения каждая служба отвечает URL-адресом, на котором она работает.
Посмотрите шаблоны ограничений для дополнений
Чтобы просмотреть шаблоны ограничений, скачанные надстройкой, выполните команду kubectl get constrainttemplates.
Шаблоны ограничений, начинающиеся с k8sazure, установлены надстройкой.
Посмотреть шаблоны мутаций дополнений
Чтобы просмотреть шаблоны мутаций, скачанные надстройкой, запустите kubectl get assign, kubectl get assignmetadata и kubectl get modifyset.
Получение сопоставлений Политика Azure
Чтобы определить сопоставление между шаблоном ограничения, загруженным в кластер, и определением политики, используйте kubectl get constrainttemplates <TEMPLATE> -o yaml. Результаты выглядят как следующие данные.
apiVersion: templates.gatekeeper.sh/v1beta1
kind: ConstraintTemplate
metadata:
annotations:
azure-policy-definition-id: /subscriptions/<SUBID>/providers/Microsoft.Authorization/policyDefinitions/<GUID>
constraint-template-installed-by: azure-policy-addon
constraint-template: <URL-OF-YAML>
creationTimestamp: "2021-09-01T13:20:55Z"
generation: 1
managedFields:
- apiVersion: templates.gatekeeper.sh/v1beta1
fieldsType: FieldsV1
...
<SUBID> — это идентификатор подписки, а <GUID> — идентификатор определения сопоставленной политики.
<URL-OF-YAML> — это исходное расположение шаблона ограничения, загружаемого надстройкой для установки в кластере.
Просмотр ограничений, связанных с шаблоном ограничения
Получив имена шаблонов ограничений, загруженных с помощью дополнений, можно использовать их имя для просмотра связанных ограничений. Используйте kubectl get <constraintTemplateName> для получения списка.
Ограничения, установленные надстройкой, начинаются с azurepolicy-.
Просмотр сведений об ограничениях
Ограничение содержит сведения о нарушениях и сопоставлениях с определением и назначением политики. Чтобы просмотреть подробные сведения, используйте kubectl get <CONSTRAINT-TEMPLATE> <CONSTRAINT> -o yaml. Результаты выглядят как следующие данные.
apiVersion: constraints.gatekeeper.sh/v1beta1
kind: K8sAzureContainerAllowedImages
metadata:
annotations:
azure-policy-assignment-id: /subscriptions/<SUB-ID>/resourceGroups/<RG-NAME>/providers/Microsoft.Authorization/policyAssignments/<ASSIGNMENT-GUID>
azure-policy-definition-id: /providers/Microsoft.Authorization/policyDefinitions/<DEFINITION-GUID>
azure-policy-definition-reference-id: ""
azure-policy-setdefinition-id: ""
constraint-installed-by: azure-policy-addon
constraint-url: <URL-OF-YAML>
creationTimestamp: "2021-09-01T13:20:55Z"
spec:
enforcementAction: deny
match:
excludedNamespaces:
- kube-system
- gatekeeper-system
- azure-arc
parameters:
imageRegex: ^.+azurecr.io/.+$
status:
auditTimestamp: "2021-09-01T13:48:16Z"
totalViolations: 32
violations:
- enforcementAction: deny
kind: Pod
message: Container image nginx for container hello-world has not been allowed.
name: hello-world-78f7bfd5b8-lmc5b
namespace: default
- enforcementAction: deny
kind: Pod
message: Container image nginx for container hello-world has not been allowed.
name: hellow-world-89f8bfd6b9-zkggg
Устранение неполадок надстройки
Дополнительные сведения об устранении неполадок надстройки для Kubernetes можно найти в статье по устранению неполадок Политика Azure в разделе Kubernetes.
Для устранения проблем, связанных с расширением Политика Azure для Arc, перейдите по следующему адресу:
С информацией о проблемах, связанных с Политика Azure, см. в:
надстройка Политика Azure для журнала изменений AKS
Надстройка Политика Azure для AKS имеет номер версии, указывающий версию образа надстройки. Поскольку в дополнении была введена поддержка функций, номер версии увеличивается.
Этот раздел поможет определить, какая версия надстройки установлена в кластере, а также предоставить общую историческую таблицу версии надстройки Политика Azure, установленной для каждого кластера AKS.
Определите, какая версия надстройки установлена в вашем кластере
Надстройка Политика Azure использует стандартную схему Semantic Versioning для каждой версии. Чтобы определить используемую версию надстройки Политика Azure, можно выполнить следующую команду: kubectl get pod azure-policy-<unique-pod-identifier> -n kube-system -o json | jq '.spec.containers[0].image'
Чтобы определить версию Gatekeeper, которую использует надстройка Политика Azure, можно выполнить следующую команду: kubectl get pod gatekeeper-controller-<unique-pod-identifier> -n gatekeeper-system -o json | jq '.spec.containers[0].image'
Наконец, чтобы определить используемую версию кластера AKS, следуйте связанным рекомендациям AKS.
Доступные версии надстроек для каждой версии кластера AKS
1.15.5-1
Вводные сведения о создании политики проверки допуска (VAP). Проверяющие политики допуска — это встроенные в Kubernetes политики проверки, которые оцениваются в процессе, что позволяет уменьшить задержку и обеспечить оценку с завершением при ошибке. Политики Azure, которые содержат общий язык выражений (CEL), автоматически создают VAPы. Дополнительные сведения см. в документации Gatekeeper.
Теперь надстройка полностью совместима с FIPS.
Исправление CVE-2026-25679, CVE-2026-27142, CVE-2026-27139, CVE-2026-32280, CVE-2025-68121, CVE-2025-61726, CVE-2025-61728, CVE-2026-32281, CVE-2026-32283.
Улучшения безопасности.
- Выпущено: июнь 2026 г.
- Kubernetes: 1.30+
- Вратарь: 3.22.1
Вратарь 3.22.1
Выпуск обновления Gatekeeper: изменения https://github.com/open-policy-agent/gatekeeper/releases/tag/v3.22.1https://github.com/open-policy-agent/gatekeeper/compare/v3.20.1...v3.22.1
1.15.5
Улучшения безопасности.
- Выпущено: февраль 2026 г.
- Kubernetes: 1.27+
- Gatekeeper: 3.20.1
1.15.4
Исправление CVE-2025-61727. Улучшения безопасности.
- Выпущено: декабрь 2025 г.
- Kubernetes: 1.27+
- Gatekeeper: 3.20.1
1.15.3
Исправление CVE-2025-47914, CVE-2025-58181, CVE-2025-58187 и CVE-2025-22872. Улучшения безопасности.
- Выпущено: декабрь 2025 г.
- Kubernetes: 1.27+
- Gatekeeper: 3.20.1
1.15.1
Улучшения безопасности.
- Выпущено: ноябрь 2025 г.
- Kubernetes: 1.27+
- Gatekeeper: 3.20.1
1.14.2
Исправление CVE-2025-4802. Улучшения безопасности.
- Выпущено: октябрь 2025 г.
- Kubernetes: 1.27+
- Gatekeeper: 3.20.1
Gatekeeper 3.20.1
Выпуск обновления Gatekeeper: изменения https://github.com/open-policy-agent/gatekeeper/releases/tag/v3.20.1https://github.com/open-policy-agent/gatekeeper/compare/v3.19.1...v3.20.1
1.13.1
Исправление CVE-2025-47907. Улучшения безопасности.
- Выпущено: август 2025 г.
- Kubernetes: 1.27+
- Gatekeeper: 3.20.0
1.13.0
Граница данных ЕС теперь поддерживается Политика Azure для Kubernetes в AKS. Чтобы узнать больше о границе данных ЕС, ознакомьтесь с обзором границы данных ЕС. Исправление CVE-2025-22874. Улучшения безопасности.
- Выпущено: июль 2025 г.
- Kubernetes: 1.27+
- Gatekeeper: 3.20.0
Gatekeeper 3.20.0
Выпуск обновления Gatekeeper: изменения https://github.com/open-policy-agent/gatekeeper/releases/tag/v3.20.0https://github.com/open-policy-agent/gatekeeper/compare/v3.19.1...v3.20.0
1.12.3
Исправление CVE-2025-22874 и GHSA-vrw8-fxc6-2r93. Улучшения безопасности.
- Выпущено: июль 2025 г.
- Kubernetes: 1.27+
- Gatekeeper: 3.19.1
1.12.2
Улучшения безопасности.
- Выпущено: июнь 2025 г.
- Kubernetes: 1.27+
- Gatekeeper: 3.19.1
1.11.1
Исправление CVE-2025-22872. Улучшения безопасности.
- Выпущено: май 2025 г.
- Kubernetes: 1.27+
- Gatekeeper: 3.19.1
Вратарь 3.19.1
Выпуск обновления Gatekeeper: изменения https://github.com/open-policy-agent/gatekeeper/releases/tag/v3.19.1https://github.com/open-policy-agent/gatekeeper/compare/v3.18.2...v3.19.1
1.10.1
Исправление CVE-2025-30204 и CVE-2025-22870. Улучшения безопасности.
- Выпущено: апрель 2025 г.
- Kubernetes: 1.27+
- Вратарь: 3.18.2
1.10.0
CEL включен по умолчанию, вы можете продолжать использовать Rego. Представлен новый CRD configpodstatuses.status.gatekeeper.sh (ссылка: https://github.com/open-policy-agent/gatekeeper/issues/2918).
Улучшения безопасности.
- Выпущено: февраль 2025 г.
- Kubernetes: 1.27+
- Вратарь: 3.18.2
Вратарь 3.18.2
Выпуск обновления Gatekeeper: изменения https://github.com/open-policy-agent/gatekeeper/releases/tag/v3.18.2https://github.com/open-policy-agent/gatekeeper/compare/v3.17.1...v3.18.2
1.9.1
Исправление CVE-2024-45337 и CVE-2024-45338. Улучшения безопасности.
- Выпущено: январь 2025 г.
- Kubernetes: 1.27+
- Gatekeeper: 3.17.1
Вратарь 3.17.1
Релиз Gatekeeper: https://github.com/open-policy-agent/gatekeeper/releases/tag/v3.17.1
1.8.0
Теперь политику можно использовать для оценки операций CONNECT, например, для запрета exec. Обратите внимание, что для несоответствующих операций CONNECT нет соответствия требованиям brownfield, поэтому политика с эффектом аудита, направленная на CONNECTs, не имеет действия.
Улучшения безопасности.
- Выпущено: ноябрь 2024 г.
- Kubernetes: 1.27+
- Gatekeeper: 3.17.1
1.7.1
Знакомство с CEL и VAP. Язык общих выражений (CEL) — это нативный для Kubernetes язык выражений, который можно использовать для определения правил проверки политик. Функция проверки политики допуска (VAP) обеспечивает оценку политики в встроенной системе, уменьшает задержку при запросе на допуск и повышает надежность и доступность. Поддерживаемые действия проверки включают отклонение, предупреждение и аудит. Пользовательская разработка политик для CEL/VAP разрешена, и существующим пользователям не нужно преобразовывать их Rego в CEL, так как оба формата будут поддерживаться и использоваться для реализации политик. Чтобы использовать CEL и VAP, пользователям необходимо зарегистрировать флаг компонента AKS-AzurePolicyK8sNativeValidation в пространстве имен Microsoft.ContainerService. Дополнительные сведения см. в документации Gatekeeper.
Улучшения безопасности.
- Выпущено: сентябрь 2024 г.
- Kubernetes: 1.27+ (поколение VAP поддерживается только в версии 1.30+)
- Gatekeeper: 3.17.1
1.7.0
Введение функции расширения, сдвиг влево, которая позволяет заранее определить, будут ли ваши ресурсы рабочей нагрузки (развертывания, ReplicaSets, задания и т. д.) создавать допустимые pod. Расширение не должно изменять поведение ваших политик; скорее, оно просто сдвигает оценку политик, применимых к pod, с момента приема pod на момент приема рабочей нагрузки. Однако для выполнения этой оценки необходимо сгенерировать и оценить гипотетический pod, основанный на спецификации pod, указанной в рабочей нагрузке, которая может содержать неполные метаданные. Например, модуль what-if pod не будет содержать соответствующие ссылки владельца. Из-за этого небольшого риска изменения поведения политики мы представляем расширение как отключенное по умолчанию. Чтобы включить расширение для заданного определения политики, задайте значение .policyRule.then.details.sourceAll. Встроенные модули будут обновлены в ближайшее время, чтобы включить параметризацию этого поля. Если вы протестируете определение политики и обнаружите, что модуль "what-if" pod, созданный для оценки, является неполным, можно также использовать мутацию с источником Generated для изменения модулей "what-if" pod. Дополнительные сведения об этом параметре см. в документации по Gatekeeper.
Расширение в настоящее время доступно только в кластерах AKS, а не в кластерах Arc.
Улучшения безопасности.
- Выпущено: июль 2024 г.
- Kubernetes: 1.27+
- Gatekeeper: 3.16.3
1.6.1
Улучшения безопасности.
- Выпущено: май 2024 г.
- Gatekeeper: 3.14.2
1.5.0
Улучшения безопасности.
- Выпущено: май 2024 г.
- Kubernetes: 1.27+
- Gatekeeper: 3.16.3
1.4.0
Включает мутацию и внешние данные по умолчанию. Дополнительный мутирующий веб-перехватчик и увеличение предела времени ожидания проверяющего веб-перехватчика могут в худшем случае добавить задержку к вызовам. Также представлена поддержка просмотра определения политики и задания версии определения в результатах соответствия требованиям. Улучшения безопасности.
- Выпущено: май 2024 г.
- Kubernetes: 1.25+
- Gatekeeper: 3.14.0
1.3.0
Представляет состояние ошибки для политик с ошибками, что позволяет отличать их от политик в состоянии несоответствия. Добавляет поддержку шаблонов ограничений версии v1 и использования параметра excludedNamespaces в политике мутаций. Добавляет проверку состояния ошибки для шаблонов ограничений после установки.
Улучшения безопасности.
- Выпущено: февраль 2024 г.
- Kubernetes: 1.25+
- Gatekeeper: 3.14.0
1.2.1
Улучшения безопасности.
- Выпущено: октябрь 2023 г.
- Kubernetes: 1.25+
- Вратарь: 3.13.3
1.1.0
Улучшения безопасности.
- Выпущено: июль 2023 г.
- Kubernetes: 1.27+
- Gatekeeper: 3.11.1
1.0.1
Улучшения безопасности.
- Выпущено: июнь 2023 г.
- Kubernetes: 1.24+
- Gatekeeper: 3.11.1
1.0.0
Политика Azure для Kubernetes теперь поддерживает изменение в масштабе для исправления кластеров AKS.
Удалите надстройку
Удалите надстройку из AKS
Чтобы удалить надстройку Политика Azure из кластера AKS, используйте портал Azure или Azure CLI:
портал Azure
Запустите службу AKS на портале Azure, выбрав службы All, а затем найдите и выберите службы Kubernetes.
Выберите кластер AKS, в котором нужно отключить надстройку Политика Azure.
Выберите Политики в левой части страницы службы Kubernetes.
На главной странице нажмите кнопку Отключить дополнение.
Azure CLI
# Log in first with az login if you're not using Cloud Shell az aks disable-addons --addons azure-policy --name MyAKSCluster --resource-group MyResourceGroup
Удаление надстройки из Azure Arc с поддержкой Kubernetes
Примечание.
Модель Helm дополнения Политика Azure теперь устарела. Вместо этого стоит выбрать расширение Политика Azure для Kubernetes с поддержкой Azure Arc.
Чтобы удалить надстройку Политика Azure и Gatekeeper из кластера Kubernetes, поддерживающего Azure Arc, выполните следующую команду Helm:
helm uninstall azure-policy-addon
Удалите надстройку из Движка AKS
Примечание.
Теперь продукт AKS Engine признан устаревшим для клиентов общедоступного облака Azure. Рекомендуется использовать Azure Kubernetes Service (AKS) для управляемого сервиса Kubernetes или Cluster API Provider Azure для самостоятельно управляемого Kubernetes. Нет новых функций, запланированных; этот проект будет обновлен только для CVEs и аналогично, с Kubernetes 1.24 в качестве окончательной версии для получения обновлений.
Чтобы удалить надстройку Политика Azure и компонент Gatekeeper из вашего кластера AKS Engine, используйте метод, соответствующий способу установки надстройки:
Если установка выполнена путем задания свойства addons в определении кластера для Обработчика AKS:
повторно разверните определение кластера в Обработчике AKS после изменения значения свойства addons для azure-policy на false:
"addons": [ { "name": "azure-policy", "enabled": false } ]Дополнительные сведения см. в разделе AKS Engine — отключение надстройки Политика Azure.
При установке с помощью Helm Charts выполните следующую команду Helm:
helm uninstall azure-policy-addon
Ограничения
Внимание
Разрешения на редактирование или удаление проверяющих конфигураций веб-перехватчика, изменяющих конфигураций веб-перехватчика, проверяющих политик допуска и их привязок, а также изменяющих политик допуска и их привязок должны рассматриваться как высокопривилегированные. Дизайн Kubernetes не позволяет политикам защищать эти типы ресурсов, чтобы избежать циклических зависимостей.
- Для ознакомления с общими определениями и пределами назначения в Политика Azure просмотрите документацию об ограничениях Политика Azure
- Надстройку Политика Azure для Kubernetes можно развернуть только в Linux-пулах узлов.
- Максимальное количество pod, поддерживаемых надстройкой Политика Azure для каждого кластера: 10 000
- Максимальное число несоответствующих записей в каждой политике на один кластер: 500.
- Максимальное число несоответствующих записей для одной подписки: 1 миллион.
- Причины несоответствия недоступны для режима поставщика ресурсов Microsoft.Kubernetes.Data . Используйте Сведения о компоненте.
- Компонентные исключения не поддерживаются для режимов поставщика ресурсов. Поддержка параметров доступна в определениях Политика Azure для исключения и включения определенных пространств имен.
-
metadata.gatekeeper.sh/requires-sync-dataИспользование заметки в шаблоне ограничения для настройки репликации данных из кластера в кэш OPA в настоящее время разрешено только для встроенных политик. Причина заключается в том, что это может существенно увеличить использование ресурсов pod Gatekeeper, если не используется тщательно.
Настройка конфигурации Gatekeeper
Изменение конфигурации Gatekeeper не поддерживается, так как она содержит критически важные параметры безопасности. Изменения конфигурации согласованы.
Использование data.inventory в шаблонах ограничений
В настоящее время несколько встроенных политик используют репликацию данных, которая позволяет пользователям синхронизировать существующие ресурсы в кластере с кэшем OPA и ссылаться на них во время оценки AdmissionReview запроса. Политики репликации данных можно различать по наличию data.inventory в Rego и аннотации metadata.gatekeeper.sh/requires-sync-data, которая сообщает надстройке Политика Azure, какие ресурсы необходимо кэшировать, чтобы оценка политик работала правильно. Этот процесс отличается от автономного Gatekeeper, где эта заметка является описательной, а не предписательной.
Репликация данных в настоящее время блокируется для использования в определениях настраиваемых политик, так как репликация ресурсов с высоким числом экземпляров может значительно увеличить использование ресурсов pod Gatekeeper, если не используется тщательно. При попытке создать определение пользовательской политики, содержащее шаблон ограничения с этой заметкой, вы увидите ошибку ConstraintTemplateInstallFailed.
При удалении аннотации может показаться, что ошибка исчезла, но надстройка политики не будет синхронизировать необходимые ресурсы для шаблона ограничения в кэш. Таким образом, ваши политики будут оцениваться на основе пустого объекта data.inventory, при условии, что никакая встроенная функция не назначена, которая воспроизводит необходимые ресурсы. Это приведет к искажению результатов соответствия. Как отмечалось ранее, изменение конфигурации вручную для кэширования необходимых ресурсов также запрещено.
Следующие ограничения применяются только к надстройке Политика Azure для AKS:
- Политика безопасности Pod AKS и надстройка Политика Azure для AKS не могут быть включены одновременно. Дополнительные сведения см. в разделе ограничение безопасности AKS Pod.
- Пространства имен автоматически исключаются надстройкой Политика Azure при оценке: kube-system и gatekeeper-system.
Часто задаваемые вопросы
Что развертывает надстройка Политика Azure или расширение Политика Azure в моем кластере при установке?
Для выполнения надстройки Политика Azure требуется три компонента Gatekeeper: один модуль аудита и две реплики pod веб-перехватчика. Также устанавливается один модуль pod Политика Azure и один модуль веб-перехватчика Политика Azure.
Сколько ресурсов должна использовать надстройка или расширение Политика Azure в каждом кластере?
Политика Azure для компонентов Kubernetes, работающих в вашем кластере, потребляет больше ресурсов по мере увеличения количества ресурсов Kubernetes и назначений политик в кластере, что требует выполнения аудита и принудительного применения.
Ниже приведены оценки, которые помогут вам спланировать:
- Для кластера с менее 500 pod и максимум 20 ограничений: два виртуальных процессора и 350 МБ памяти на каждый компонент.
- Для более чем 500 podов в одном кластере с максимумом 40 ограничений: три виртуальных центральных процессора (ЦП) и 600 МБ памяти на компонент.
Можно ли применять Политика Azure для определений Kubernetes на Windows подах?
Windows pods не поддерживают контексты безопасности. Таким образом, некоторые определения Политика Azure, такие как запрет привилегий root, нельзя повысить в Windows pods и они применяются только к pods Linux.
Какой тип диагностических данных собирается с помощью надстройки Политика Azure?
Надстройка Политика Azure для Kubernetes собирает ограниченные диагностические данные кластера. Они являются важнейшими техническими данными, относящимися к программному обеспечению и производительности. Данные используются следующим образом:
- Поддерживайте надстройку Политика Azure в актуальном состоянии.
- Поддерживайте надстройку Политика Azure безопасной, надежной и эффективной.
- Улучшение надстройки Политика Azure с помощью сводного анализа использования этой надстройки.
Сведения, собираемые надстройкой, не являются персональными данными. В настоящее время ведется сбор следующих сведений:
- Политика Azure версия агента надстройки
- Тип кластера
- Регион кластера
- Группа ресурсов кластера
- ИД ресурса кластера
- Идентификатор подписки кластера
- Ос кластера (пример: Linux)
- Кластерный город (пример: Сиэтл)
- Штат кластера или провинция (пример: Вашингтон)
- Страна кластера или регион (пример: США)
- Исключения и ошибки, возникающие Политика Azure надстройке во время установки агента при оценке политики
- Количество определений политики Gatekeeper, не установленных с помощью надстройки Политика Azure
Какие общие рекомендации следует учитывать при установке надстройки Политика Azure?
- Используйте пул системных узлов с отметкой
CriticalAddonsOnlyдля планирования pod-модулей Gatekeeper. Дополнительные сведения см. в разделе Использование пулов системных узлов. - Защитите исходящий трафик из ваших кластеров AKS. Дополнительные сведения см. в разделе Управление исходящим трафиком для узлов кластера.
- Если в кластере включена функция
aad-pod-identity, модули Node Managed Identity (NMI) изменяют узлыiptablesдля перехвата вызовов к конечной точке метаданных экземпляра Azure. Такая конфигурация обеспечивает перехват модулем NMI любого запроса к конечной точке метаданных, даже если модуль pod не используетaad-pod-identity. -
AzurePodIdentityExceptionCRD можно настроить так, чтобы он информировалaad-pod-identityо том, что все запросы к конечной точке метаданных, поступающие из pod, который соответствует меткам, определённым в CRD, должны быть проксированы без обработки в NMI. Модули подов системы с меткойkubernetes.azure.com/managedby: aksв подсистеме kube-system следует исключить изaad-pod-identity, настроив CRDAzurePodIdentityException. Дополнительные сведения см. в разделе Отключение aad-pod-identity для конкретного pod-модуля или приложения. Чтобы настроить исключение, установите mic-exception YAML.
Следующие шаги
- Ознакомьтесь с примерами Политика Azure.
- Проверьте структуру определения политики.
- Изучите эффекты политики.
- Узнайте о программном создании политик.
- Узнайте, как получать данные о соответствии.
- Узнайте, как исправлять несоответствующие ресурсы.
- Изучите, что такое группа управления, с Организуйте ваши ресурсы с помощью групп управления Azure.