Политика Azure определения запретить эффект
Эффект deny
используется для предотвращения запроса ресурсов, который не соответствует определенным стандартам с помощью определения политики и завершается сбоем запроса.
Оценка запрета
При создании или обновлении соответствующего ресурса в режиме Resource Manager запрет останавливает запрос до его отправки поставщику ресурсов. Запрос возвращает 403 (Forbidden)
. На портале Forbidden
можно просмотреть как состояние развертывания, которое было запрещено назначением политики. В режиме поставщика ресурсов поставщик ресурсов управляет оценкой ресурса.
Во время оценки существующих ресурсов ресурсы, соответствующие deny
определению политики, помечаются как несоответствующие.
Свойства запрета
В режиме deny
Resource Manager эффект не имеет дополнительных свойств для использования в then
условии определения политики.
Для режима Microsoft.Kubernetes.Data
deny
поставщика ресурсов эффект имеет следующие вложенные свойстваdetails
. Использование параметра templateInfo
является обязательным для новых или обновленных определений политик, так как constraintTemplate
является устаревшим.
templateInfo
(обязательно)- Не может использоваться с
constraintTemplate
. sourceType
(обязательно)Определяет тип источника для шаблона ограничения. Допустимые значения:
PublicURL
илиBase64Encoded
.Значение if
PublicURL
, парное с свойствомurl
, чтобы указать расположение шаблона ограничения. Расположение должно быть общедоступным.Предупреждение
Не используйте URI или маркеры SAS в
url
или другие объекты, которые могут предоставить доступ к секрету.Значение if
Base64Encoded
, парированное со свойствомcontent
для предоставления шаблона ограничения в кодировке Base 64. См. раздел "Создание определения политики из шаблона ограничения", чтобы создать пользовательское определение из существующего шаблона ограничения "Агент политики Open Policy Agent( OPA) версии 3.
- Не может использоваться с
constraint
(необязательно)- Не может использоваться с
templateInfo
. - Реализация CRD шаблона ограничения. Использует параметры, передаваемые через
values
как{{ .Values.<valuename> }}
. В приведенном ниже примере 2 это значения{{ .Values.excludedNamespaces }}
и{{ .Values.allowedContainerImagesRegex }}
.
- Не может использоваться с
constraintTemplate
(не рекомендуется)- Не может использоваться с
templateInfo
. - Необходимо заменить на
templateInfo
при создании или обновлении определения политики. - Шаблон ограничения CustomResourceDefinition (CRD), который определяет новые ограничения. Шаблон определяет логику Rego, схему ограничения и параметры ограничения, передаваемые через
values
Политика Azure. Дополнительные сведения см. в ограничениях Gatekeeper.
- Не может использоваться с
constraintInfo
(необязательно)- Нельзя использовать с
constraint
,constraintTemplate
илиapiGroups
kinds
. - Если
constraintInfo
это не указано, ограничение можно создать изtemplateInfo
и политики. sourceType
(обязательно)Определяет тип источника для ограничения. Допустимые значения:
PublicURL
илиBase64Encoded
.Значение if
PublicURL
, в сочетании с свойствомurl
для предоставления расположения ограничения. Расположение должно быть общедоступным.Предупреждение
Не используйте URI или маркеры SAS в
url
или другие объекты, которые могут предоставить доступ к секрету.
- Нельзя использовать с
namespaces
(необязательно)- Массив пространства имен Kubernetes, которым ограничивается вычисление политики.
- Пустое или отсутствующее значение приводит к тому, что оценка политики включает все пространства имен, за исключением тех, которые определены в
excludedNamespaces
.
excludedNamespaces
(обязательно)- Массив пространств имен Kubernetes, которые должны исключаться из оценки на соответствие политикам.
labelSelector
(обязательно)- Объект, включающий
matchLabels
свойства (object) иmatchExpression
(массив), позволяющий указать, какие ресурсы Kubernetes следует включить для оценки политики, которая соответствовала предоставленным меткам и селекторам. - Пустое или отсутствующее значение приводит к тому, что оценка политики включает все метки и селекторы, кроме пространств имен, определенных в
excludedNamespaces
.
- Объект, включающий
apiGroups
(требуется при использовании templateInfo)- Массив, содержащий группы API для сопоставления. Пустой массив (
[""]
) — это основная группа API. - Определение
["*"]
для apiGroups запрещено.
- Массив, содержащий группы API для сопоставления. Пустой массив (
kinds
(требуется при использовании templateInfo)- Массив, включающий тип объекта Kubernetes, которым ограничивается вычисление.
- Определение
["*"]
для параметра kinds запрещено.
values
(необязательно)- Определяет все параметры и значения, передаваемые ограничению. Каждое значение должно существовать в шаблоне ограничения CRD.
Пример запрета
Пример 1. Использование deny
эффекта для режимов Resource Manager.
"then": {
"effect": "deny"
}
Пример 2. Использование deny
эффекта для режима Microsoft.Kubernetes.Data
поставщика ресурсов. Дополнительные сведения, приведенные в details.templateInfo
объявлении использования PublicURL
и задает url
расположение шаблона ограничения для использования в Kubernetes для ограничения разрешенных образов контейнеров.
"then": {
"effect": "deny",
"details": {
"templateInfo": {
"sourceType": "PublicURL",
"url": "https://store.policy.core.windows.net/kubernetes/container-allowed-images/v1/template.yaml",
},
"values": {
"imageRegex": "[parameters('allowedContainerImagesRegex')]"
},
"apiGroups": [
""
],
"kinds": [
"Pod"
]
}
}
Следующие шаги
- Изучите примеры на странице примеров Политики Azure.
- Изучите статью о структуре определения Политики Azure.
- Узнайте о программном создании политик.
- Узнайте, как получать данные о соответствии.
- Узнайте, как исправлять несоответствующие ресурсы.
- Просмотрите группы управления Azure.