重要
このページの日本語コンテンツは古くなっている可能性があります。最新の英語版コンテンツをご覧になるには、こちらをクリックしてください。
Azure Private Link の使用¶
Azure Private Link は VNet から Confluent Cloud への一方向のセキュアな接続を実現し、データ漏えいに対する保護機能も備えています。セキュリティとセットアップの簡易性を独自の形で兼ね備えた、人気の高いネットワークオプションです。
次の図に、VNet またはサブスクリプションと Confluent Cloud クラスターの間の Azure Private Link アーキテクチャの概要を示します。

注釈
Azure Private Link の概要と Confluent Cloud で Azure Private Link の使用を開始する詳細な手順については、「Setting Up Secure Networking in Confluent with Azure Private Link」を参照してください。
前提条件¶
- Azure に PRIVATELINK タイプの Confluent Cloud ネットワーク (CCN)があること。ネットワークが存在しない場合、以下の「Azure で PRIVATELINK タイプのネットワークを作成する」の手順に従ってください。
- Confluent Cloud で Azure Private Link サービスを使用するには、DNS 解決、Confluent Cloud Schema Registry、ksqlDB、Confluent CLI が機能するように、VNet でアウトバウンドインターネット接続を許可する必要があります。
- 権威サーバーへの DNS リクエストをプライベート DNS ゾーンに転送する必要があります。
- Confluent Cloud Schema Registry にはインターネット経由でアクセスできます。
- 新しい ksqlDB インスタンスをプロビジョニングするにはインターネットアクセスが必要です。稼働を開始した ksqlDB インスタンスには、Azure Private Link の接続を介して完全にアクセスできます。
- Confluent Cloud コントロールプレーンで認証を受けるには、Confluent CLI がインターネットにアクセスできる必要があります。
- Confluent Cloud Console components, like topic management, need additional configuration to function as they use cluster endpoints. To use all features of the Confluent Cloud Console with Azure Private Link, see Access Confluent Cloud Console with Private Networking.
警告
Azure Private Link の制限については、以下の「制限」を参照してください。
Azure で PRIVATELINK タイプのネットワークを作成する¶
Azure Private Link で専用クラスターを作成するには、まず必要なクラウドおよびリージョンで Confluent Cloud ネットワークを作成する必要があります。
- Confluent Cloud Console で、環境の Network management ページに移動します。
- これが環境内の最初のネットワークである場合は Create your first network を、環境に既存のネットワークがある場合は + Add Network をクリックします。
- Cloud Provider として Azure を選択し、必要に応じて地理的な場所を選択します。
- 接続タイプ Private Link を選択し、Continue をクリックします。
- Network Name を指定し、構成を確認して、Create Network をクリックします。
REST API リクエストの例を以下に示します。
HTTP POST リクエスト
POST https://api.confluent.cloud/networking/v1/networks
認証
「認証」を参照してください。
リクエストの詳細の指定
クラウド、リージョン、環境、接続のタイプの値と、任意で Confluent Cloud ネットワークの表示名、CIDR、ゾーンをリクエストの詳細として指定します。以下の属性を実際の値でアップデートしてください。
{
"spec":{
"display_name":"Azure-PL-CCN-1",
"cloud":"AZURE",
"region":"centralus",
"connection_types":[
"PRIVATELINK"
],
"zones":[
"1",
"2",
"3"
],
"environment":{
"id":"env-00000"
}
}
}
ほとんどの場合、Confluent Cloud ネットワークの作成にかかる時間は 15~20 分です。応答の Confluent Cloud ネットワーク ID をメモして、以降のコマンドで指定します。
Confluent Cloud ネットワークのプロビジョニングに成功したら、以下のいずれかの手順に従って Confluent Cloud ネットワークに専用クラスターを追加できます。
- Confluent Cloud Console: Confluent Cloud でのクラスターの作成
- クラスター管理 API: クラスターの作成
Confluent Cloud に Azure サブスクリプションを登録する¶
Confluent Cloud ネットワークへのプライベートエンドポイント接続が自動的に承認されるように、Confluent Cloud ネットワークに Azure サブスクリプションを登録します。必要に応じて、複数のサブスクリプションを登録できます。
- Confluent Cloud Console の Network Management タブにあるネットワークリソースに移動し、+ Private Link をクリックします。
- Azure Private Link 接続を開始する VNet が含まれているアカウントの Azure サブスクリプション ID を入力します。Azure サブスクリプション番号は、Azure ポータルの Azure サブスクリプションに関するページで確認できます。
- Save をクリックします。
HTTP POST リクエスト
POST https://api.confluent.cloud/networking/v1/private-link-accesses
認証
「認証」を参照してください。
リクエストの詳細の指定
Confluent Cloud ネットワーク ID、サブスクリプション、環境と、任意で表示名をリクエストの詳細として指定します。以下の属性を実際の値でアップデートしてください。
{
"spec":{
"display_name":"Azure-PL-CCN-1",
"cloud":{
"kind":"AzurePrivateLinkAccess",
"subscription":"00000000-0000-0000-0000-000000000000"
},
"environment":{
"id":"env-00000"
},
"network":{
"id":"n-000000"
}
}
}
Confluent Cloud Console で Azure Private Link 接続ステータスが "Pending" から "Active" に変わります。クラスターに接続する前に、VNet でプライベートエンドポイントも構成する必要があります。
VNet から Confluent Cloud クラスターへの Azure Private Link 接続を作成するために必要な Private Link のサービスエンドポイント をメモします。この URL は後でも入手できます。
Confluent Cloud への Azure Private Link 接続を作成する¶
ここで説明する手順に従うと、Confluent Cloud Console または REST API を使用して Azure の Confluent Cloud クラスターに対する Azure Private Link 接続を作成できます。
Azure アカウントで Azure Private Link の VNet エンドポイントをセットアップする¶
Confluent Cloud Console で接続ステータスが "Active" になったら、Confluent Cloud クラスターへの Azure Private Link 接続を作成できるよう、Azure ポータルで VNet にプライベートエンドポイントを構成する必要があります。
注釈
Confluent は、Private Link エンドポイントのセットアップに Terraform 構成 を使用することをお勧めしています。この構成を使用すれば、以下で説明する手動の手順を自動化することができます。
- 前提条件
Confluent Cloud Console の Cluster Settings セクションで、Confluent Cloud クラスターに関する次の情報を確認します。Azure の専用クラスターに Azure Private Link を構成するには、この情報が必要です。
- Kafka ブートストラップ(General タブ)
- DNS ドメイン名(Networking カード)
- ゾーン DNS サブドメイン名(Networking カード)
- サービスエイリアス(Networking カード)
Azure Private Link センター で以下のプライベートエンドポイントを作成します。
- Confluent Cloud のシングルアベイラビリティゾーンにあるクラスターについては、Confluent Cloud サービスエイリアスに 1 つのプライベートエンドポイントを作成します。Confluent Cloud のマルチアベイラビリティゾーンにあるクラスターについては、各 Confluent Cloud ゾーンサービスエイリアスに 1 つのプライベートエンドポイントを作成します。
- Create Private Endpoint をクリックして、Confluent Cloud のためのプライベートエンドポイントを作成します。
- 仮想エンドポイントのサブスクリプション、リソースグループ、名前、リージョン を入力し、Next をクリックします。選択する契約プランは、Confluent Cloud に登録したものと同じでなければなりません。
- Connect to an Azure resource by resource ID or alias オプションをクリックし、Confluent Cloud のサービスエイリアスを貼り付け、Next をクリックします。Confluent Cloud のサービスエイリアスは、Confluent Cloud Console の Cluster settings にある Networking タブで確認できます。
- virtual network and subnet に、プライベートエンドポイントを作成する仮想ネットワークとサブネットを入力します。
- Review + create をクリックします。詳細を確認し、Create をクリックするとプライベートエンドポイントが作成されます。
- Azure のデプロイが完了するまで待ってから、プライベートエンドポイントのリソースに移動し、プライベートエンドポイントの接続ステータスが Approved になっていることを確認します。
Azure プライベートエンドポイントを使用するように DNS レコードをセットアップする¶
サポートされているパターンで、接続が Azure Private Link を介して確立されるためには、DNS を変更する必要があります。以下のように DNS をルーティングできる任意の DNS プロバイダーを使用可能です。Azure プライベート DNS ゾーン(この例で使用しているもの)はオプションの 1 つです。
注釈
DNS ヘルパースクリプト を実行すると、プライベートエンドポイントのための DNS ゾーンレコードがわかります。
Azure コンソールで Azure プライベート DNS ゾーンを使用して DNS をアップデートします。
Private DNS Zone を作成します。
Azure ポータルで プライベート DNS ゾーン リソースを検索します。
Add をクリックします。
Confluent Cloud Console の Cluster Settings にある Networking タブで DNS ドメイン名をコピーし、プライベート DNS ゾーンの名前として使用します。
その例を次に示します。
4kgzg.centralus.azure.confluent.cloud
注釈
この DNS ドメイン名には glb が含まれていません。
- 契約プラン、リソースグループ、名前 を入力して Review + create をクリックします。
- Azure のデプロイが完了するまで待ちます。
DNS レコードを作成します。
- 上記で作成したプライベート DNS ゾーンのリソースに移動します。
- + Record Set をクリックします。
- Confluent Cloud のシングルアベイラビリティゾーンにあるクラスターに次のレコードセットを作成します。プライベートエンドポイントの IP アドレスは、関連付けられたネットワークインターフェイスで確認できます。
- 名前に "*"、タイプに "A"、TTL に "1 Minute" を選択し、上記で作成したシングル仮想エンドポイントの IP アドレスを追加します。
- Confluent Cloud のマルチアベイラビリティゾーンにあるクラスターに次のレコードセットを作成します。プライベートエンドポイントの IP アドレスは、関連付けられたネットワークインターフェイスで確認できます。
- 名前に "*"、タイプに "A"、TTL に "1 Minute" を選択し、上記で作成した 3 つの仮想エンドポイントの IP アドレスをすべて追加します。
- 名前に "*az1"、タイプに "A"、TTL に "1 Minute" を選択し、上記で作成した az1 仮想エンドポイントの IP アドレスを追加します。
- 名前に "*az2"、タイプに "A"、TTL に "1 Minute" を選択し、上記で作成した az2 仮想エンドポイントの IP アドレスを追加します。
- 名前に "*az3"、タイプに "A"、TTL に "1 Minute" を選択し、前述の手順で作成した az3 仮想エンドポイントの IP アドレスを追加します。
プライベート DNS ゾーンを、クライアントまたはアプリケーションが存在する VNet に追加します。
プライベート DNS ゾーンのリソースに移動し、設定の Virtual network links をクリックします。
- Add をクリックします。
- リンク名、契約プラン、仮想ネットワーク を入力します。
Confluent Cloud への接続を確認する¶
VNet または DNS をセットアップした場所内のインスタンスから以下を実行して、Azure Private Link を介した Kafka 接続が正常に機能していることを確認します。
クラスターのブートストラップ URL を環境変数に設定します。
export BOOTSTRAP=$<bootstrap-server-url>
Confluent Cloud Console に表示されるブートストラップ URL にはポート(
9092
)が含まれています。BOOTSTRAP
値にはホスト名全体を含める必要がありますが、ポートは含めません。これは、必要な値でopenssl s_client -connect <host>:<port>
コマンドを実行できるようにするためです。その例を次に示します。
export BOOTSTRAP=lkc-222v1o-4kgzg.centralus.azure.glb.confluent.cloud
クラスターへの接続をテストするには、
openssl s_client -connect <host>:<port>
コマンドを実行します。その際、<host>
値には$BOOTSTRAP
環境変数を、<port>
値には9092
を指定します。openssl s_client -connect $BOOTSTRAP:9092 -servername $BOOTSTRAP -verify_hostname $BOOTSTRAP </dev/null 2>/dev/null | grep -E 'Verify return code|BEGIN CERTIFICATE' | xargs
openssl s_client -connect
コマンドを実行する場合、-connect
オプションにホストとポート番号を指定する必要があります。詳細については、openssl s_client のドキュメントを参照してください。返された出力が
-----BEGIN CERTIFICATE----- Verify return code: 0 (ok)
であれば、ブートストラップへの接続を確認できたことになります。Confluent Cloud の認証情報を使用して Confluent Cloud CLI にログインします。
confluent login
組織のクラスターをリスト表示します。
confluent kafka cluster list
テストする Azure Private Link が存在するクラスターを選択します。
confluent kafka cluster use ...
その例を次に示します。
confluent kafka cluster use lkc-222v1o
クラスターでの認証に使用するクラスター API キーを作成します。
confluent api-key create --resource ... --description ...
その例を次に示します。
confluent api-key create --resource lkc-222v1o --description "connectivity test"
前の手順で作成した API キーを選択します。
confluent api-key use ... --resource ...
その例を次に示します。
confluent api-key use R4XPKKUPLYZSHOAT --resource lkc-222v1o
テストトピックを作成します。
confluent kafka topic create test
テストトピックからのイベントの消費を開始します。
confluent kafka topic consume test
ターミナルのタブまたはウィンドウをもう 1 つ開きます。
プロデューサーを起動します。
confluent kafka topic produce test
プロデューサーのタブに任意の入力を行い、
Enter
キーを押します。プロデューサーを停止するには、Ctrl+D
キーまたはCtrl+C
キーを押します。消費を実行しているタブに、生成を実行しているタブで入力した内容が出力されます。
これで終了です。クラスターは、使用できる状態です。
注釈
Private Link を使用する Confluent Cloud クラスターのブートストラップホスト名およびブローカーホスト名の DNS 解決プロセスは、次の 2 段階で実行されます。
- ブートストラップホスト名とブローカーホスト名には、ドメイン名のサブドメインとして
glb
が含まれています(たとえば、<cluster-subdomain-name>.eastus2.azure.glb.confluent.cloud
)。第 1 段階では、Confluent Cloud グローバル DNS リゾルバーにより、glb
サブドメインが含まれていないブートストラップホスト名とブローカーホスト名(たとえば、<cluster-subdomain-name>.eastus2.azure.confluent.cloud
)の CNAME が返されます。 - 第 2 段階では、"glb" サブドメインを含まない CNAME が、以前の手順で構成したプライベート DNS ゾーンを使用して、プライベートエンドポイント IP アドレスへと解決されます。
Windows DNS サービスなどの一部の DNS システムでは、上記の 2 段階解決を単一 DNS ノード内で再帰的に実行することができません。このような場合には、2 つの DNS システムを使用する必要があります。第 1 の DNS システムでは、"glb" サブドメインを含むドメインと含まないドメインに対して個別に転送ルールをセットアップし、これらのドメインを第 2 の DNS システムへと転送します。第 2 の DNS システムは、Confluent Cloud グローバル DNS リゾルバーに "glb" 名解決リクエストを転送することで再帰的に解決を実行します。これにより、以前に説明したように、プライベート DNS ゾーンをホストするクラウド DNS に "非 glb" 名の解決が作成されます。または、第 2 の DNS システムでローカルに "非 glb" DNS レコードをホストすることもできます。

制限¶
- リージョン間の Azure Private Link 接続はサポートされていません。
- Azure Private Link は専用クラスターでのみ使用できます。
- 既存の Confluent Cloud クラスターを、Azure Private Link を使用するように変換することはできません。
- フルマネージド型 Confluent Cloud コネクター は、パブリック IP アドレスを使用してデータソースまたはシンクに接続できます。プライベート IP アドレスを使用したカスタマーネットワークのソースまたはシンクはサポートされていません。
- Confluent Cloud クラスターと Azure Private Link サービスの配置のためのアベイラビリティゾーンの選択は、サポートされていません。
- 「前提条件」も参照してください。