|
Ce document a été traduit à l'aide d'une technologie de traduction automatique. Bien que nous nous efforcions de fournir des traductions exactes, nous ne fournissons aucune garantie quant à l'exhaustivité, l'exactitude ou la fiabilité du contenu traduit. En cas de divergence, la version originale anglaise prévaut et fait foi. |
|
Il s'agit d'une documentation non publiée pour Admission Controller 1.34-dev. |
Rédaction de stratégies brutes
Les stratégies brutes sont des stratégies qui peuvent évaluer des documents JSON arbitraires. Pour plus d’informations sur les stratégies brutes, veuillez vous référer à la page stratégies brutes.
Par exemple :
Les exemples suivants devraient vous sembler familiers si vous avez complété la page validation de ce didacticiel.
|
N’oubliez pas de marquer la stratégie comme |
Validation
Vous allez rédiger une stratégie qui accepte une demande dans le format suivant :
{
"request": {
"user": "alice",
"action": "read",
"resource": "products"
}
}
Elle valide que seul l’utilisateur admin peut supprimer des ressources.
Commencez par créer une stratégie en utilisant le modèle de stratégie OPA .
Tout d’abord, vous devez modifier le fichier policy.rego pour qu’il ressemble à ceci :
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])
}
Le module utility/policy.rego nécessite une modification pour supprimer le code spécifique à 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
}