|
Este documento foi traduzido usando tecnologia de tradução automática de máquina. Sempre trabalhamos para apresentar traduções precisas, mas não oferecemos nenhuma garantia em relação à integridade, precisão ou confiabilidade do conteúdo traduzido. Em caso de qualquer discrepância, a versão original em inglês prevalecerá e constituirá o texto official. |
|
Esta é uma documentação não divulgada para Admission Controller 1.34-dev. |
Escrevendo políticas brutas
Políticas brutas são políticas que podem avaliar documentos JSON arbitrários. Para mais informações sobre políticas brutas, consulte a página de políticas brutas.
Exemplo
Os seguintes exemplos devem parecer familiares se você completou a página de validação deste tutorial.
|
Lembre-se de marcar a política como |
Validação
Você vai escrever uma política que aceita uma solicitação no seguinte formato:
{
"request": {
"user": "alice",
"action": "read",
"resource": "products"
}
}
Ela valida que apenas o usuário admin pode excluir recursos.
Comece criando uma política usando o modelo de política OPA.
Primeiro, você precisa alterar o arquivo policy.rego para ficar assim:
package validation
deny[msg] {
input.request.action == "delete"
input.request.user != "admin"
msg := sprintf("user %v is not allowed to delete resources", [input.request.user])
}
O módulo utility/policy.rego precisa ser modificado para remover o código específico do Kubernetes:
package policy
import data.validation
main = {
"response": response,
}
# OPA policy responses need the uid field to be set.
# If the request doesn't contain a uid, set it to an empty string.
default uid = ""
uid = input.request.uid
response = {
"uid": uid,
"allowed": false,
"status": {"message": reason},
} {
reason = concat(", ", validation.deny)
reason != ""
} else = {
"uid": uid,
"allowed": true,
} {
true
}