Kubernetes Kyverno バイパス
Reading time: 2 minutes
このページの元の著者は Guillaume
ポリシーの誤設定を悪用する
ルールの列挙
概要を把握することで、どのルールがアクティブで、どのモードで、誰がバイパスできるかを知るのに役立ちます。
bash
$ kubectl get clusterpolicies
$ kubectl get policies
除外の列挙
各 ClusterPolicy および Policy に対して、以下の除外されたエンティティのリストを指定できます。
- グループ:
excludedGroups
- ユーザー:
excludedUsers
- サービスアカウント (SA):
excludedServiceAccounts
- ロール:
excludedRoles
- クラスターロール:
excludedClusterRoles
これらの除外されたエンティティはポリシー要件から免除され、Kyverno はそれらに対してポリシーを強制しません。
例
1 つの clusterpolicy の例を掘り下げてみましょう:
$ kubectl get clusterpolicies MYPOLICY -o yaml
除外されたエンティティを探してください:
yaml
exclude:
any:
- clusterRoles:
- cluster-admin
- subjects:
- kind: User
name: system:serviceaccount:DUMMYNAMESPACE:admin
- kind: User
name: system:serviceaccount:TEST:thisisatest
- kind: User
name: system:serviceaccount:AHAH:*
クラスター内では、多くの追加コンポーネント、オペレーター、およびアプリケーションがクラスター ポリシーから除外される必要がある場合があります。しかし、これは特権エンティティをターゲットにすることで悪用される可能性があります。場合によっては、名前空間が存在しないか、ユーザーをなりすます権限がないように見えることがあり、これは設定ミスの兆候である可能性があります。
ValidatingWebhookConfigurationの悪用
ポリシーをバイパスする別の方法は、ValidatingWebhookConfigurationリソースに焦点を当てることです:
Kubernetes ValidatingWebhookConfiguration
さらに詳しい情報
詳細については、https://madhuakula.com/kubernetes-goat/docs/scenarios/scenario-22/securing-kubernetes-clusters-using-kyverno-policy-engine/welcome/を確認してください。