Slide 1

Slide 1 text

機密 <会社名> 専用 バージョン 1.0 Policy Manager試してみた! @URyo_0213

Slide 2

Slide 2 text

序章

Slide 3

Slide 3 text

去年の今頃..... そろそろOPA 試さないとな〜

Slide 4

Slide 4 text

OPA (Open Policy Agent) Admission Webhook機能を用いて、 ・Validating ・Mutating 等を行うことができるツール。 独自のRegoという言語を用いることで、 柔軟なPolicyの作成が可能。

Slide 5

Slide 5 text

Admission Webhook Authentication Authorization Mutating Admission Object Schema Admission Validating Admission Persisted to etcd webhook webhook webhook webhook

Slide 6

Slide 6 text

Validating / Mutating 1 Validating 作成するリソースが、 Policyに対して許可していいものなのか、それとも拒否す べきものなのかを判断する。 2 Mutating 作成するリソースに対して、 Parameterの追加や変更をかける。

Slide 7

Slide 7 text

Rego https://play.openpolicyagent.org/p/ikesWCFIH8

Slide 8

Slide 8 text

ここまで来たところで..... Regoむずいよ なんで新しい言語 作るの? 泣くよ俺。

Slide 9

Slide 9 text

月日は流れ.... お! なんだ? kyvernoって

Slide 10

Slide 10 text

本章

Slide 11

Slide 11 text

Kyverno OPA同様にAdmission Webhookを用いて Validating / Mutating 等のPolicyを適用するこ とができるツール。 KubernetesのManifestの様にPolicyを適用で きるので、学習コストが低い。

Slide 12

Slide 12 text

Policy Structure https://kyverno.io/docs/writing-policies/structure/

Slide 13

Slide 13 text

Policy (Validating) spec.rulesの下で設定 matchにおいて、Policyを適用するリソースを指定 validateにおいて、検証内容と、引っかかった際の messageを記述

Slide 14

Slide 14 text

Policy設定後

Slide 15

Slide 15 text

labelを設定してみる

Slide 16

Slide 16 text

作成できた!!

Slide 17

Slide 17 text

Policy (Mutating) ImageのTagに「latest」が設定されている場合、 Manifest に「ImagePullPolicy: Always」を追加する。

Slide 18

Slide 18 text

Policy (Generating) Namespaceが作成された際、Excludeに書かれたもの以 外のものに対して、NetworkPolicyを設定する。

Slide 19

Slide 19 text

終章

Slide 20

Slide 20 text

最後に Regoのような特殊な言語はなくKyvernoは、学習コストが低め。 インストールも簡単なので、Policy Managerを触れてみる機会にいい かもしれない。

Slide 21

Slide 21 text

Thank you