次の方法で共有


Service Bus 名前空間の最小 TLS バージョンを構成する

Azure Service Bus 名前空間では、クライアントが TLS 1.0 以降を使用してデータを送受信できます。 より厳密なセキュリティ対策を実施するために、クライアントで新しいバージョンの TLS を使用してデータを送受信することを要求するように、Service Bus 名前空間を構成することができます。 Service Bus 名前空間で最小バージョンの TLS が要求されている場合、それより古いバージョンで行われた要求はすべて失敗します。 この機能に関してのコンセプトの詳細については、Service Bus 名前空間への要求に必要な最小バージョンのトランスポート層セキュリティ (TLS) の適用を参照してください。

最小 TLS バージョンは、Azure portal または Azure Resource Manager (ARM) テンプレートを使用して構成できます。

警告

2025 年 2 月 28 日の時点で、TLS 1.0 と TLS 1.1 は Azure Service Bus でサポートされなくなります。 TLS の最小バージョンは、すべての Service Bus デプロイについて 1.2 になります。

重要

2024 年 10 月 31 日に、AMQP トラフィックに対して TLS 1.3 が有効になります。 HTTPS トラフィックについては、TLS 1.3 が既に有効になっています。 以前のバージョンの Proton-J に依存しているため、Java クライアントで TLS 1.3 に問題が発生する可能性があります。 詳細については、Azure Service Bus と Azure Event Hubs で TLS 1.3 をサポートするための Java クライアントの変更に関する記事を参照してください。

Azure portal で TLS の最小バージョンを指定する

Azure portal の 詳細 タブで Service Bus 名前空間を作成するときに、最小 TLS バージョンを指定できます。

名前空間の作成時に最小 TLS バージョンを設定するためのページを示すスクリーンショット。

構成 ページで、既存の名前空間の最小 TLS バージョンを指定することもできます。

既存の名前空間の最小 TLS バージョンを設定するためのページを示すスクリーンショット。

Azure CLI の使用

TLS の最小バージョンを 1.2 に設定して名前空間を作成するには、--min-tls1.2 に設定して az servicebus namespace create コマンドを使います。

az servicebus namespace create \
    --name mynamespace \
    --resource-group myresourcegroup \
    --min-tls 1.2

Azure PowerShell の使用

TLS の最小バージョンを 1.2 に設定して名前空間を作成するには、-MinimumTlsVersion1.2 に設定して New-AzServiceBusNamespace コマンドを使います。

New-AzServiceBusNamespace `
    -ResourceGroup myresourcegroup `
    -Name mynamespace `
    -MinimumTlsVersion 1.2

最小 TLS バージョンを構成するためのテンプレートの作成

Service Bus 名前空間の最小 TLS バージョンを構成するには、MinimumTlsVersion バージョン プロパティから 1.0、1.1、または 1.2を設定します。 Azure Resource Manager テンプレートを使用して Service Bus 名前空間を作成する場合、MinimumTlsVersion プロパティは、別のバージョンに明示的に設定されていない限り、既定で 1.2 に設定されます。

注意

2022-01-01-preview より前の api-version を使用して作成された名前空間は、MinimumTlsVersion の値が 1.0 になります。 この動作は以前の既定値であり、下位互換性のために残されています。

次の手順は、Azure portal でテンプレートを作成する方法について説明しています。

  1. Azure portal で、 [リソースの作成] を選択します。

  2. [Marketplace を検索] で「custom deployment」と入力し、Enter キーを押します。

  3. [カスタム デプロイ (カスタム テンプレートを使用してデプロイ) (プレビュー)][作成][エディターで独自のテンプレートを作成する] の順に選択します。

  4. テンプレート エディターで、次の JSON を貼り付けて新しい名前空間を作成し、最小 TLS バージョンを TLS 1.2 に設定します。 山かっこ内のプレースホルダーは、実際の値に置き換えてください。

    {
        "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
        "contentVersion": "1.0.0.0",
        "parameters": {},
        "variables": {
            "serviceBusNamespaceName": "[concat(uniqueString(subscription().subscriptionId), 'tls')]"
        },
        "resources": [
            {
            "name": "[variables('serviceBusNamespaceName')]",
            "type": "Microsoft.ServiceBus/namespaces",
            "apiVersion": "2022-01-01-preview",
            "location": "westeurope",
            "properties": {
                "minimumTlsVersion": "1.2"
            },
            "dependsOn": [],
            "tags": {}
            }
        ]
    }
    
  5. テンプレートを保存します。

  6. リソース グループ パラメーターを指定し、[レビューと作成] ボタンを選択してテンプレートをデプロイし、MinimumTlsVersion プロパティが構成された名前空間を作成します。

注意

Service Bus 名前空間の最小 TLS バージョンを更新した後、変更が完全に反映されるまでに最大で 30 秒かかることがあります。

最小 TLS バージョンを構成するには、api-version 2022-01-01-preview 以降の Azure Service Bus リソース プロバイダーが必要です。

名前空間に必要な TLS の最小バージョンを確認する

Service Bus 名前空間に必要な 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.ServiceBus/namespaces/{{namespaceName}}?api-version=2022-01-01-preview
content-type: application/json
Authorization: {{token}}

応答は次のようになります。minimumTlsVersion は、properties の下で設定されています。

{
  "sku": {
    "name": "Premium",
    "tier": "Premium"
  },
  "id": "/subscriptions/<your-subscription-id>/resourceGroups/<your-resource-group-name>/providers/Microsoft.ServiceBus/namespaces/<your-namespace-name>",
  "name": "<your-namespace-name>",
  "type": "Microsoft.ServiceBus/Namespaces",
  "location": "West Europe",
  "tags": {},
  "properties": {
    "minimumTlsVersion": "1.2",
    "publicNetworkAccess": "Enabled",
    "disableLocalAuth": false,
    "zoneRedundant": false,
    "provisioningState": "Succeeded",
    "status": "Active"
  }
}

クライアントから TLS の最小バージョンをテストする

Service Bus 名前空間に必要な TLS の最小バージョンにより、旧バージョンで行われた呼び出しが禁止されることをテストするには、旧バージョンの TLS を使用するようにクライアントを構成します。 特定のバージョンの TLS を使用するようにクライアントを構成する方法の詳細については、「クライアント アプリケーションのトランスポート層セキュリティ (TLS) を構成する」を参照してください。

名前空間に構成されている最小 TLS バージョンを満たしていない TLS バージョンを使用して、クライアントによって Service Bus 名前空間にアクセスされた場合、Azure Service Bus からエラー コード 401 (未承認) と、使用された TLS バージョンにはこの Service Bus 名前空間に対する要求を行うことが許可されていないことを示すメッセージが返されます。

注意

Service Bus 名前空間の最小 TLS バージョンを構成すると、その最小バージョンがアプリケーション層で適用されます。 プロトコル層で TLS のサポートを確認しようとするツールは、Service Bus 名前空間エンドポイントに対して直接実行された場合、最低限必要なバージョンに加えて、TLS バージョンを返す場合があります。

次のステップ

詳細については、以下のドキュメントを参照してください。