外部DNSSECキーの設定(APIのみ)

IBM® NS1 Connect® 、外部DNSSEC公開鍵(DNSKEYレコード)を構成して、DNSSECと複数のDNSベンダーで高度な機能を使用します。

複数のDNSプロバイダーを利用している組織にとって、DNSSECの導入は大きな課題となります。 多くの場合、異なるDNSプロバイダーは、事前割り当てができないカスタムDNS応答や、トラフィック管理へのアプローチに基づくDNSSEC署名の実装におけるプロバイダー固有の方法など、特定の動作をサポートしています。

NS1 Connect APIを使用すると、DNSKEYレコードを使用するゾーンに複数の 外部DNSSEC鍵セットを追加することができる。 例えば、ゾーンを提供する IBM NS1 Connect 以外の各DNSプロバイダーに1つのDNSSEC鍵セットを作成する。

NS1 Connect 、DNSSECオンライン署名を有効にすると、DNSKEYレコードが 自動的に生成され、鍵署名鍵(KSK)とゾーン署名鍵(ZSK)がゾーンが公開される各ネットワークに 付与される。 APIを使用して外部DNSSECキーセットを追加すると、各DNSSECキーがDNSKEYレコードに新しいアンサーとして追加されます。

注: DNSKEYレコードの回答は、DNSSECのキーセットのグループ分けを反映していないため、すべてのキーがフラットなリストに表示されます。 作成したDNSSECの異なるキーセットを確認するには、 GET 宛てに /v1/zones/{zone_name}/dnssec/external_keys にリクエストを送信してください。

準備

  • DNS関連の書き込み権限を持つ有効な NS1 Connect APIキーが必要です。
  • ゾーンでDNSSECを有効にしないと、外部DNSSECキーの設定が無視されます。

dnskey オブジェクト

APIを使用すると、1つまたは複数の外部DNSSECキーを dnskey オブジェクトとして追加することができます。このオブジェクトには、DNSKEY形式の1つまたは複数の公開鍵の詳細が含まれています。 DNSSEC キーセットの作成または変更を行うために、 PUT および POST メソッドのリクエストボディにこのオブジェクトを含めます。

ゾーン内に複数の外部DNSSECキーセットを持つことは可能ですが、1セットずつ作成する必要があります。 例えば、 NS1 Connect 以外の各プロバイダに対応する DNSSEC鍵セットを1つ作成し、そのプロバイダがゾーンデータに署名する ために使用する1つまたは複数の鍵を指定することができる。 外部DNSSECキーをグループ化する方法は、お客様次第です。

次の例は、DNSSEC 鍵のセットを作成または変更する際にリクエストボディに含める必要がある dnskey オブジェクトを示しています。

{
    "dnskey": {
        "ttl": 1200,
        "data": [
            {
                "flags": 256,
                "protocol": 3,
                "algorithm": 13,
                "public_key": "58MeBmjs+4Ry0L+DzBCKR8Y7iQnnj9mCJBvZU7uVRYJ8htKi03lKXs6YySLDSxUMk31TgWPclYc88Z2FUDuI2Q=="
            },
            {
                "flags": 257,
                "protocol": 3,
                "algorithm": 13,
                "public_key": "7LvMDsyZV9qy/vCzPuATbLPA5vqNmbHclp13zIDRQQiQNeBOcsS9WIaJmY+j2ZPEELz8RGq32y85K/YUgUMm2g=="
            }
        ]
    }
}

dnskey オブジェクト内で、キーセットのタイム・トゥ・ライブ( ttl )値(秒単位)を指定することができます。 data 配列には1つ以上のオブジェクトが含まれ、配列内の各オブジェクトは1つのDNSSECキーに対応します。 DNSSEC キーごとに、以下のパラメータを含める必要があります

表 1. DNSKEY オブジェクトの詳細
パラメーター 説明
flags 整数 DNSSECの鍵の種類。 NS1 Connect は、 256 (ZSK用)と 257 (KSK用)の2つの値をサポートしている。
protocol 整数 DNSSEC キーを指定するには、この値 を3 に設定します。
algorithm 整数 DNSSECの鍵アルゴリズムを示す16ビット符号なし整数。 NS1 Connect13ECDSA-P256-SHA256 )をサポートしている。
注: 13 以外のアルゴリズムを指定することは任意であり、特定のシナリオでは検証エラーが発生する可能性があります。
public_key (文字列) Base64 エンコーディングの公開鍵。

外部DNSSEC鍵セットの作成

APIを使用すると、ゾーン内に1つまたは複数のDNSSEC鍵セットを作成することができます。 例えば、各DNSプロバイダーごとに1つのキーセットを作成することができます。 dnskey オブジェクトをリクエストボディに含めることに加え、以下の URL パスパラメータも指定する必要があります

表 2. DNSKEY オブジェクトの詳細
パラメーター 説明
{zone_name} 整数 DNSSECの鍵の種類。 NS1 Connect は、 256 (ZSK用)と 257 (KSK用)の2つの値をサポートしている。
{key_set_name} 整数 DNSSEC キーを指定するには、この値を3 に設定します。

次の例の PUT リクエストは、2つのDNSSECキー(つまり、 data 配列内の2つのオブジェクト)を持つ新しいDNSSECキーセットを作成します。

curl -X PUT -H "X-NSONE-Key: $NSONE_API_KEY" https://api.nsone.net/v1/zones/{zone_name}/dnssec/external_keys/{key_set_name} -d '{
    "dnskey": {
        "ttl": 1200,
        "data": [
            {
                "flags": 256,
                "protocol": 3,
                "algorithm": 13,
                "public_key": "58MeBmjs+4Ry0L+DzBCKR8Y7iQnnj9mCJBvZU7uVRYJ8htKi03lKXs6YySLDSxUMk31TgWPclYc88Z2FUDuI2Q=="
            },
            {
                "flags": 257,
                "protocol": 3,
                "algorithm": 13,
                "public_key": "7LvMDsyZV9qy/vCzPuATbLPA5vqNmbHclp13zIDRQQiQNeBOcsS9WIaJmY+j2ZPEELz8RGq32y85K/YUgUMm2g=="
            }
        ]
    }
}'

NS1 Connect プラットフォーム上でDNSSECキーセットを構成した後、他のDNSプロバイダープラットフォーム内でこのプロセスを繰り返す必要がある場合があります。

外部DNSSECキーセットの詳細を表示

ゾーン内のすべてのDNSSECキーセットの詳細を表示したり、 {key_set_name} クエリパラメータを設定して、個々のキーセットの詳細を返す応答をフィルタリングすることができます。

curl -X GET -H "X-NSONE-Key: $NSONE_API_KEY" https://api.nsone.net/v1/zones/{zone_name}/dnssec/external_keys/{key_set_name}

外部DNSSECキーセットを変更する

NS1 Connect APIを使用すると、外部DNSSEC鍵セットのデータを編集し、そのセット内の鍵を追加、削除、更新することができる。 ゾーン名と、 URL パスで設定した DNSSEC キーの名前を指定する。 既存のDNSSECキーセットの名前を変更することはできません。

次の例の POST リクエストは、ゾーン内の既存のDNSSECキーセットデータを変更します。

curl -X POST -H "X-NSONE-Key: $NSONE_API_KEY" https://api.nsone.net/v1/zones/{zone_name}/dnssec/external_keys/{key_set_name} -d '{
    "dnskey": {
        "ttl": 1200,
        "data": [
            {
                "flags": 256,
                "protocol": 3,
                "algorithm": 13,
                "public_key": "58MeBmjs+4Ry0L+DzBCKR8Y7iQnnj9mCJBvZU7uVRYJ8htKi03lKXs6YySLDSxUMk31TgWPclYc88Z2FUDuI2Q==string"
            },
            {
                "flags": 257,
                "protocol": 3,
                "algorithm": 13,
                "public_key": "7LvMDsyZV9qy/vCzPuATbLPA5vqNmbHclp13zIDRQQiQNeBOcsS9WIaJmY+j2ZPEELz8RGq32y85K/YUgUMm2g==string"
            }
        ]
    }
}'

外部DNSSECキーへの変更は即座に反映されます。

外部DNSSECキーセットを削除する

外部DNSSECキーセットを削除するには、 URL のパスにゾーン名とDNSSECキーセット名を指定します。

注: 可能な場合は、外部キーセットを削除して再作成するのではなく、既存の外部キーセットを更新してください。 それ以外の場合は、新しい名前でキーセット( PUT リクエスト)を再作成し、その後、古いキーセットを削除します。
curl -X DELETE -H "X-NSONE-Key: $NSONE_API_KEY" https://api.nsone.net/v1/zones/{zone_name}/external_keys/{key_set_name}
注意: レジストラでゾーンがDNSSEC対応になっている場合、他のプロバイダーが使用しているキーを削除しないでください。