Repository navigation
Replies: 1 comment 2 replies
|
@oh0873 Thank you for submitting the discussion. Sorry for breaking compatibility between versions. To safely upgrade to Kyuubi 1.12.0+, adding a flag to allow the decrypt-time fallback makes sense to me. Let me try to implement. |
2 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Background
We run Kyuubi with internal security enabled (
kyuubi.internal.security.enabled=true, formerlykyuubi.engine.security.enabled). In our deployment, the Kyuubi server and the Spark engine are upgraded on different cadences:kyuubi-spark-sql-engine_2.12is baked into our Spark container images, which lag the server upgrade cycleProblem
After upgrading the Kyuubi server to 1.12.0, sessions fail when the engine still runs an older
kyuubi-spark-sql-enginejar (1.11.1 or earlier) from the Spark image.We traced this to #7374, which changed the on-the-wire format of internal access tokens in
InternalSecurityAccessor:hex(ciphertext)hex(IV || ciphertext)The server issues tokens via
InternalSecurityAccessor.issueToken()when connecting to an engine (KyuubiSessionImpl). The engine validates them viaEngineSecureAuthenticationProviderImplusing the same class fromkyuubi-common. Because the encrypt/decrypt wire format changed, a 1.12 server cannot authenticate to an engine built from a pre-#7374kyuubi-commonjar, even when both sides share the same secret and cipher configuration.We understand the security motivation for the IV fix. The operational impact is that this change effectively requires lockstep upgrades of server and engine jars whenever internal security is enabled — which is also required for REST API HA mode per internal secure access docs.
Impact on us
Questions
What is the recommended rollout strategy for operators who decouple server and Spark image lifecycles? For example: upgrade all engine images first, then server — or the reverse?
Would the project consider a transitional compatibility approach, such as:
/cc @aajisaka @turboFei
All reactions