Open Policy Agent (OPA)
v1.15.0SecurityOPA v1.15.0은 파일 로테이션을 지원하는 플러그인 로깅 시스템을 추가하고, 커스텀 HTTPAuthPlugin 동작 방식을 변경하며, AWS Web Identity 자격 증명 지원을 확장했습니다.
breaking업그레이드 전 커스텀 HTTPAuthPlugin 구현 코드 반드시 점검
커스텀 HTTPAuthPlugin을 구현한 경우, NewClient()는 이제 Client 인스턴스당 한 번만 호출됩니다. 요청 카운터, 트랜스포트 래핑, 로깅 등 요청별 로직이 NewClient()에 있다면 조용히 오동작하게 됩니다. 업그레이드 전에 플러그인 코드를 검토하고 모든 요청별 로직을 Prepare()로 옮겨야 합니다. OPA 내장 플러그인은 이미 수정되었으므로 커스텀 플러그인을 운영하는 팀만 영향을 받습니다.
enhancementfile_logger 플러그인으로 OPA 로그 관리 통합
새로운 file_logger 플러그인은 구조화된 JSON 로그를 자동 로테이션과 함께 기록하며, server.logger_plugin 하나의 설정 블록으로 런타임 로그와 결정 로그를 모두 처리합니다. 현재 OPA stdout을 tailing하거나 외부 로그 shipper로 파이핑하고 있다면, 파일 로거로 전환해 운영 복잡도를 낮출 수 있습니다. HTTP 번들 엔드포인트 없이도 결정 로그를 안정적으로 수집할 수 있어 저지연 환경에 적합합니다.
enhancementEKS 환경에서 IRSA 기반 AWS 자격 증명 네이티브 설정 가능
EKS에서 IRSA(IAM Roles for Service Accounts)를 사용하는 경우, Web Identity 토큰을 Assume Role 자격 증명 플로우에 직접 쓸 수 있게 됐습니다. 기존에 인스턴스 프로파일 자격 증명이나 수동 토큰 주입으로 우회하던 방식을 정리하고, REST 플러그인 AWS 서명 설정에서 web identity 프로바이더를 사용하도록 업데이트하면 됩니다.
주요 변경 (5)
- Go의 slog.Handler 기반 로거 플러그인 인터페이스 추가 — 런타임 로그와 결정 로그를 커스텀 목적지로 라우팅 가능하며, lumberjack 기반 파일 로테이션 내장
- 파괴적 변경: HTTPAuthPlugin.NewClient()가 이제 요청마다 호출되지 않고 한 번만 호출됨 — 요청별 로직은 반드시 Prepare()로 이전 필요
- AWS Signing에서 Assume Role 플로우에 Web Identity(서비스 어카운트) 자격 증명 지원 추가
- TLS 클라이언트 인증서 재읽기 주기를 cert_reread_interval_seconds로 설정 가능해졌으며, 콘텐츠 해싱으로 불필요한 파싱 방지
- 모든 TLS 설정이 서버 수준의 최소 버전 및 암호화 스위트 설정을 상속 — 이전에는 클라이언트별 TLS 설정이 서버 설정과 달라질 수 있었음