-
Notifications
You must be signed in to change notification settings - Fork 0
docs for $GATEWAY_SECURITY_MODE #760
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: console-1.35.0_gateway-3.10.0
Are you sure you want to change the base?
docs for $GATEWAY_SECURITY_MODE #760
Conversation
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
| `GATEWAY_AUTHENTICATION_CONNECTION_MAX_REAUTH_MS` | Force the client re-authentication after this amount of time. If set to 0, we never force the client to re-authenticate until the next connection | `0` | | ||
| **Environment variable** | **Description** | **Default value** | | ||
|---------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------| | ||
| `GATEWAY_SECURITY_PROTOCOL` | The type of authentication clients should use to connect to Gateway. Valid values are: `PLAINTEXT`, `SASL_PLAINTEXT`, `SASL_SSL`, `SSL`, `DELEGATED_SASL_PLAINTEXT` and `DELEGATED_SASL_SSL`. | The default value depends on KAFKA_SECURITY_PROTOCOL.  | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| **Environment variable** | **Description** | **Default value** | | ||
|---------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------| | ||
| `GATEWAY_SECURITY_PROTOCOL` | The type of authentication clients should use to connect to Gateway. Valid values are: `PLAINTEXT`, `SASL_PLAINTEXT`, `SASL_SSL`, `SSL`, `DELEGATED_SASL_PLAINTEXT` and `DELEGATED_SASL_SSL`. | The default value depends on KAFKA_SECURITY_PROTOCOL.  | | ||
| `GATEWAY_SECURITY_MODE` | Define where authentication takes place, Gateway or Kafka. Valid values are: `GATEWAY_MANAGED`, `KAFKA_MANAGED`. Note that `SSL` and `PLAINTEXT` are not valid inputs in `KAFKA_MANAGED` mode and will be rejected. | If not provided, we infer based upon `GATEWAY_SECURITY_PROTOCOL` value.  | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Note that SSL and PLAINTEXT are not valid inputs in KAFKA_MANAGED mode and will be rejected.
doesn't amke sense... also i think too much complexity for such a table. i think we should have a dedicated table explaining the valid combinations.
| GATEWAY_SECURITY_MODE | GATEWAY_SECURITY_PROTOCOL | Previous version GATEWAY_SECURITY_PROTOCOL equivalent | | ||
|-----------------------|---------------------------|--------------------------------------------------------| | ||
| GATEWAY_MANAGED | SASL_PLAINTEXT | SASL_PLAINTEXT | | ||
| GATEWAY_MANAGED | SASL_SSL | SASL_SSL | | ||
| GATEWAY_MANAGED | SSL | SSL | | ||
| GATEWAY_MANAGED | PLAINTEXT | PLAINTEXT | | ||
| KAFKA_MANAGED | SASL_PLAINTEXT | DELEGATED_SASL_PLAINTEXT | | ||
| KAFKA_MANAGED | SASL_SSL | DELEGATED_SASL_SSL | | ||
| KAFKA_MANAGED | SSL | Invalid auth mode with Kafka. Will be rejected. | | ||
| KAFKA_MANAGED | PLAINTEXT | Invalid auth mode with Kafka. Will be rejected. | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this table should be in docs in two places.
- guide for new users
- guide for users migrating
suggest we link to both from here and in relevant sections of env variables table.
will tidy this up - lots has changed since I first updated it |
* **SASL_SSL**: Authentication from the client is mandatory and will be forwarded to the backend Kafka cluster for validation. All communication between the client and the Gateway broker is encrypted using TLS. The Gateway will intercept the SASL authentication exchange to detect authenticated principals. | ||
All credentials are managed by your backend Kafka. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was no mention of SASL_SSL before.
- There could have been a reason for this im unaware of
- I could use a second opinion on this definition
https://linear.app/conduktor/project/gateway-security-ux-7d62db5252bc/overview
https://linear.app/conduktor/issue/YSH-17/support-gateway-managed
https://linear.app/conduktor/issue/YSH-18/remove-usage-of-delegated-xxx-security-mode-from-code-base
https://linear.app/conduktor/issue/YSH-19/override-acl-enabled-to-true-when-isgatewaymanaged
Security Mode
The aim of these UX changes are to split the security protocol decision making into two steps. What is responsible for authentication? How will we be authenticating?
Previously both these questions were resolved by the
GATEWAY_SECURITY_PROTOCOL
. Instead, we set the who usingGATEWAY_SECURITY_MODE
and simplify the options for the how, which is stillGATEWAY_SECURITY_PROTOCOL
.Therefore, our documentation should be pointing the new user towards using both variables as part of the recommended set up. Ideally, a new user won't have to encounter the terminology
DELEGATED
at all.However, these changes are non breaking, we still support
DELEGATED_XXX
protocols, so it is important we:a) state the changes begin from version
3.10.0
b) point existing users to a migration guide where they would have expected documentation of
DELEGATED
.This is why we have lots of deprecation notices in this change.
Acl enabled
We want to migrate users off of setting this explicitly, as we want to decide this capability based upon the security mode
KAFKA_MANAGED
-> acl enabled falseGATEWAY_MANAGED
-> acl enabled trueHowever, since GATEWAY_SECURITY_MODE is an optional non breaking field, the same must be true of
ACL_ENABLED
.Therefore, we must again
a) explain to new users on how this is automatically set
b) show existing users that it is deprecated, how it is still supported, and how to migrate
If the user attempts to set
KAFKA_MANAGED
security mode with acl enabled set totrue
, we will error with an appropriate message