Azure SQL の接続設定
[アーティクル]
08/07/2023
23 人の共同作成者
フィードバック
この記事の内容
適用対象: Azure SQL データベース Azure Synapse Analytics (専用 SQL プールのみ)
この記事では、Azure SQL Database のサーバーと、Azure Synapse Analytics の専用 SQL プール (以前の SQL DW) への接続を制御する設定について説明します。 これらの設定は、このサーバーに関連するすべての SQL Database と専用 SQL プール (以前の SQL DW) データベースに適用されます。
これらの設定は、お使いの論理サーバー の [ネットワーク] タブから変更できます。
重要
この記事は、Azure SQL Managed Instance には適用されません。 この記事は、Azure Synapse Analytics ワークスペースの専用 SQL プールにも適用されません。 ワークスペースを使用する Azure Synapse Analytics のために IP ファイアウォール規則を構成する方法のガイダンスについては、「Azure Synapse Analytics の IP ファイアウォール規則 」を参照してください。
パブリック ネットワーク アクセスの拒否
[パブリック ネットワーク アクセス] 設定の既定値は [無効] です。 ネットワーク アクセスの概要 に記載されているように、お客様はデータベースへの接続に、パブリック エンドポイント (IP ベースのサーバー レベルのファイアウォール規則、または仮想ネットワークのファイアウォール規則を使用) またはプライベート エンドポイント (Azure Private Link を使用) のいずれかを使用できます。
[パブリック ネットワーク アクセス] が [無効] に設定されている場合は、プライベート エンドポイントからの接続のみが許可されます。 パブリック エンドポイントからの接続はすべて拒否され、次のようなエラー メッセージが表示されます。
Error 47073
An instance-specific error occurred while establishing a connection to SQL Server.
The public network interface on this server is not accessible.
To connect to this server, use the Private Endpoint from inside your virtual network.
[パブリック ネットワーク アクセス] を [無効] に設定すると、ファイアウォール規則の追加、削除、編集を行おうとする試みはすべて拒否され、次のようなエラー メッセージが表示されます。
Error 42101
Unable to create or modify firewall rules when public network interface for the server is disabled.
To manage server or database level firewall rules, please enable the public network interface.
Azure SQL Database と Azure Synapse Analytics のファイアウォール規則を追加、削除、または編集できるようにするには、[パブリック ネットワーク アクセス] が [選択されたネットワーク] に設定されている必要があります。
パブリック ネットワーク アクセスの変更
パブリック ネットワーク アクセスは、Azure portal、Azure PowerShell、Azure CLI を使用して変更できます。
データベースをホストしている論理サーバーに対してパブリック ネットワーク アクセスを有効にするには、Azure portal の [ネットワーク] ページに移動し、[パブリック アクセス] タブを選択し、[パブリック ネットワーク アクセス] を [ネットワークの選択] に設定します。
このページで、仮想ネットワーク規則を追加したり、パブリック エンドポイントのファイアウォール規則を構成したりすることができます。
[プライベート アクセス] タブを選択して、プライベート エンドポイント を構成します。
注意
これらの設定は、適用後すぐに有効になります。 各設定の要件を満たしていない場合、顧客の接続が失われるおそれがあります。
Azure PowerShell を使用してパブリック ネットワーク アクセスを変更することができます。
重要
Azure SQL データベースでは、PowerShell Azure Resource Manager モジュールが引き続きサポートされていますが、今後の開発はすべて Az.Sql モジュールを対象に行われます。 これらのコマンドレットについては、「AzureRM.Sql 」を参照してください。 Az モジュールと AzureRm モジュールのコマンドの引数は実質的に同じです。 次のスクリプトは Azure PowerShell モジュールを必要とします。
次の PowerShell スクリプトは、パブリック ネットワーク アクセス プロパティをサーバー レベルで Get
および Set
する方法を示しています。
# Get the Public Network Access property
(Get-AzSqlServer -ServerName sql-server-name -ResourceGroupName sql-server-group).PublicNetworkAccess
# Update Public Network Access to Disabled
$SecureString = ConvertTo-SecureString "password" -AsPlainText -Force
Set-AzSqlServer -ServerName sql-server-name -ResourceGroupName sql-server-group -SqlAdministratorPassword $SecureString -PublicNetworkAccess "Disabled"
Azure CLI を使用してパブリック ネットワーク設定を変更できます。
次の CLI スクリプトは、Bash シェルでのパブリック ネットワーク アクセス 設定の変更方法を示しています。
# Get current setting for Public Network Access
az sql server show -n sql-server-name -g sql-server-group --query "publicNetworkAccess"
# Update setting for Public Network Access
az sql server update -n sql-server-name -g sql-server-group --set publicNetworkAccess="Disabled"
TLS の最小バージョン
最小トランスポート層セキュリティ (TLS) バージョン設定を使用すると、顧客が自身の SQL データベースで使用する TLS のバージョンを選択することができます。 最小 TLS バージョンは、Azure portal、Azure PowerShell、Azure CLI を使用して変更することができます。
現在、TLS 1.0、1.1、1.2 がサポートされています。 最小 TLS バージョンを設定すると、それより新しい TLS バージョンは確実にサポートされます。 たとえば、TLS バージョン 1.1 を選択した場合、TLS 1.1 と 1.2 を使用した接続のみが受け入れられ、TLS 1.0 を使用した接続は拒否されます。 アプリケーションでサポートされているかどうかをテストした後、最小 TLS バージョンを 1.2 に設定することをお勧めします。 このバージョンには、以前のバージョンの脆弱性に対する修正プログラムが含まれており、Azure SQL Database でサポートされている TLS の最上位バージョンです。
重要
最小 TLS バージョンの既定値は、すべてのバージョンを許可することです。 TLS のバージョンを適用した後で既定値に戻すことはできません。
以前のバージョンの TLS に依存するアプリケーションを使用しているお客様には、アプリケーションの要件に従って最小 TLS バージョンを設定することをお勧めします。 アプリケーションの要件がわからない場合、または保守されなくなった古いドライバーにワークロードが依存している場合は、TLS の最小バージョンを設定しないことをお勧めします。
詳細については、「SQL Database の接続に関する TLS の考慮事項 」を参照してください。
最小 TLS バージョンを設定すると、サーバーの最小 TLS バージョンより低い TLS バージョンを使用しているお客様からのログイン試行は、次のエラーで失敗します。
Error 47072
Login failed with invalid TLS version
注意
最小 TLS バージョンを構成すると、その最小バージョンがアプリケーション層で適用されます。 プロトコル層で TLS のサポートを確認しようとするツールは、SQL Database エンドポイントに対して直接実行された場合、最低限必要なバージョンに加えて、TLS バージョンを返す場合があります。
Azure portal で SQL Server リソースにアクセスします。 [セキュリティ] 設定で [ネットワーク] を選択し、[接続] タブを選択します。サーバーに関連付けられているすべてのデータベースに必要な [最小 TLS バージョン] を選択し、[保存] を選択します。
Azure PowerShell を使用して、最小 TLS バージョンを変更できます。
重要
Azure SQL データベースでは、PowerShell Azure Resource Manager モジュールが引き続きサポートされていますが、今後の開発はすべて Az.Sql モジュールを対象に行われます。 これらのコマンドレットについては、「AzureRM.Sql 」を参照してください。 Az モジュールと AzureRm モジュールのコマンドの引数は実質的に同じです。 次のスクリプトは Azure PowerShell モジュールを必要とします。
次の PowerShell スクリプトは、最少 TLS バージョン プロパティを論理サーバー レベルで Get
および Set
する方法を示しています。
# Get the Minimal TLS Version property
(Get-AzSqlServer -ServerName sql-server-name -ResourceGroupName sql-server-group).MinimalTlsVersion
# Update Minimal TLS Version to 1.2
$SecureString = ConvertTo-SecureString "password" -AsPlainText -Force
Set-AzSqlServer -ServerName sql-server-name -ResourceGroupName sql-server-group -SqlAdministratorPassword $SecureString -MinimalTlsVersion "1.2"
Azure CLI を使用して最小 TLS 設定を変更できます。
次の CLI スクリプトは、Bash シェルでの最少 TLS バージョン の変更方法を示しています。
# Get current setting for Minimal TLS Version
az sql server show -n sql-server-name -g sql-server-group --query "minimalTlsVersion"
# Update setting for Minimal TLS Version
az sql server update -n sql-server-name -g sql-server-group --set minimalTlsVersion="1.2"
接続ポリシーを変更する
お客様が Azure SQL Database に接続する方法は、接続ポリシー によって決まります。
接続ポリシーは、Azure portal、Azure PowerShell、Azure CLI を使用して変更することができます。
Azure portal を使用して、論理サーバーの接続ポリシーを変更できます。
Azure portal で SQL Server リソースにアクセスします。 [セキュリティ] 設定で [ネットワーク] を選択し、[接続] タブを選択します。目的の接続ポリシーを選択し、[保存] を選択します。
Azure PowerShell を使用して、論理サーバーの接続ポリシーを変更できます。
重要
Azure SQL データベースでは、PowerShell Azure Resource Manager モジュールが引き続きサポートされていますが、今後の開発はすべて Az.Sql モジュールを対象に行われます。 これらのコマンドレットについては、「AzureRM.Sql 」を参照してください。 Az モジュールと AzureRm モジュールのコマンドの引数は実質的に同じです。 次のスクリプトは Azure PowerShell モジュールを必要とします。
次の PowerShell スクリプトは、PowerShell を使用して接続ポリシーを変更する方法を示しています。
# Get SQL Server ID
$sqlserverid=(Get-AzSqlServer -ServerName sql-server-name -ResourceGroupName sql-server-group).ResourceId
# Set URI
$id="$sqlserverid/connectionPolicies/Default"
# Get current connection policy
(Get-AzResource -ResourceId $id -ApiVersion 2014-04-01 -Verbose).Properties.ConnectionType
# Update connection policy
Set-AzResource -ResourceId $id -Properties @{"connectionType" = "Proxy"} -f
Azure CLI を使用して、論理サーバーの接続ポリシーを変更できます。
Bash シェルでの Azure CLI
次の CLI スクリプトは、Bash シェルでの接続ポリシーの変更方法を示しています。
# Get SQL Server ID
sqlserverid=$(az sql server show -n sql-server-name -g sql-server-group --query 'id' -o tsv)
# Set URI
ids="$sqlserverid/connectionPolicies/Default"
# Get current connection policy
az resource show --ids $ids
# Update connection policy
az resource update --ids $ids --set properties.connectionType=Proxy
Windows のコマンド プロンプトからの Azure CLI
次の CLI スクリプトは、(Azure CLI がインストールされている場合に) Windows コマンド プロンプトから接続ポリシーを変更する方法を示しています。
# Get SQL Server ID and set URI
FOR /F "tokens=*" %g IN ('az sql server show --resource-group myResourceGroup-571418053 --name server-538465606 --query "id" -o tsv') do (SET sqlserverid=%g/connectionPolicies/Default)
# Get current connection policy
az resource show --ids %sqlserverid%
# Update connection policy
az resource update --ids %sqlserverid% --set properties.connectionType=Proxy
次のステップ
Azure SQL Database で接続がどのように機能するかに関する概要については、接続のアーキテクチャ に関するページを参照してください。
サーバーの接続ポリシーの変更方法については、「conn-policy 」を参照してください。