Azure Container Apps環境での仮想ネットワークのプライベート エンドポイントと DNS

Azureプライベート エンドポイントを使用すると、プライベート ネットワーク内にあるクライアントは、Azure Private Link経由でAzure Container Apps環境に安全に接続できます。 Private Link接続により、パブリック インターネットへの露出が排除されます。 プライベート エンドポイントは、Azure仮想ネットワーク アドレス空間でプライベート IP アドレスを使用し、通常はプライベート DNS ゾーンで構成されます。

プライベート エンドポイントは、ワークロード プロファイル環境の従量課金プランと専用プランの両方でサポートされます。

Billing

プライベート エンドポイントには追加料金が発生します。 Container Apps でプライベート エンドポイントを有効にすると、次の両方に対して課金されます。

  • Private Link リソース
  • Container Apps 用の専用プライベート エンドポイント インフラストラクチャ。 これは個別の 専用プラン管理 料金として表示され、従量課金プランと専用プランの両方に適用されます。

ハウツー記事

考慮事項

  • プライベート エンドポイントを使用するには、 パブリック ネットワーク アクセスを無効にする必要があります。 既定では、パブリック ネットワーク アクセスが有効になっており、プライベート エンドポイントは無効になっています。
  • カスタム ドメインと 頂点ドメイン を含むプライベート エンドポイントを ホスト名レコードの種類として使用するには、パブリック DNS と同じ名前のプライベート DNS ゾーンを構成する必要があります。 レコード セットで、Container Apps 環境の IP アドレスではなく、プライベート エンドポイントのプライベート IP アドレスを構成します。 CNAME を使用してカスタム ドメインを構成していると、セットアップは変更されません。 詳細については、「既存の 証明書を使用してカスタム ドメインを設定する」を参照してください。
  • プライベート エンドポイントの仮想ネットワークは、コンテナー アプリと統合した仮想ネットワークとは別にすることができます。
  • 新規と既存どちらのワークロード プロファイル環境にでも、プライベート エンドポイントを追加できます。

プライベート エンドポイントを介してコンテナー アプリに接続するには、プライベート DNS ゾーンを構成する必要があります。

サービス サブリソース プライベート DNS ゾーン名
Azure Container Apps (Microsoft.App/ManagedEnvironments) managedEnvironment privatelink.{regionName}.azurecontainerapps.io

Azure Application Gatewayの代わりにAzure Front Doorへのプライベート接続でプライベート エンドポイントを使用することもできます。

DNS

Container Apps 環境の仮想ネットワークでの DNS の構成は、次の理由で重要です。

  • DNS を使用すると、コンテナー アプリはドメイン名を IP アドレスに解決して、仮想ネットワーク内外のサービスを検出して通信できるようにします。 これらのサービスには、Application Gateway、ネットワーク セキュリティ グループ、プライベート エンドポイントが含まれます。

  • カスタム DNS 設定を使用すると、コンテナー アプリで実行される DNS クエリを制御および監視できるため、セキュリティが強化されます。 この機能は、コンテナー アプリが信頼されたドメインとのみ通信できるようにすることで、潜在的なセキュリティ上の脅威を特定して軽減するのに役立ちます。

[カスタム DNS]

仮想ネットワークで既定のAzure指定された DNS サーバーではなくカスタム DNS サーバーを使用する場合は、未解決の DNS クエリを 168.63.129.16 に転送するように DNS サーバーを構成します。 Azure再帰リゾルバーこの IP アドレスを使用して要求を解決します。

ネットワーク セキュリティ グループまたはファイアウォールを構成する場合、DNS 要件はワークロード プロファイルの種類によって異なります。

  • 従量課金プラン: AzurePlatformDNS サービス タグ ( 168.63.129.16を含む) へのトラフィックを許可する必要があります。 このサービス タグをブロックすると、カスタム DNS サーバーが構成されている場合でも、Container Apps 環境が正しく機能しなくなります。

  • Dedicated ワークロード プロファイル: 必要に応じて、AzurePlatformDNS サービス タグをブロックできます。これは、専用のワークロード プロファイルが基本的な機能のためにAzure DNSにアクセスする必要がないためです。

    厳密な DNS セキュリティ要件 (銀行や医療など) を持つ組織の場合、専用ワークロード プロファイルは、Azure DNSアクセスを必要とせずに、カスタム DNS サーバー経由の DNS トラフィック フローを完全に制御するオプションを提供します。

Important

プライベート DNS ゾーンのユーザーは、Azure Kubernetes Service と共有され、Azure グローバル必須 FQDN / アプリケーション ルールに記載されている *.hcp.<LOCATION>.azmk8s.iomcr.microsoft.comおよびその他の DNS 要件の解決をブロックしたり、上書きしたりしてはいけません。 必要なエントリの解決可能性を確保できないと、Container Apps 環境の操作とネットワークが中断されます。

Virtual Network スコープのイングレス

仮想ネットワーク スコープの内部環境で イングレス を使用する場合は、次のいずれかの方法でドメインを構成します。

  • 非カスタム ドメイン: カスタム ドメインを使わない場合は、Container Apps 環境の既定のドメインを Container Apps 環境の静的 IP アドレスに解決するプライベート DNS ゾーンを作成します。 Azure プライベート DNSまたは独自の DNS サーバーを使用できます。

    Azure プライベート DNSを使用する場合は、<UNIQUE_IDENTIFIER>.<REGION_NAME>.azurecontainerapps.io レコードを使用して、Container App 環境の既定のドメイン (A) として名前付けされたprivate DNS ゾーンを作成します。 A レコードには、Container Apps 環境の名前 *<DNS Suffix> と静的 IP アドレスが含まれています。 詳細については、「Azure プライベート DNS ゾーンの作成と構成を参照してください。

  • カスタム ドメイン: カスタム ドメインを使う予定で、外部 Container Apps 環境を使用している場合、パブリックに解決可能なドメインを使って、コンテナー アプリにカスタム ドメインと証明書を追加します。 内部 Container Apps 環境を使用している場合、クラスターは仮想ネットワーク内からのみ使用できるため、DNS バインディングの検証はありません。

    さらに、Apex ドメインを Container Apps 環境の静的 IP アドレスに解決するプライベート DNS ゾーンを作成します。 Azure プライベート DNSまたは独自の DNS サーバーを使用できます。 Azure プライベート DNSを使用する場合は、Container Apps 環境の静的 IP アドレスを指す A レコードを使用して、頂点ドメインとして名前付けされたprivate DNS ゾーンを作成します。

Container Apps 環境の静的 IP アドレスを取得するには、次のいずれかの方法を使用できます。

  • Azure ポータルで、コンテナー アプリのページに移動し、Custom DNS サフィックスの値をメモします。
  • Azure CLIで、az containerapp env list コマンドを使用します。

次のステップ