Kubernetes Kyverno

이 페이지의 원래 저자는 Guillaume입니다.

정의

Kyverno는 조직이 전체 Kubernetes 인프라 전반에 걸쳐 정책을 정의, 시행 및 감사할 수 있도록 하는 오픈 소스 정책 관리 프레임워크입니다. Kubernetes 클러스터의 보안, 준수 및 거버넌스를 관리하기 위한 확장 가능하고, 확장 가능하며, 매우 사용자 정의 가능한 솔루션을 제공합니다.

사용 사례

Kyverno는 다양한 사용 사례에서 사용할 수 있습니다. 여기에는 다음이 포함됩니다:

  1. 네트워크 정책 시행: Kyverno는 포드 또는 서비스 간의 트래픽을 허용하거나 차단하는 등의 네트워크 정책을 시행하는 데 사용할 수 있습니다.

  2. 비밀 관리: Kyverno는 비밀을 특정 형식이나 위치에 저장하도록 요구하는 등의 비밀 관리 정책을 시행하는 데 사용할 수 있습니다.

  3. 접근 제어: Kyverno는 특정 리소스에 접근하기 위해 사용자가 특정 역할이나 권한을 가져야 하는 등의 접근 제어 정책을 시행하는 데 사용할 수 있습니다.

예시: ClusterPolicy 및 Policy

Kubernetes 클러스터에 여러 네임스페이스가 있고, default 네임스페이스의 모든 포드가 특정 레이블을 가져야 하는 정책을 시행하고자 한다고 가정해 보겠습니다.

ClusterPolicy

ClusterPolicy는 전체 정책 의도를 정의하는 고급 정책입니다. 이 경우, 우리의 ClusterPolicy는 다음과 같을 수 있습니다:

apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
name: require-label
spec:
rules:
- validate:
message: "Pods in the default namespace must have the label 'app: myapp'"
match:
any:
- resources:
kinds:
- Pod
namespaceSelector:
matchLabels:
namespace: default
- any:
- resources:
kinds:
- Pod
namespaceSelector:
matchLabels:
namespace: default
validationFailureAction: enforce

When a pod is created in the default namespace without the label app: myapp, Kyverno will block the request and return an error message indicating that the pod does not meet the policy requirements.

References

Last updated