-
Notifications
You must be signed in to change notification settings - Fork 89
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
docs(kuma-cp) permissive mTLS mode #510
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -187,6 +187,51 @@ A few considerations: | |
* The `dpCert` configuration determines how often Kuma should automatically rotate the certificates assigned to every data plane proxy. | ||
* The Secrets must exist before referencing them in a `provided` backend. | ||
|
||
## Permissive mTLS | ||
|
||
Kuma provides a convenient way to migrate existing workloads to the mTLS mesh with zero downtime. In order to do so | ||
`PERMISSIVE` mode has to be enabled. | ||
|
||
:::: tabs :options="{ useUrlFragment: false }" | ||
|
||
::: tab "Kubernetes" | ||
```yaml | ||
apiVersion: kuma.io/v1alpha1 | ||
kind: Mesh | ||
metadata: | ||
name: default | ||
spec: | ||
mtls: | ||
enabledBackend: ca-1 | ||
backends: | ||
- name: ca-1 | ||
type: builtin | ||
mode: PERMISSIVE # supported values: STRICT, PERMISSIVE | ||
``` | ||
::: | ||
|
||
::: tab "Universal" | ||
```yaml | ||
type: Mesh | ||
name: default | ||
mtls: | ||
enabledBackend: ca-1 | ||
backends: | ||
- name: ca-1 | ||
type: builtin | ||
mode: PERMISSIVE # supported values: STRICT, PERMISSIVE | ||
``` | ||
::: | ||
|
||
:::: | ||
|
||
Permissive mTLS mode encrypts outbound connections the same way as strict mTLS mode, but inbound connections on the server-side | ||
accept both TLS and plaintext. This lets you migrate servers to an mTLS mesh before their clients. It also supports the case where the client and server already implement TLS. | ||
|
||
::: warning | ||
Using PERMISSIVE mode is not secure, as soon as all services will be moved to the mesh, make sure to set STRICT mode. | ||
::: | ||
|
||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Not a blocker but I'm missing here a guide on how can I migrate an app with existing TLS. I bet we will see this question on Kuma slack. Maybe it should be a part of a bigger guide that let say we have 3 apps, 1 <-> 2 <-> 3. There is custom TLS between 2 <-> 3 and we present how to gradually introduce them to a mesh with mTLS without any downtime. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think we can do it as a tutorial rather than theoretical steps? |
||
### CA requirements | ||
|
||
When using an arbitrary certificate and key for a `provided` backend, we must make sure that we comply with the following requirements: | ||
|
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 ... seems like something we should maybe also encourage users not to leave on? Or at the very least warn about insecure incoming connections? Or ... something?
I'm also not sure about the order of things. Might be better to put the explanation at lines 228-230 before the examples also?
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.
Good point. I'm missing the information on when can I switch from permissive to strict mTLS. Metrics are in progress?
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.
Added a warning:
The message and format is not final, I know @Bradamant3 doesn't like a lot of frames :)