Service Configuration
medium

Service Configuration Question #019e3a4f

Question Statement
Service Configuration
#open policy agent
#kubernetes
#policy-as-code
Medium

Qual das seguintes afirmações está correta sobre o Open Policy Agent (OPA)?

A

As políticas devem ser escritas em linguagem Python.

B

O Kubernetes pode usá-lo para validar requisições e aplicar políticas.

Correct
C

As políticas só podem ser testadas quando publicadas.

D

Ele não pode ser usado fora do Kubernetes.

Official Explanation / Community Explanations

Open Policy Agent (OPA) é um mecanismo de políticas de uso geral que permite política-como-código em toda a pilha cloud-native. Ele é comumente integrado ao Kubernetes via OPA Gatekeeper ou como um controlador de admissão para validar e aplicar políticas em requisições à API.

Como Funciona
OPA usa uma linguagem declarativa de alto nível chamada Rego para definir políticas. Ele desacopla a tomada de decisão de políticas da lógica da aplicação, permitindo que as políticas sejam atualizadas independentemente. No Kubernetes, o OPA pode interceptar requisições de admissão e avaliá-las contra políticas Rego antes que os recursos sejam persistidos.

Por que a afirmação correta está certa
A afirmação "O Kubernetes pode usá-lo para validar requisições e aplicar políticas" está correta. OPA é amplamente usado como um controlador de admissão em clusters Kubernetes para aplicar políticas de segurança, conformidade e operacionais. Por exemplo, o OPA Gatekeeper integra-se ao Kubernetes para validar configurações de recursos contra políticas personalizadas.

Por que as afirmações incorretas estão erradas

  • "As políticas devem ser escritas em linguagem Python" está incorreto porque as políticas do OPA são escritas em Rego, uma linguagem declarativa criada especificamente para esse fim, não Python.
  • "As políticas só podem ser testadas quando publicadas" está incorreto porque o OPA fornece ferramentas como opa test e o Rego Playground para teste e depuração locais antes da implantação.
  • "Ele não pode ser usado fora do Kubernetes" está incorreto porque o OPA é um mecanismo de políticas de uso geral que pode ser usado com vários sistemas (por exemplo, microsserviços, pipelines CI/CD, SSH, bancos de dados SQL) e não se limita ao Kubernetes.