DNSSEC を使用して Azure パブリック DNS ゾーンに署名する方法
[アーティクル] 02/06/2025
1 人の共同作成者
フィードバック
この記事の内容
この記事では、ドメイン ネーム システム セキュリティ拡張機能 (DNSSEC) を使用して DNS ゾーンに署名する方法について説明します。
ゾーンから DNSSEC 署名を削除するには、「Azure パブリック DNS ゾーンの署名を削除する方法 」を参照してください。
前提条件
DNS ゾーンは、Azure パブリック DNS によってホストされている必要があります。 詳細については、DNS ゾーンの管理 に関するページを参照してください。
親 DNS ゾーンは DNSSEC で署名されている必要があります。 ほとんどの主要な最上位レベルのドメイン (.com、.net、.org) は既に署名済みです。
DNSSEC でゾーンに署名する
DNSSEC で DNS ゾーンを保護するには、まずゾーンに署名する必要があります。 ゾーン署名プロセスは委任署名者 (DS) レコードを作成し、それを親ゾーンに追加する必要があります。
Azure portal を使用して DNSSEC でゾーンに署名するには、次の操作を行います。
Azure portal のホーム ページで「DNS ゾーン 」を検索して選択します。
DNS ゾーンを選択し、ゾーンの [概要] ページから [DNSSEC] を選択します。
[DNSSEC] は、上部のメニューから選択するか、 [DNS 管理] の下で選択します。
[DNSSEC を有効にする] チェック ボックスをオンにします。
DNSSEC を有効にするかどうかの確認を求められたら、[OK] を選択します。
ゾーン署名が完了するまで待ちます。 ゾーンが署名された後、表示される DNSSEC 委任情報 を確認してください。 次の状態に注意してください: 署名されているが委任されていない 。
Note
Azure ネットワーク構成で委任チェックが許可されていない場合、ここで示した委任メッセージは抑制されます。 この場合は、パブリック DNSSEC デバッガー を使用して委任の状態を確認できます。
委任情報をコピーし、それを使用して親ゾーンに DS レコードを作成します。
親ゾーンが最上位レベルのドメイン (.com
など) である場合、レジストラーで DS レコードを追加する必要があります。 各レジストラーには独自のプロセスがあります。 レジストラーでは、Key Tag、Algorithm、Digest Type、Key Digest などの値が要求される場合があります。 こちらに示す例では、これらの値は次のようになります。
Key Tag : 4535
Algorithm : 13
Digest Type : 2
Digest : 7A1C9811A965C46319D94D1D4BC6321762B632133F196F876C65802EC5089001
DS レコードをレジストラーに提供すると、レジストラーは DS レコードを最上位レベルのドメイン (TLD) ゾーンなどの親ゾーンに追加します。
親ゾーンを所有している場合は、親ゾーンに直接 DS レコードを追加できます。 次の例は、両方のゾーンが Azure パブリック DNS を使用してホストされている場合に、子ゾーン secure.adatum.com の DS レコードを DNS ゾーン adatum.com に追加する方法を示しています。
親ゾーンを所有していない場合は、DS レコードを親ゾーンの所有者に送信し、そのゾーンに追加するように指示してください。
DS レコードが親ゾーンにアップロードされたら、ゾーンの [DNSSEC 情報] ページを選択し、[署名済みかつ委任確立済み] と表示されていることを確認します。 これで DNS ゾーンは完全に DNSSEC 署名されました。
Note
Azure ネットワーク構成で委任チェックが許可されていない場合、ここで示した委任メッセージは抑制されます。 この場合は、パブリック DNSSEC デバッガー を使用して委任の状態を確認できます。
Azure CLI を使用してゾーンに署名します。
# Ensure you are logged in to your Azure account
az login
# Select the appropriate subscription
az account set --subscription "your-subscription-id"
# Enable DNSSEC for the DNS zone
az network dns dnssec-config create --resource-group "your-resource-group" --zone-name "adatum.com"
# Verify the DNSSEC configuration
az network dns dnssec-config show --resource-group "your-resource-group" --zone-name "adatum.com"
委任情報を取得し、それを使用して親ゾーンに DS レコードを作成します。
DS レコード情報を表示するために、次の Azure CLI コマンドを使用できます。
az network dns zone show --name "adatum.com" --resource-group "your-resource-group" | jq '.signingKeys[] | select(.delegationSignerInfo != null) | .delegationSignerInfo'
サンプル出力:
{
"digestAlgorithmType": 2,
"digestValue": "0B9E68FC1711B4AC4EC0FCE5E673EDB0AFDC18F27EA94861CDF08C7100EA776C",
"record": "26767 13 2 0B9E68FC1711B4AC4EC0FCE5E673EDB0AFDC18F27EA94861CDF08C7100EA776C"
}
また、次のコマンド ラインで dig.exe を使用して DS 情報を取得することもできます。
dig adatum.com DS +dnssec
サンプル出力:
;; ANSWER SECTION:
adatum.com. 86400 IN DS 26767 13 2 0B9E68FC1711B4AC4EC0FCE5E673EDB0AFDC18F27EA94861CDF08C71 00EA776C
これらの例では、DS の値は次のようになります。
Key Tag: 26767
Algorithm: 13
Digest Type: 2
Digest: 0B9E68FC1711B4AC4EC0FCE5E673EDB0AFDC18F27EA94861CDF08C7100EA776C
親ゾーンが最上位レベルのドメイン (.com
など) である場合、レジストラーで DS レコードを追加する必要があります。 各レジストラーには独自のプロセスがあります。
親ゾーンを所有している場合は、親ゾーンに直接 DS レコードを追加できます。 次の例は、両方のゾーンが署名され、Azure パブリック DNS を使用してホストされている場合に、子ゾーン secure.adatum.com の DS レコードを DNS ゾーン adatum.com に追加する方法を示しています。
az network dns record-set ds add-record --resource-group "your-resource-group" --zone-name "adatum.com" --record-set-name "secure" --key-tag <key-tag> --algorithm <algorithm> --digest <digest> --digest-type <digest-type>
親ゾーンを所有していない場合は、DS レコードを親ゾーンの所有者に送信し、そのゾーンに追加するように指示してください。
次の PowerShell を使用してゾーンに署名し、検証します。
# Connect to your Azure account (if not already connected)
Connect-AzAccount
# Select the appropriate subscription
Select-AzSubscription -SubscriptionId "your-subscription-id"
# Enable DNSSEC for the DNS zone
New-AzDnsDnssecConfig -ResourceGroupName "your-resource-group" -ZoneName "adatum.com"
# Verify the DNSSEC configuration
Get-AzDnsDnssecConfig -ResourceGroupName "your-resource-group" -ZoneName "adatum.com"
委任情報を取得し、それを使用して親ゾーンに DS レコードを作成します。
Get-AzDnsDnssecConfig -ResourceGroupName "dns-rg" -ZoneName "adatum.com" | Select-Object -ExpandProperty SigningKey | Select-Object -ExpandProperty delegationSignerInfo
出力例:
DigestAlgorithmType DigestValue Record
------------------- ----------- ------
2 0B9E68FC1711B4AC4EC0FCE5E673EDB0AFDC18F27EA94861CDF08C7100EA776C 26767 13 2 0B9E68FC1711B4AC4EC0FCE5E673EDB0AFDC18F27EA94861CDF08C7100EA776C
これらの例では、DS の値は次のようになります。
Key Tag: 26767
Algorithm: 13
Digest Type: 2
Digest: 0B9E68FC1711B4AC4EC0FCE5E673EDB0AFDC18F27EA94861CDF08C7100EA776C
親ゾーンが最上位レベルのドメイン (.com
など) である場合、レジストラーで DS レコードを追加する必要があります。 各レジストラーには独自のプロセスがあります。
親ゾーンを所有している場合は、親ゾーンに直接 DS レコードを追加できます。 次の例は、両方のゾーンが署名され、Azure パブリック DNS を使用してホストされている場合に、子ゾーン secure.adatum.com の DS レコードを DNS ゾーン adatum.com に追加する方法を示しています。
<key-tag>、<algorithm>、<digest>、<digest-type> を以前クエリを実行した DS レコードの適切な値に置き換えます。
$dsRecord = New-AzDnsRecordConfig -DnsRecordType DS -KeyTag <key-tag> -Algorithm <algorithm> -Digest <digest> -DigestType <digest-type>
New-AzDnsRecordSet -ResourceGroupName "dns-rg" -ZoneName "adatum.com" -Name "secure" -RecordType DS -Ttl 3600 -DnsRecords $dsRecord
親ゾーンを所有していない場合は、DS レコードを親ゾーンの所有者に送信し、そのゾーンに追加するように指示します。
次のステップ