|
この文書は自動機械翻訳技術を使用して翻訳されています。 正確な翻訳を提供するように努めておりますが、翻訳された内容の完全性、正確性、信頼性については一切保証いたしません。 相違がある場合は、元の英語版 英語 が優先され、正式なテキストとなります。 |
|
これは未公開の文書です Admission Controller 1.34-dev. |
生のポリシーの作成
生のポリシーは、任意のJSONドキュメントを評価できるポリシーです。 生のポリシーに関する詳細情報は、生のポリシーページを参照してください。
例
次の例は、このチュートリアルの検証ページを完了した場合、見覚えがあるはずです。
|
ポリシーを`raw`としてマークすることを忘れずに、`policyType`フィールドを`metadata.yml`設定で使用してください。 詳細情報については、メタデータ仕様を参照してください。 |
検証
次の形式のリクエストを受け入れるポリシーを作成します。
{
"request": {
"user": "alice",
"action": "read",
"resource": "products"
}
}
`admin`ユーザーのみがリソースを削除できることを検証します。
OPAポリシーテンプレートを使用してポリシーのスキャフォールディングを開始します。
最初に`policy.rego`ファイルを次のように変更する必要があります:
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])
}
`utility/policy.rego`モジュールは、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
}