Skip to content

Commit 3fea684

Browse files
Harden WAF backend exposure and document private ingress validation
1 parent ab7c171 commit 3fea684

4 files changed

Lines changed: 19 additions & 3 deletions

File tree

azure.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ infra:
99
module: "main"
1010
parameters: "main.bicepparam"
1111

12-
metadata:
13-
template: deploy-your-ai-application-in-production@1.0
12+
# metadata:
13+
# template: deploy-your-ai-application-in-production@1.0
1414

1515
# Pre/Post-provision automation hooks
1616
hooks:

docs/deploymentguide.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -248,6 +248,8 @@ azd env set VM_ADMIN_USERNAME "youradminuser"
248248
azd env set VM_ADMIN_PASSWORD "<your-strong-password>"
249249
```
250250

251+
When `networkIsolation=true`, the deployment uses a private Azure Container Apps environment with VNet integration. In this accelerator, the backend Container App ingress is internal-only in that mode, so the backend endpoint is reachable only from inside the network boundary. The public entry point remains the frontend path published through the WAF/Application Gateway architecture.
252+
251253

252254
</details>
253255

docs/post_deployment_steps.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,18 @@ When accessing Microsoft Foundry from outside the virtual network, you should se
193193

194194
This is **expected behavior** — the resources are only accessible from within the virtual network.
195195

196+
### Check Backend Container App Isolation
197+
198+
For WAF or other network-isolated deployments in this repo, validate the backend Container App is not internet reachable:
199+
200+
1. Go to **Azure Portal****Container Apps Environment**.
201+
2. Verify **Internal load balancer** is enabled and **Public network access** is disabled.
202+
3. Open the backend **Container App** (for this accelerator, `orchestrator`) and select **Ingress**.
203+
4. Verify **External ingress** is disabled. The app should only resolve through the private Container Apps environment path.
204+
5. Open the virtual network subnet used by the Container Apps environment and confirm the subnet NSG is attached. With the repo defaults, no explicit inbound allow rule from the public internet is added for the backend path.
205+
206+
This is the expected WAF topology for the accelerator: the frontend remains public through the WAF/Application Gateway path, while backend Container Apps stay internal-only.
207+
196208
---
197209

198210
## 8. Connecting via Bastion (Network Isolated Deployments)

infra/main.bicepparam

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,9 @@ param databaseContainersList = [
185185
param containerAppsList = [
186186
{
187187
name: null
188-
external: true
188+
// WAF deployment (networkIsolation=true): internal-only ingress — backend is not publicly accessible.
189+
// Non-WAF deployment (networkIsolation=false): external ingress enabled.
190+
external: !networkIsolation
189191
service_name: 'orchestrator'
190192
profile_name: 'main'
191193
min_replicas: 1

0 commit comments

Comments
 (0)