DNSSEC を使用して Azure パブリック DNS ゾーンに署名する方法 (プレビュー)
[アーティクル] 2024/11/01
1 人の共同作成者
フィードバック
この記事の内容
前提条件
DNSSEC でゾーンに署名する
次のステップ
この記事では、ドメイン ネーム システム セキュリティ拡張機能 (DNSSEC) を使用して DNS ゾーンに署名する方法について説明します。
ゾーンから DNSSEC 署名を削除するには、「Azure パブリック DNS ゾーンの署名を削除する方法 」を参照してください。
注意
DNSSEC ゾーン署名は現在プレビュー段階です。
ベータ版、プレビュー版、または一般提供としてまだリリースされていない Azure の機能に適用される法律条項については、「Microsoft Azure プレビューの追加使用条件 」を参照してください。
この DNSSEC プレビューは、プレビューに登録する必要なく提供されます。 Azure PowerShell または Azure CLI を使用してゾーン署名または署名削除するために、Cloud Shell を使用できます。 Azure portal を使用したゾーンへの署名は、次回のポータル更新で利用できるようになります。
DNS ゾーンは、Azure パブリック DNS によってホストされている必要があります。 詳細については、DNS ゾーンの管理 に関するページを参照してください。
親 DNS ゾーンは DNSSEC で署名されている必要があります。 ほとんどの主要な最上位レベルのドメイン (.com、.net、.org) は既に署名済みです。
DNSSEC で DNS ゾーンを保護するには、まずゾーンに署名する必要があります。 ゾーン署名プロセスは委任署名者 (DS) レコードを作成し、それを親ゾーンに追加する必要があります。
Azure portal を使用して DNSSEC でゾーンに署名するには、次の操作を行います。
Azure portal のホーム ページで「DNS ゾーン 」を検索して選択します。
DNS ゾーンを選択し、ゾーンの [概要] ページから [DNSSEC] を選択します。 [DNSSEC] は、上部のメニューから選択するか、 [DNS 管理] の下で選択します。
[DNSSEC を有効にする] チェック ボックスをオンにします。
DNSSEC を有効にするかどうかの確認を求められたら、[OK] を選択します。
ゾーン署名が完了するまで待ちます。 ゾーンが署名された後、表示される 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 署名されました。
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 レコードを親ゾーンの所有者に送信し、そのゾーンに追加するように指示します。