Event Hubs 名前空間の最小 TLS バージョンを構成する
Azure Event Hubs 名前空間では、クライアントが TLS 1.0 以降を使用してデータを送受信できます。 より厳密なセキュリティ対策を実施するために、クライアントで新しいバージョンの TLS を使用してデータを送受信することを要求するように、Event Hubs 名前空間を構成することができます。 Event Hubs 名前空間で最小バージョンの TLS が要求されている場合、それより古いバージョンで行われた要求はすべて失敗します。 この機能に関してのコンセプトの詳細については、Event Hubs 名前空間への要求に必要な最小バージョンのトランスポート層セキュリティ (TLS) の適用に関するページを参照してください。
最小 TLS バージョンは、Azure portal または Azure Resource Manager (ARM) テンプレートを使用して構成できます。
Azure portal で TLS の最小バージョンを指定する
Azure portal の [詳細] タブで Event Hubs 名前空間を作成するときに、最小 TLS バージョンを指定できます。
構成 ページで、既存の名前空間の最小 TLS バージョンを指定することもできます。
最小 TLS バージョンを構成するためのテンプレートの作成
テンプレートを使用して Event Hubs 名前空間の最小 TLS バージョンを構成するには、MinimumTlsVersion
プロパティを 1.0、1.1、または 1.2 に設定してテンプレートを作成します。 Azure Resource Manager テンプレートを使用して Event Hubs 名前空間を作成する場合、MinimumTlsVersion
プロパティは、別のバージョンに明示的に設定されていない限り、既定で 1.2 に設定されます。
注意
2022-01-01-preview より前の api-version を使用して作成された名前空間は、MinimumTlsVersion
の値が 1.0 になります。 この動作は以前の既定値であり、下位互換性のために残されています。
次の手順は、Azure portal でテンプレートを作成する方法について説明しています。
Azure portal で、 [リソースの作成] を選択します。
[Marketplace を検索] で「custom deployment」と入力し、Enter キーを押します。
[カスタム デプロイ (カスタム テンプレートを使用してデプロイ) (プレビュー)]、[作成]、[エディターで独自のテンプレートを作成する] の順に選択します。
テンプレート エディターで、次の JSON を貼り付けて新しい名前空間を作成し、最小 TLS バージョンを TLS 1.2 に設定します。 山かっこ内のプレースホルダーは、実際の値に置き換えてください。
{ "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": {}, "variables": { "eventHubNamespaceName": "[concat(uniqueString(subscription().subscriptionId), 'tls')]" }, "resources": [ { "name": "[variables('eventHubNamespaceName')]", "type": "Microsoft.EventHub/namespaces", "apiVersion": "2022-01-01-preview", "location": "westeurope", "properties": { "minimumTlsVersion": "1.2" }, "dependsOn": [], "tags": {} } ] }
テンプレートを保存します。
リソース グループ パラメーターを指定し、[レビューと作成] ボタンを選択してテンプレートをデプロイし、
MinimumTlsVersion
プロパティが構成された名前空間を作成します。
注意
Event Hubs 名前空間の最小 TLS バージョンを更新した後、変更が完全に反映されるまでに最大で 30 秒かかることがあります。
最小 TLS バージョンを構成するには、api-version 2022-01-01-preview 以降の Azure Event Hubs リソース プロバイダーが必要です。
名前空間に必要な TLS の最小バージョンを確認する
Event Hubs 名前空間に必要な TLS の最小バージョンを確認するには、Azure Resource Manager API にクエリを実行します。 この API にクエリを実行するには、次のコマンドを実行することで ARMClient アプリを使用して取得できるベアラー トークンが必要です。
.\ARMClient.exe login
.\ARMClient.exe token <your-subscription-id>
ベアラー トークンを取得した後、次のスクリプトと REST Client など任意のものを組み合わせて使用して API にクエリを実行できます。
@token = Bearer <Token received from ARMClient>
@subscription = <your-subscription-id>
@resourceGroup = <your-resource-group-name>
@namespaceName = <your-namespace-name>
###
GET https://management.azure.com/subscriptions/{{subscription}}/resourceGroups/{{resourceGroup}}/providers/Microsoft.EventHub/namespaces/{{namespaceName}}?api-version=2022-01-01-preview
content-type: application/json
Authorization: {{token}}
応答は次のようになります。minimumTlsVersion は、properties の下で設定されています。
{
"sku": {
"name": "Premium",
"tier": "Premium",
"capacity": 1
},
"id": "/subscriptions/<your-subscription-id>/resourceGroups/<your-resource-group-name>/providers/Microsoft.EventHub/namespaces/<your-namespace-name>",
"name": "<your-namespace-name>",
"type": "Microsoft.EventHub/Namespaces",
"location": "West Europe",
"properties": {
"minimumTlsVersion": "1.2",
"publicNetworkAccess": "Enabled",
"disableLocalAuth": false,
"zoneRedundant": true,
"isAutoInflateEnabled": false,
"maximumThroughputUnits": 0,
"kafkaEnabled": true,
"provisioningState": "Succeeded",
"status": "Active"
}
}
クライアントから TLS の最小バージョンをテストする
Event Hubs 名前空間に必要な TLS の最小バージョンにより、古いバージョンで行われた呼び出しが禁止されることをテストするには、古いバージョンの TLS を使用するようにクライアントを構成します。 特定のバージョンの TLS を使用するようにクライアントを構成する方法の詳細については、「クライアント アプリケーションのトランスポート層セキュリティ (TLS) を構成する」を参照してください。
名前空間に構成されている最小 TLS バージョンを満たしていない TLS バージョンを使用して、クライアントによって Event Hubs 名前空間にアクセスされた場合、Azure Event Hubs からエラー コード 401 エラー (許可されていません) と、使用された TLS バージョンにはこの Event Hubs 名前空間に対する要求を行うことが許可されていないことを示すメッセージが返されます。
注意
Kafka プロトコルで接続する際は、confluent ライブラリの制限上、無効な TLS バージョンに起因するエラーは表面化しません。 代わりに、一般的な例外が表示されます。
注意
Event Hubs 名前空間の最小 TLS バージョンを構成すると、その最小バージョンがアプリケーション層で適用されます。 プロトコル層で TLS のサポートを確認しようとするツールは、Event Hubs 名前空間エンドポイントに対して直接実行された場合、最低限必要なバージョンに加えて、TLS バージョンを返す場合があります。
次のステップ
詳細については、次の記事を参照してください。