KCA — Kyverno 인증 어소시에이트 · validate 규칙 · 퀴즈
퀴즈: validate 규칙
문항 6개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.
Kyverno 패턴에서 `X(securityContext)` 앵커의 정확한 의미는?
- securityContext 값이 조건과 달라야 한다
- securityContext 가 존재하면 그 안을 검사한다
- securityContext 배열에 조건을 만족하는 원소가 하나 이상 있어야 한다
- securityContext 키가 존재하면 안 된다
`spec.rules[*].validate[*].failureAction` 을 지정하지 않으면 기본 동작은?
- Enforce (위반 요청을 거부)
- Audit (요청은 통과시키고 리포트에 남김)
- 정책이 로드되지 않는다
- 정책 수준 failurePolicy 값을 따른다
규칙 단위 failureAction 이 정책 수준 필드보다 나아진 실무적 이유는?
- 성능이 향상되어 웹훅 지연이 줄기 때문
- Audit 모드가 사라지고 Enforce 만 남았기 때문
- 정책 수준 필드가 네임스페이스마다 다른 차등 적용을 전혀 지원하지 않았기 때문
- 한 정책 안에서 확신이 선 규칙만 Enforce 로 올리고 새 규칙은 Audit 으로 둘 수 있어, 정책을 쪼개고 match 블록을 복제할 필요가 없어졌기 때문
foreach 로 모든 컨테이너를 검사하려 한다. 올바른 것은?
- list 를 중괄호로 감싸 `{{ request.object.spec.containers }}` 로 쓴다
- list 를 `request.object.spec.[initContainers, containers][]` 처럼 중괄호 없이 JMESPath 표현식으로 쓴다
- list 는 항상 containers 만 가리킬 수 있다
- foreach 대신 반드시 CEL 을 써야 한다
Kyverno 대신 쿠버네티스 내장 ValidatingAdmissionPolicy 로 충분한 상황은?
- 네임스페이스가 만들어질 때마다 NetworkPolicy 를 자동 생성해야 할 때
- 컨테이너 이미지의 cosign 서명을 검증해야 할 때
- 모든 파드에 사이드카를 주입해야 할 때
- 필드 하나의 값을 CEL 로 검사하는 것이 전부이고 그 이상 아무것도 필요 없을 때
ValidatingAdmissionPolicy 를 apply 했는데 아무 요청도 막히지 않는다. 가장 먼저 확인할 것은?
- ValidatingAdmissionPolicyBinding 이 있는지, 그리고 validationActions 에 Deny 가 들어 있는지
- Kyverno 파드가 떠 있는지
- 정책에 쓴 CEL 표현식에 세미콜론이나 아직 지원되지 않는 내장 함수가 섞여 있는지
- 네임스페이스에 PSA 라벨이 붙어 있는지