Vitess
v24.0.4Storage & DataTLS 인증서 폐기와 테이블 ACL 검사를 강화하고, 보안 공격 표면이 된 HTTP API를 제거한 보안 중심 유지보수 릴리스입니다. 압축 설정의 의미 변경과 운영 지표 추가가 포함되며, 업그레이드 순서와 호환성에 영향을 주는 변경도 있습니다.
조치 필요 (6)
securityCRL 설정 gRPC 클라이언트의 TLS 연결
--tablet-grpc-crl,--vtgate-grpc-crl,--vtctld-grpc-crl및 다른*-grpc-crl플래그를 설정했지만 클라이언트 인증서와 CA가 모두 없는 gRPC 클라이언트가 이제 평문으로 연결되지 않고 TLS로 연결됩니다. 서버 인증에는 시스템 루트를 사용합니다.security읽기 작업의 엄격한 테이블 ACL 검사
--queryserver-config-strict-table-acl이 활성화된 경우 각 읽기를 같은 테이블을 읽는 일반SELECT처럼 검사합니다. 다른 테이블 ACL 검사와 동일하게 드라이 런과 ACL 면제 동작도 적용합니다.securityvtctld
/api/HTTP API 제거vtctld가
/api/에서 제공하던 HTTP API를 제거했습니다.breaking적용할 수 없는 CRL 설정 거부
TLS 설정을 시작할 때 구성한 방식으로 CRL을 적용할 수 없는 설정은 거부합니다.
breakingvtctld Go API 제거
Go 패키지를 사용하는 코드에서
vtctld.,InitVtctld vtctld.,ActionRepository vtctld.,ActionResult vtctld.을 더 이상 사용할 수 없습니다.TabletWithURL breaking하위 질의를 포함한 설정 거부
엄격한 테이블 ACL에서는 표현식에 하위 질의가 포함된 설정을 vttablet이 거부합니다.
영향 확인 (1)
breaking대상 지정
SET문 업그레이드 순서 제약vttablets를 vtgates보다 먼저 업그레이드하는 경우 적용됩니다.
vttablet을 vtgate보다 먼저 업그레이드하는 경우에 적용됩니다.
미리 준비 (1)
deprecated플래그 사용 중단 예고v26에서 제거 예정
--cell,--proxy-tablets,--action-timeout,--tablet-health-keep-alive플래그는 더 이상 사용이 권장되지 않으며 v26에서 제거됩니다.
그 외 기록된 변경 13건 전체fixes 16 · value changes 6 · constraints 2 · additions 1
fixes (16)
- A
SETof a system variable in a session targeted at a shard (use ks:-80) is now evaluated once on the target shard - mysql/json: read numbers the way MySQL does
- fix(vdiff): map source PK columns to their SELECT positions in getSourcePKCols
- vreplication: Fix --config-overrides silently erasing existing config keys
- use tablet db name override when reading current sequence value in SwitchTraffic dry run
- flagutil: keep the first value passed to StringSetFlag.Set
- vtadmin: send a non-empty :authority so gRPC works behind a proxy
- sqlparser: fix panic on WITH followed by parenthesized query
- vtorc: pass a heartbeat interval to
SetReplicationSourceonly forReplicaMisconfigured - vttablet: reset connection settings with the DEFAULT keyword
- smartconnpool: re-check capacity after getNew's CAS
- vttablet: reset foreign_key_checks and unique_checks settings to the global value
- tabletenv: Fix infinite recursion in OltpConfig.UnmarshalJSON
- VTTablet: discard a transaction's connection after a CALL ran on it
- vttablet: derive table ACL permissions the way MySQL resolves CTE names
- vttestserver: fail, don't panic, on a vschema missing a table or vindex
value changes (6)
- The exported
planbuilder.now returns a second result,BuildPermissions tablesUndetermined bool, alongside the permissions. - The
lz4compression engine now uses thepierrec/lz4/v4library instead ofpierrec/lz4v2. - vtgate: report RowsAffected for stored-procedure calls over the streaming path
- vtgate: list the session's SET_VAR hint variables in a fixed order
- Upgrade the Golang version to
go1.26. 8 - vtgate: only scan shard records for MoveTables state when routing rules reference the keyspace
constraints (2)
- VDiff: accept a target primary key that extends a unique source key
- Only negotiate multi statement support on connections that send batches
additions (1)
- now reports its connections by transport,
tlsorplaintext, in two new stats:GrpcOptionalTlsOpenConnections
조치가 필요한 릴리스가 나왔을 때 주간 메일로 알려드립니다. 이번 릴리스의 보안 패치와 브레이킹 체인지 같은 것들입니다.