ExpressRouteを用いないAzureとM365テナント間の通信におけるセキュリティ対応

2026-08-03T03:12:21.26+00:00

ADLS Gen2、Azure AI Search、Azure OpenAIでRAGを構成し、Copilot Studioで構築したエージェントと連携し、ADLS Gen2上の資料に関する問い合わせに回答するアーキテクチャを構想しています。

当方環境ではExpressRouteを利用できないため、AzureとM365間の通信はインターネット通信になると理解しており、当該通信におけるセキュリティ対策について質問です。

下記対策は実施可能と認識していますが、認識齟齬があればご指摘ください。

・暗号化通信(HTTPS/TLS)

・Entra IDによる認証

・RBACの最小権限設定

・ログ監視

MS製品同士の接続ということもあり、上記以外の特殊なセキュリティ対応等あれば併せてご教示ください。

また、当該アーキテクチャにおけるインターネット通信は、エージェントからAzure AI Search(問い合わせ)、及びAzure OpenAIからエージェント(回答)で認識齟齬ないでしょうか。

当該アーキテクチャの構築を急いでおり、お早めに回答いただければと思います。

ご回答のほどよろしくお願いいたします。

Azure AI 検索
Azure AI 検索

情報を強化する人工知能機能が組み込まれた Azure の検索サービスで、関連するコンテンツの特定と探索を大規模に支援します。


1 件の回答

並べ替え方法: 最も役に立つ
  1. Ajay Rathod 445 評価のポイント Microsoft 外部スタッフ モデレーター
    2026-08-04T05:22:39.39+00:00

    Please find the details below

    1. "No ExpressRoute" ≠ "traffic goes over the Internet"

    • ExpressRoute secures your corporate network → Microsoft. It has nothing to do with Microsoft service → Microsoft service traffic. Microsoft documents that traffic between Microsoft services (explicitly naming Azure and Microsoft 365) "routes within our global network and never over the public Internet." Power Platform states the same: internal communication between Microsoft services uses the Microsoft backbone and "isn't exposed to the public internet." That traffic already carries two encryption layers, both on by default:
      • TLS 1.2 at transport ("All traffic leaving a datacenter is encrypted in transit")
      • MACsec (IEEE 802.1AE) at the data-link layer between datacenters — "you don't need to take action to enable it"
      So your "HTTPS/TLS" bullet is understated, not wrong. 2. Your list is correct but incomplete — here's what's missing a) VNet support for Power Platform — the AI Search connector is now GA for this This is the single biggest gap. Subnet delegation lets Power Platform make outbound calls from your delegated subnet, so you can disable public network access on Azure AI Search entirely and reach it via private endpoint — no ExpressRoute needed. Key constraints before you commit:
      • Not supported on Trial or Dataverse for Teams environments
      • Region pairs are fixed — Japan → japaneast + japanwest (two VNets required)
      • Size subnets at 25–30 IPs per production env, 6–10 per non-prod, +5 reserved per subnet (docs' example: 4 prod × 30 + 5 = 125 → a /25)
      • Subnet must be new and dedicated; IP range and VNet DNS cannot be changed after delegation
      • "The calls to publicly available resources start to break" — audit connector/plugin URLs first
      • Endpoints must present a complete TLS cert chain; custom root CAs cannot be added
      Run Get-EnvironmentRegion from the subnet diagnostics PowerShell module first. b) Use Entra ID auth on the knowledge connection — not the admin key The docs are blunt: "You must add Azure AI Search through a formal data connection. Don't manually configure an endpoint and API key." Choose Microsoft Entra ID Integrated or Service principal. This matters more than it looks: a broken AI Search data connection is stored at the environment level, can break the connection dialog for all agents in that environment, and there is no UI to delete it. Recovery = reset the agent's external access, or delete and recreate the agent. c) RBAC at the data plane, not just the control plane Set AI Search Keys → Role-based access control (or Both), then grant Search Index Data Reader to Entra groups. Not Contributor, not admin keys. d) Privatize the ingestion path separately Ingestion (ADLS Gen2 → indexer → embeddings) is a different trust boundary from query time:
      • System-assigned managed identity on AI Search
      • ADLS Gen2 → Selected networks + "Allow Azure services on the trusted services list"
      • Disable public network access on Storage / Search / OpenAI + private endpoints
      • Shared private link for outbound AI Search calls (Azure OpenAI target: resource type Microsoft.CognitiveServices/accounts, group ID openai_account)
      Tier gates: indexers without skillsets = Basic+; embedding skills / integrated vectorization = Basic+ and high-capacity region and service created after April 3, 2024; other built-in/custom skills = S1+, also post-April 3, 2024. e) Governance controls people usually miss Power Platform DLP data policies (restrict which knowledge sources makers can attach) · customer-managed keys (Managed Environments only) · data movement across geographies toggle · continuous access evaluation · sharing rules / viewer limits · Customer Lockbox · Key Vault-backed environment variables. For inbound IP firewall, use service tags PowerPlatformInfra / PowerPlatformPlex (preview). Do not try to allowlist Copilot Studio in your AI Search firewall — those published outbound IP tables are for Bot Framework skills only, and agent egress addresses are dynamic and not reliably allowlistable.

      3. Your second question — yes, there IS an asymmetry

      The two hops are not equivalent, and knowing this will save you schedule time:
      Path Boundary Control
      Query — agent → your AI Search index Terminates on a resource you own VNet support + private endpoint + Entra ID auth
      Response/generation Microsoft-managed Azure OpenAI inside the Power Platform service boundary Tenant policy only — data-movement-across-geographies toggle, geo data residency
      Your own Azure OpenAI resource sits on the ingestion/vectorization path (embeddings), which is Azure-internal and privatized via shared private link. Bottom line: one hop to harden with network controls, not two. Don't spend a week trying to put a private endpoint in front of the Copilot Studio generation path — that's not where the boundary is. Documents:

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません

お客様の回答

質問作成者は回答に "承認済み"、モデレーターは "推奨" とマークできます。これにより、ユーザーは作成者の問題が回答によって解決したことを把握できます。