docs: clarify FinOps hub private endpoint topology - #2270
docs: clarify FinOps hub private endpoint topology#2270Brett Wilson (MSBrett) wants to merge 7 commits into
Conversation
Document Toolkit ownership of the FinOps hub network and recommend customer-managed private endpoints while preserving peering, DNS, cleanup, and subnet guidance. Relates-to: microsoft#2156 Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Documentation-only update clarifying FinOps hub private networking ownership boundaries and recommending a customer-managed private endpoint topology, aligning guidance with the known upgrade behavior described in #2156 without changing template implementation.
Changes:
- Added explicit ownership boundary language: the Toolkit owns/manages the hub VNet, subnets, private DNS, routing, and related resources.
- Documented customer-managed private endpoints (in the customer VNet) as the preferred private-access topology; kept peering as a secondary option.
- Updated deployment guidance text and added an Unreleased changelog entry referencing #2156.
Reviewed changes
Copilot reviewed 3 out of 4 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| docs-mslearn/toolkit/hubs/private-networking.md | Adds ownership boundary + preferred customer-managed private endpoint guidance and updates related sections (enable/disable, DNS, peering). |
| docs-mslearn/toolkit/hubs/deploy.md | Updates private routing decision guidance to point to customer-managed endpoints/DNS first, peering second. |
| docs-mslearn/toolkit/changelog.md | Adds an Unreleased FinOps hubs changelog entry capturing the documentation clarification and topology recommendation. |
Suppressed comments (3)
docs-mslearn/toolkit/hubs/private-networking.md:50
- This sentence uses "please refer to"; Microsoft style guidance typically prefers direct phrasing like "see" and avoids "please" in technical documentation.
Note that private networking incurs extra cost for networking resources, connectivity, and dedicated compute in Azure Data Factory. For a detailed cost estimate, please refer to the Azure pricing calculator.
docs-mslearn/toolkit/hubs/private-networking.md:186
- "domain name system" should be capitalized as the proper term "Domain Name System (DNS)".
Communication between the various FinOps hub components is encrypted using TLS. For TLS certificate validation to succeed when using private networking, reliable domain name system (DNS) name resolution is required. The Toolkit creates and manages DNS zones, private endpoints, and DNS entries that guarantee name resolution between FinOps hub components.
docs-mslearn/toolkit/hubs/private-networking.md:210
- The wording "one's corporate" is awkward/inconsistent with the rest of the page; use direct second-person phrasing.
- Allowing one's corporate firewall and VPN IP ranges access over the public internet via the storage and Data Explorer firewalls.
💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.
Align private-mode Data Factory guidance with the managed integration runtime and address the related terminology and style review feedback. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 3 out of 4 changed files in this pull request and generated no new comments.
Suppressed comments (3)
docs-mslearn/toolkit/hubs/private-networking.md:62
- The product name is inconsistent with other FinOps hubs docs (for example,
docs-mslearn/toolkit/hubs/template.mdrefers to "Power BI VNet Data Gateway"). Consider using the same product name here for clarity and consistency.
If you use a Power BI virtual network data gateway, deploy it in your own virtual network and plan enough subnet address space for the gateway. Don't deploy the gateway in the FinOps hub virtual network. When you connect to Azure Data Explorer, use the fully qualified domain name (FQDN), such as `clustername.region.kusto.windows.net`, to ensure private endpoint name resolution works correctly.
docs-mslearn/toolkit/hubs/private-networking.md:175
- In this subnet description, "storage" is lowercased while the rest of the doc refers to the component as "Storage" (including the access-options table). Aligning the capitalization helps avoid ambiguity and keeps terminology consistent.
- **private-endpoint-subnet** (**/28**) – no service delegations configured; hosts private endpoints for storage and Key Vault.
docs-mslearn/toolkit/hubs/private-networking.md:94
- This sentence implies Azure Data Explorer is always present, but earlier the page notes Data Explorer is optional ("if deployed"). Consider reflecting that here to avoid confusing readers who deploy hubs without Data Explorer.
If you need to reduce costs or simplify your FinOps hub deployment, you can switch back to public access. Redeploying with **Access** set to **Public** configures Storage, Data Explorer, and Key Vault to use public access and switches Azure Data Factory back to the public integration runtime.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…int-topology-docs
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
| - Switch Azure Data Factory back to the public integration runtime | ||
| The incremental deployment retains the Toolkit-created virtual network, network security groups, private endpoints, private DNS zones, deployment-script Storage account, Data Factory managed virtual network and private endpoints, managed integration runtime, and optional NAT Gateway and static public IP address. Customer-managed resources in your network are also outside the Toolkit deployment and aren't removed. | ||
|
|
||
| Retained resources don't all have standing charges. Private endpoints, private DNS zones, NAT Gateway, public IP address, and data in the deployment-script Storage account can continue to accrue charges. The managed integration runtime incurs charges only when it runs. |
| - Azure Firewall acts as the core router. | ||
| - Customer-managed private DNS zones contain the Storage and Data Explorer records and are linked to the DNS resolver virtual network. | ||
| - On-premises DNS forwards Azure service queries to the resolver's inbound endpoint. | ||
| - A route table is attached to `GatewaySubnet` so traffic from on-premises can route to the peered virtual network. |
Summary
Scope and issue relationship
Relates to #2156. This documentation describes the current
devimplementation and doesn't change Bicep or deployment behavior.This replaces closed PR #2230 with a scope-audited documentation update. The PR changes eight files:
.gitignore, three Markdown files, and four PNG diagrams. No SVG source or implementation files are included.Requirements traceability
private-networking.md: How private access works, Security posture, and FinOps hub virtual networkprivate-networking.md: Preferred option: customer-managed private endpoints andfinops-hubs-customer-endpoints.pngblobanddfs; Data ExplorerclusterandrequiredZoneNames; Azure cloud-specific suffix guidance/28,/28, and/27subnet purposes; deployment-script Storagefileendpoint; default and managed Azure integration runtimeschangelog.md: Unreleased > FinOps hubs > ChangedValidation
Invoke-PesterforMsLearnDocs.Tests.ps1andDocsLinks.Tests.ps1— 2,282 passed, 0 failed.git diff --check— PASS.652c95fe5e78adbcf6f62d23c81db8fed27b0f0ae64f330664af2d2c49ef413f68a9cce2649842e4b34c0864a134c99c8a125e4231e14edc0f4af53cda382156547253fe786e0cd5149991ffe057274e632b7266dd54aa648fa3aa19738248cb0a1ac9c10697ca6907425ed2cf347825920f931f7fcf3ea4af1046de7ca743c3