Azure プライベート エンドポイントを使って、プライベート ネットワーク内にあるクライアントを、Azure Private Link 経由で Azure Container Apps 環境に安全に接続できます。 プライベート リンク接続を使うと、パブリック インターネットへの露出がなくなります。 プライベート エンドポイントは、Azure 仮想ネットワーク アドレス空間でプライベート IP アドレスを使用し、通常はプライベート DNS ゾーンで構成されます。
プライベート エンドポイントは、ワークロード プロファイル環境の従量課金プランと専用プランの両方でサポートされます。
Billing
プライベート エンドポイントには追加料金が発生します。 Azure Container Apps でプライベート エンドポイントを有効にすると、次の料金が課金されます。
- Azure Private Link - Azure Private Link リソース自体の課金。
- Azure Container Apps - 別の "専用プラン管理" 料金として表示され、従量課金プランと専用プランの両方に適用される、Azure Container Apps の専用プライベート エンドポイント インフラストラクチャの課金。
チュートリアル
- Azure Container Apps でプライベート エンドポイントを構成する方法について詳しくは、Azure Container Apps 環境でのプライベート エンドポイントの使用に関するチュートリアルをご覧ください。
- Azure Container Apps では、Azure Front Door とのプライベート リンク接続がサポートされています。 詳しくは、Azure Front Door とのプライベート リンクの作成に関する記事をご覧ください。
考慮事項
- プライベート エンドポイントを使用するには、 パブリック ネットワーク アクセスを無効にする必要があります。 既定では、パブリック ネットワーク アクセスが有効になっており、プライベート エンドポイントは無効になっています。
- カスタム ドメインでプライベート エンドポイントを使用し、"ホスト名レコードの種類" が "Apex ドメイン" の場合は、パブリック DNS と同じ名前でプライベート DNS ゾーンを構成する必要があります。 レコード セットで、コンテナー アプリ環境の IP アドレスではなく、プライベート エンドポイントのプライベート IP アドレスを構成します。 CNAME を使用してカスタム ドメインを構成していると、セットアップは変更されません。 詳細については、「既存の証明書を使用してカスタム ドメインを設定する」を参照してください。
- プライベート エンドポイントの VNet は、コンテナー アプリと統合された VNet とは別にすることができます。
- 新規と既存どちらのワークロード プロファイル環境にでも、プライベート エンドポイントを追加できます。
プライベート エンドポイントを介してコンテナー アプリに接続するには、プライベート DNS ゾーンを構成する必要があります。
| サービス | サブリソース | プライベート DNS ゾーンの名前 |
|---|---|---|
| Azure Container Apps (Microsoft.App/ManagedEnvironments) | 管理された環境 | privatelink.{regionName}.azurecontainerapps.io |
Application Gateway の代わりに 、Azure Front Door へのプライベート接続でプライベート エンドポイントを使用 することもできます。
DNS
Azure Container Apps 環境の仮想ネットワークでの DNS の構成は、次の理由で重要です。
DNS を使用すると、コンテナー アプリでドメイン名を IP アドレスに解決できます。 これにより、仮想ネットワークの内外のサービスを検出して通信できます。 これには、Azure Application Gateway、ネットワーク セキュリティ グループ、プライベート エンドポイントなどのサービスが含まれます。
カスタム DNS 設定では、コンテナー アプリによって行われた DNS クエリを制御および監視できるため、セキュリティが強化されます。 これにより、コンテナー アプリが信頼されたドメインとのみ通信できるようにすることで、潜在的なセキュリティ上の脅威を特定して軽減できます。
[カスタム DNS]
VNet で既定の Azure 提供の DNS サーバーではなくカスタム DNS サーバーが使用されている場合は、未解決の DNS クエリを 168.63.129.16 に転送するように DNS サーバーを構成します。
Azure の再帰リゾルバーは、この IP アドレスを使って要求を解決します。 ネットワーク セキュリティ グループ (NSG) またはファイアウォールを構成する場合は、 168.63.129.16 アドレスをブロックしないでください。それ以外の場合は、Container Apps 環境が正しく機能しません。
VNet スコープのイングレス
内部環境で VNet スコープの イングレス を使用する場合は、次のいずれかの方法でドメインを構成します。
非カスタム ドメイン: カスタム ドメインを使わない場合は、Container Apps 環境の既定のドメインを Container Apps 環境の静的 IP アドレスに解決するプライベート DNS ゾーンを作成します。 Azure プライベート DNS または独自の DNS サーバーを使用できます。 Azure プライベート DNS を使う場合は、コンテナー アプリ環境の既定のドメイン (
<UNIQUE_IDENTIFIER>.<REGION_NAME>.azurecontainerapps.io) として名前が指定されたプライベート DNS ゾーンと、Aレコードを作成します。Aレコードには、Container Apps 環境の名前*<DNS Suffix>と静的 IP アドレスが含まれています。 詳細については、「 Azure プライベート DNS ゾーンの作成と構成」を参照してください。カスタム ドメイン: カスタム ドメインを使う予定で、外部 Container Apps 環境を使用している場合、パブリックに解決可能なドメインを使って、コンテナー アプリにカスタム ドメインと証明書を追加します。 内部 Container Apps 環境を使用している場合、クラスターは仮想ネットワーク内からのみ使用できるようになるため、DNS バインディングの検証はありません。 さらに、Apex ドメインを Container Apps 環境の静的 IP アドレスに解決するプライベート DNS ゾーンを作成します。 Azure プライベート DNS または独自の DNS サーバーを使用できます。 Azure プライベート DNS を使う場合は、Apex ドメインとして名前が指定されたプライベート DNS ゾーンと、Container Apps 環境の静的 IP アドレスを指す
Aレコードを作成します。
Container Apps 環境の静的 IP アドレスは、Azure portal のコンテナー アプリ ページの [カスタム DNS サフィックス] か、Azure CLI の az containerapp env list コマンドを使用して取得できます。