Skip to content

Commit d397f65

Browse files
authored
Merge pull request #277225 from cachai2/peer-to-peer-encryption
init peer-to-peer encryption
2 parents bccb4a2 + 4620fea commit d397f65

File tree

5 files changed

+25
-14
lines changed

5 files changed

+25
-14
lines changed

articles/container-apps/ingress-overview.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ Azure Container Apps provides built-in authentication and authorization features
115115

116116
You can configure your app to support client certificates (mTLS) for authentication and traffic encryption. For more information, see [Configure client certificates](client-certificate-authorization.md).
117117

118-
For details on how to use mTLS for environment level network encryption, see the [networking overview](./networking.md#mtls).
118+
For details on how to use peer-to-peer environment level network encryption, see the [networking overview](./networking.md#peer-to-peer-encryption).
119119

120120
## Traffic splitting
121121

33.7 KB
Loading

articles/container-apps/networking.md

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -278,20 +278,31 @@ You can fully secure your ingress and egress networking traffic workload profile
278278

279279
- Configure UDR to route all traffic through [Azure Firewall](./user-defined-routes.md).
280280

281-
## <a name="mtls"></a> Environment level network encryption (preview)
281+
## <a name="peer-to-peer-encryption"></a> Peer-to-peer encryption in the Azure Container Apps environment
282282

283-
Azure Container Apps supports environment level network encryption using mutual transport layer security (mTLS). When end-to-end encryption is required, mTLS encrypts data transmitted between applications within an environment.
283+
Azure Container Apps supports peer-to-peer TLS encryption within the environment. Enabling this feature encrypts all network traffic within the environment with a private certificate that is valid within the Azure Container Apps environment scope. These certificates are automatically managed by Azure Container Apps.
284284

285-
Applications within a Container Apps environment are automatically authenticated. However, the Container Apps runtime doesn't support authorization for access control between applications using the built-in mTLS.
285+
> [!NOTE]
286+
> By default, peer-to-peer encryption is disabled. Enabling peer-to-peer encryption for your applications may increase response latency and reduce maximum throughput in high-load scenarios.
286287
287-
When your apps are communicating with a client outside of the environment, two-way authentication with mTLS is supported. To learn more, see [configure client certificates](client-certificate-authorization.md).
288+
The following example shows an environment with peer-to-peer encryption enabled.
289+
:::image type="content" source="media/networking/peer-to-peer-encryption-traffic-diagram.png" alt-text="Diagram of how traffic is encrypted/decrypted with peer-to-peer encryption enabled.":::
288290

289-
> [!NOTE]
290-
> Enabling mTLS for your applications may increase response latency and reduce maximum throughput in high-load scenarios.
291+
<sup>1</sup> Inbound TLS traffic is terminated at the ingress proxy on the edge of the environment.
292+
293+
<sup>2</sup> Traffic to and from the ingress proxy within the environment is TLS encrypted with a private certificate and decrypted by the receiver.
294+
295+
<sup>3</sup> Calls made from app A to app B's FQDN are first sent to the edge ingress proxy, and are TLS encrypted.
296+
297+
<sup>4</sup> Calls made from app A to app B using app B's app name are sent directly to app B and are TLS encrypted.
298+
299+
Applications within a Container Apps environment are automatically authenticated. However, the Container Apps runtime doesn't support authorization for access control between applications using the built-in peer-to-peer encryption.
300+
301+
When your apps are communicating with a client outside of the environment, two-way authentication with mTLS is supported. To learn more, see [configure client certificates](client-certificate-authorization.md).
291302

292303
# [Azure CLI](#tab/azure-cli)
293304

294-
You can enable mTLS using the following commands.
305+
You can enable peer-to-peer encryption using the following commands.
295306

296307
On create:
297308

@@ -300,7 +311,7 @@ az containerapp env create \
300311
--name <environment-name> \
301312
--resource-group <resource-group> \
302313
--location <location> \
303-
--enable-mtls
314+
--enable-peer-to-peer-encryption
304315
```
305316

306317
For an existing container app:
@@ -309,7 +320,7 @@ For an existing container app:
309320
az containerapp env update \
310321
--name <environment-name> \
311322
--resource-group <resource-group> \
312-
--enable-mtls
323+
--enable-peer-to-peer-encryption
313324
```
314325

315326
# [ARM template](#tab/arm-template)
@@ -320,8 +331,8 @@ You can enable mTLS in the ARM template for Container Apps environments using th
320331
{
321332
...
322333
"properties": {
323-
"peerAuthentication":{
324-
"mtls": {
334+
"peerTrafficConfiguration":{
335+
"encryption": {
325336
"enabled": "true|false"
326337
}
327338
}

articles/container-apps/troubleshooting.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ Your container app's ingress settings are enforced through a set of rules that c
9090
| Is ingress enabled? | Verify the **Enabled** checkbox is checked. |
9191
| Do you want to allow external ingress? | Verify that **Ingress Traffic** is set to **Accepting traffic from anywhere**. If your container app doesn't listen for HTTP traffic, set **Ingress Traffic** to **Limited to Container Apps Environment**. |
9292
| Does your client use HTTP or TCP to access your container app? | Verify **Ingress type** is set to the correct protocol (**HTTP** or **TCP**). |
93-
| Does your client support mTLS? | Verify **Client certificate mode** is set to **Require** only if your client supports mTLS. For more information, see [Environment level network encryption.](./networking.md#mtls) |
93+
| Does your client support mTLS? | Verify **Client certificate mode** is set to **Require** only if your client supports mTLS. For more information, see [configure client certificate authentication.](./client-certificate-authorization.md) |
9494
| Does your client use HTTP/1 or HTTP/2? | Verify **Transport** is set to the correct HTTP version (**HTTP/1** or **HTTP/2**). |
9595
| Is the target port set correctly? | Verify **Target port** is set to the same port your container app is listening on, or the same port exposed by your container app's Dockerfile. |
9696
| Is your client IP address denied? | If **IP Security Restrictions Mode** isn't set to **Allow all traffic**, verify your client doesn't have an IP address that is denied. |

articles/container-apps/whats-new.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ This article lists significant updates and new features available in Azure Conta
8080
| [Generally Available: Session affinity](./sticky-sessions.md) | Session affinity enables you to route all requests from a single client to the same Container Apps replica. This is useful for stateful workloads that require session affinity. |
8181
| [Generally Available: Azure Key Vault references for secrets](https://azure.microsoft.com/updates/generally-available-azure-key-vault-references-for-secrets-in-azure-container-apps/) | Azure Key Vault references enable you to source a container app’s secrets from secrets stored in Azure Key Vault. Using the container app's managed identity, the platform automatically retrieves the secret values from Azure Key Vault and injects it into your application's secrets. |
8282
| [Public preview: additional TCP ports](./ingress-overview.md#additional-tcp-ports) | Azure Container Apps now support additional TCP ports, enabling applications to accept TCP connections on multiple ports. This feature is in preview. |
83-
| [Public preview: environment level mTLS encryption](./networking.md#mtls) | When end-to-end encryption is required, mTLS will encrypt data transmitted between applications within an environment. |
83+
| [Public preview: environment level peer-to-peer encryption](./networking.md#peer-to-peer-encryption) | When end-to-end encryption is required, peer-to-peer encryption will encrypt data transmitted between applications within an environment. |
8484
| [Retirement: ACA preview API versions 2022-06-01-preview and 2022-11-01-preview](https://azure.microsoft.com/updates/retirement-azure-container-apps-preview-api-versions-20220601preview-and-20221101preview/) | Starting on November 16, 2023, Azure Container Apps control plane API versions 2022-06-01-preview and 2022-11-01-preview will be retired. Before that date, migrate to the latest stable API version (2023-05-01) or latest preview API version (2023-04-01-preview). |
8585
| [Dapr: Stable Configuration API](https://docs.dapr.io/developing-applications/building-blocks/configuration/) | Dapr's Configuration API is now stable and supported in Azure Container Apps. Learn how to do [Dapr integration with Azure Container Apps](./dapr-overview.md)|
8686

0 commit comments

Comments
 (0)