Dapr 1.18은 워크플로우 보안·내구성(변조 감지, 접근 정책, 히스토리 전파, 동시성 제한)을 크게 보강했습니다. Jobs API와 HotReload가 GA로 승격되었고, 업그레이드 전 반드시 검토해야 할 breaking change가 여럿 포함되어 있습니다.
security공유·멀티테넌트 클러스터에서 WorkflowAccessPolicy 적용 검토
1.18 이전에는 같은 trust domain의 모든 호출자가 다른 앱의 워크플로우를 스케줄, 종료, 조회할 수 있었습니다. WorkflowAccessPolicy CRD로 이를 per-operation 수준에서 제한할 수 있습니다. 기본값은 여전히 전체 허용이라 기존 배포에 즉각적인 영향은 없지만, 공유 클러스터를 운영 중이라면 지금 정책을 정의해두는 편이 낫습니다. 또한 redis common 컴포넌트의 TLS 인증서 검증 무조건 건너뛰기 버그가 이번 릴리스에서 수정되었으니, 업그레이드 전 Redis TLS 설정이 올바른지 확인하세요.
breaking1.18에서 1.17.6 이하로 직접 롤백 금지
Sentry 1.18은 Ed25519 키로 서명된 CA를 dapr-trust-bundle 시크릿에 기록합니다. 1.17.7 미만의 Sentry는 이 번들을 파싱하지 못해 크래시 루프에 빠지고, 신규 인증서 발급이 전면 중단됩니다. 업그레이드 전에 롤백 목표 버전이 1.17.7 이상인지 반드시 확인하세요. 1.17.7 미만으로 내려가야 한다면 1.17.7로 먼저 롤백해 안정화한 뒤 계속 진행하세요. 워크플로우 ID 재사용에 의존하는 코드도 함께 점검하세요 — 이제 conflict 에러를 반환합니다.
breaking서비스 호출 시 hop-by-hop 헤더 제거 — 앱 동작 점검 필요
Connection, Keep-Alive, Transfer-Encoding 등 HTTP hop-by-hop 헤더가 서비스 호출 경로에서 RFC 7230에 따라 제거됩니다. 해당 헤더가 그대로 전달된다고 가정하는 앱은 조용히 깨질 수 있습니다. 업그레이드 전에 서비스 호출 코드를 검토하고, hop-by-hop에 의존하는 부분은 일반 헤더로 대체하세요.
enhancement감사 요건이 있는 워크플로우에 히스토리 서명 활성화 검토
워크플로우 히스토리 서명은 opt-in이며 기본 비활성 상태입니다. mTLS가 활성화되어 있어야 사용할 수 있습니다. 클러스터 전체에 활성화하기 전에 서명 없이 실행 중인 워크플로우가 완료되거나 purge되도록 기다리세요 — 서명 없이 시작된 워크플로우에 서명을 활성화하면 하드 검증 에러가 발생하며 소급 적용은 불가합니다. 변조가 감지되면 해당 워크플로우는 DAPR_WORKFLOW_HISTORY_TAMPERED 에러와 함께 종료되고, 원본 상태는 포렌식 검토를 위해 보존됩니다. 컴플라이언스 요건이 있거나 멀티테넌트 워크플로우를 운영하는 환경에 적합합니다.
주요 변경 (7)
- Sentry가 Ed25519 키로 전환 — 롤백 최저선은 1.17.7이며, 1.17.6 이하로 직접 롤백 시 Sentry가 크래시 루프에 빠짐
- WorkflowAccessPolicy CRD 추가: 앱 간 워크플로우 작업을 per-operation allow-list로 제어 (정책 미설정 시 기본값은 전체 허용)
- 워크플로우 히스토리 서명(opt-in) 추가: SPIFFE 인증서로 이벤트 배치를 체이닝 서명해 변조를 감지
- HotReload GA 및 기본 활성화 — 컴포넌트, 구독, 설정 등 사이드카 재시작 없이 재로드
- Jobs API 안정 버전 승격 — alpha RPC는 deprecated되나 동작은 유지됨, 앱 코드를 ScheduleJob/GetJob/DeleteJob으로 마이그레이션 필요
- 워크플로우 ID 재사용 정책 변경: 이미 활성 인스턴스가 있는 ID로 새 워크플로우 생성 시 conflict 에러 반환 (기존의 묵시적 덮어쓰기 동작 제거)
- Java SDK 최소 버전이 Java 17로 상향, Spring Boot 기준선이 3.5로 변경