Skip to content

Commit 6fe8ec9

Browse files
committed
add dataplane explanation
1 parent 1f24689 commit 6fe8ec9

File tree

2 files changed

+43
-6
lines changed

2 files changed

+43
-6
lines changed

modules/ossm-security-mtls-1x.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
Mutual Transport Layer Security (mTLS) is a protocol where two parties authenticate each other. It is the default mode of authentication in some protocols (IKE, SSH) and optional in others (TLS).
99

10-
MTLS can be used without changes to the application or service code. The TLS is handled entirely by the service mesh infrastructure and between the two sidecar proxies.
10+
mTLS can be used without changes to the application or service code. The TLS is handled entirely by the service mesh infrastructure and between the two sidecar proxies.
1111

1212
By default, {ProductName} is set to permissive mode, where the sidecars in {ProductShortName} accept both plain-text traffic and connections that are encrypted using mTLS. If a service in your mesh is communicating with a service outside the mesh, strict mTLS could break communication between those services. Use permissive mode while you migrate your workloads to {ProductShortName}.
1313

modules/ossm-security-mtls.adoc

Lines changed: 42 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,16 @@
55
[id="ossm-security-mtls_{context}"]
66
= Enabling mutual Transport Layer Security (mTLS)
77

8-
Mutual Transport Layer Security (mTLS) is a protocol where two parties authenticate each other. It is the default mode of authentication in some protocols (IKE, SSH) and optional in others (TLS).
8+
Mutual Transport Layer Security (mTLS) is a protocol where two parties authenticate each other. It is the default mode of authentication in some protocols (IKE, SSH) and optional in others (TLS). mTLS can be used without changes to the application or service code. The TLS is handled entirely by the service mesh infrastructure and between the two sidecar proxies.
99

10-
MTLS can be used without changes to the application or service code. The TLS is handled entirely by the service mesh infrastructure and between the two sidecar proxies.
10+
By default, mTLS in {ProductName} is enabled and set to permissive mode, where the sidecars in {ProductShortName} accept both plain-text traffic and connections that are encrypted using mTLS. If a service in your mesh is communicating with a service outside the mesh, strict mTLS could break communication between those services. Use permissive mode while you migrate your workloads to {ProductShortName}. Then, you can enable strict mTLS across your mesh, namespace, or application.
1111

12-
By default, {ProductName} is set to permissive mode, where the sidecars in {ProductShortName} accept both plain-text traffic and connections that are encrypted using mTLS. If a service in your mesh is communicating with a service outside the mesh, strict mTLS could break communication between those services. Use permissive mode while you migrate your workloads to {ProductShortName}.
12+
Enabling mTLS across your mesh at the control plane level secures all the traffic in your mesh without rewriting your applications and workflows. You can secure namespaces in your mesh at the data plane level in the `ServiceMeshControlPlane` resource or at the application level with `PeerAuthentication` and `DestinationRule` resources to configure how incoming and outgoing connections encrypt traffic.
1313

1414
[id="ossm-security-enabling-strict-mtls_{context}"]
1515
== Enabling strict mTLS across the mesh
1616

17-
You can quickly enable mTLS across your mesh if your workloads do not communicate with outside services, and communication will not be interrupted by accepting only encrypted connections. Set `spec.security.controlPlane.mtls` to `true` in your `ServiceMeshControlPlane` resource. The operator creates the required resources.
17+
You can quickly enable mTLS across your mesh if your workloads do not communicate with outside services, and communication will not be interrupted by accepting only encrypted connections. mTLS for all data plane communication is disabled by default. You can enable it by setting `spec.security.dataPlane.mtls` to `true` in the `ServiceMeshControlPlane` resource. The Operator creates the required resources.
1818

1919
[source,yaml]
2020
----
@@ -23,10 +23,26 @@ kind: ServiceMeshControlPlane
2323
spec:
2424
version: v2.0
2525
security:
26-
controlPlane:
26+
dataPlane:
2727
mtls: true
2828
----
2929

30+
You can also enable mTLS by using the {product-title} web console.
31+
32+
.Procedure
33+
34+
. Log in to the web console.
35+
36+
. Click the *Project* menu and choose the `istio-system` project from the list.
37+
38+
. Click *Operators* -> *Installed Operators*.
39+
40+
. Click on *Service Mesh Control Plane* under *Provided APIs*.
41+
42+
. Click the name of your `ServiceMeshControlPlane` resource, for example, `production`.
43+
44+
. On the Details page, click the toggle in the *Security* section for *Data Plane Security*.
45+
3046
[id="ossm-security-mtls-sidecars-incoming-services_{context}"]
3147
=== Configuring sidecars for incoming connections for specific services
3248

@@ -44,6 +60,11 @@ spec:
4460
mode: STRICT
4561
----
4662

63+
[NOTE]
64+
====
65+
If you are not using automatic mTLS and you are setting PeerAuthentication to STRICT, you must create a `DestinationRule` resource for your service.
66+
====
67+
4768
[id="ossm-security-mtls-sidecars-outgoing_{context}"]
4869
== Configuring sidecars for outgoing connections
4970

@@ -99,3 +120,19 @@ The default is `TLS_AUTO` and does not specify a version of TLS.
99120
|`TLSv1_3`
100121
|TLS version 1.3
101122
|===
123+
124+
[id="ossm-security-enabling-controlplane_{context}"]
125+
== Enabling strict mTLS for Mixer telemetry or policy components
126+
127+
Secure connections are always used when proxies communicate with the control plane regardless of the `spec.security.controlPlane.mtls` setting. If you use Mixer telemetry or policy, set `spec.security.controlPlane.mtls` to `true` in your `ServiceMeshControlPlane` resource to enable strict mTLS.
128+
129+
[source,yaml]
130+
----
131+
apiVersion: maistra.io/v2
132+
kind: ServiceMeshControlPlane
133+
spec:
134+
version: v2.0
135+
security:
136+
controlPlane:
137+
mtls: true
138+
----

0 commit comments

Comments
 (0)