Skip to content

Commit d0265ee

Browse files
Merge pull request #245066 from cachai2/mtls
init mtls
2 parents 292da7a + 9efbc37 commit d0265ee

File tree

4 files changed

+54
-5
lines changed

4 files changed

+54
-5
lines changed

articles/container-apps/azure-resource-manager-api-spec.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ A resource's `properties` object has the following properties:
3939
|---|---|---|---|
4040
| `daprAIInstrumentationKey` | The Application Insights instrumentation key used by Dapr. | string | No |
4141
| `appLogsConfiguration` | The environment's logging configuration. | Object | No |
42+
| `peerAuthentication` | How to enable mTLS encryption. | Object | No |
4243

4344
### <a name="container-apps-environment-examples"></a>Examples
4445

articles/container-apps/ingress-overview.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,8 +96,9 @@ Container Apps supports IP restrictions for ingress. You can create rules to eit
9696

9797
Azure Container Apps provides built-in authentication and authorization features to secure your external ingress-enabled container app. For more information, see [Authentication and authorization in Azure Container Apps](authentication.md).
9898

99-
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)
99+
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).
100100

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

102103
## Traffic splitting
103104

articles/container-apps/network-proxy.md

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,9 @@ Requests that come in to ports `80` and `443` are internally routed to the appro
3333
## Security
3434

3535
- HTTP requests are automatically redirected to HTTPs
36-
- Envoy terminates TLS after crossing its boundary
37-
- Envoy sends requests to apps over HTTP in plain text
38-
- mTLS is only available when using Dapr
39-
- When you use Dapr service invocation APIs, mTLS is enabled. However, because Envoy terminates mTLS, inbound calls from Envoy to Dapr-enabled container apps isn't encrypted.
36+
- You can disable this by setting `allowInsecure` to `true` in the ingress configuration
37+
- TLS terminates at the ingress
38+
- You can enable [Environment level network encryption](networking.md#mtls) for full end-to-end encryption for requests between the ingress and an app and between different apps
4039

4140
HTTPs, GRPC, and HTTP/2 all follow the same architectural model.
4241

articles/container-apps/networking.md

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,54 @@ With the workload profiles environment (preview), you can fully secure your ingr
204204
- Integrate your Container Apps with an Application Gateway. For steps, see [here](./waf-app-gateway.md).
205205
- Configure UDR to route all traffic through Azure Firewall. For steps, see [here](./user-defined-routes.md).
206206

207+
## <a name="mtls"></a> Environment level network encryption - preview
208+
209+
Azure Container Apps supports environment level network encryption using mutual transport layer security (mTLS). When end-to-end encryption is required, mTLS will encrypt data transmitted between applications within an environment. Applications within a Container Apps environment are automatically authenticated. However, Container Apps currently does not support authorization for access control between applications using the built-in mTLS.
210+
211+
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).
212+
213+
> [!NOTE]
214+
> Enabling mTLS for your applications may increase response latency and reduce maximum throughput in high-load scenarios.
215+
216+
# [Azure CLI](#tab/azure-cli)
217+
218+
You can enable mTLS using the following commands.
219+
220+
On create:
221+
```azurecli
222+
az containerapp env create \
223+
--name <environment-name> \
224+
--resource-group <resource-group> \
225+
--location <location> \
226+
--enable-mtls
227+
```
228+
229+
For an existing container app:
230+
```azurecli
231+
az containerapp env update \
232+
--name <environment-name> \
233+
--resource-group <resource-group> \
234+
--enable-mtls
235+
```
236+
237+
# [ARM template](#tab/arm-template)
238+
239+
You can enable mTLS in the ARM template for Container Apps environments using the following configuration.
240+
241+
```json
242+
{
243+
...
244+
"properties": {
245+
"peerAuthentication":{
246+
"mtls": {
247+
"enabled": "true|false"
248+
}
249+
}
250+
...
251+
}
252+
```
253+
---
254+
207255
## DNS
208256

209257
- **Custom DNS**: If your VNet uses a custom DNS server instead of the default Azure-provided DNS server, configure your DNS server to forward unresolved DNS queries to `168.63.129.16`. [Azure recursive resolvers](../virtual-network/virtual-networks-name-resolution-for-vms-and-role-instances.md#name-resolution-that-uses-your-own-dns-server) uses this IP address to resolve requests. When configuring your NSG or Firewall, don't block the `168.63.129.16` address, otherwise, your Container Apps environment won't function.

0 commit comments

Comments
 (0)