26
1 NTT Communications Cloudⁿ DNS API マニュアル Ver.1.0 本冊子掲載の内容の二次配布(配布・転載・提供等)は、ご遠慮ください。

NTT Communications Cloudⁿ DNS API マニュアルinfo.cloudn-service.com/.../JP/ejp/dns_ejp_api_manual.pdf · 2013-09-09 · ダイナミックdnsサービス ダイナミックdnsサービスとして、ホストゾーンの作成・編集・削除、その中に含まれるリソ

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: NTT Communications Cloudⁿ DNS API マニュアルinfo.cloudn-service.com/.../JP/ejp/dns_ejp_api_manual.pdf · 2013-09-09 · ダイナミックdnsサービス ダイナミックdnsサービスとして、ホストゾーンの作成・編集・削除、その中に含まれるリソ

1

NTT Communications

Cloudⁿ

DNS API マニュアル

Ver.1.0

本冊子掲載の内容の二次配布(配布・転載・提供等)は、ご遠慮ください。

Page 2: NTT Communications Cloudⁿ DNS API マニュアルinfo.cloudn-service.com/.../JP/ejp/dns_ejp_api_manual.pdf · 2013-09-09 · ダイナミックdnsサービス ダイナミックdnsサービスとして、ホストゾーンの作成・編集・削除、その中に含まれるリソ

2

版数 編集日 変更内容

Ver.1.0 2013/03/12 初版作成

Page 3: NTT Communications Cloudⁿ DNS API マニュアルinfo.cloudn-service.com/.../JP/ejp/dns_ejp_api_manual.pdf · 2013-09-09 · ダイナミックdnsサービス ダイナミックdnsサービスとして、ホストゾーンの作成・編集・削除、その中に含まれるリソ

3

2 APIリクエスト方法 P6~ 1) APIリクエストの形式

3 DNSサービスを利用する P9~ 1) DNS情報の作成 2) DNS情報の確認

4 DNS API リファレンス P14~ 1) DNS API一覧 2) DNS API共通情報 3) DNS API (ゾーン操作) 4) DNS API (リソースレコード操作)

目次

1 はじめに P4~ 1) サービスの概要 2) 事前に準備いただくもの

Page 4: NTT Communications Cloudⁿ DNS API マニュアルinfo.cloudn-service.com/.../JP/ejp/dns_ejp_api_manual.pdf · 2013-09-09 · ダイナミックdnsサービス ダイナミックdnsサービスとして、ホストゾーンの作成・編集・削除、その中に含まれるリソ

1-1) サービスの概要

本マニュアルでは、 Cloudn DNSのご利用方法に関してご説明いたします。

Cloudn DNSは、他のCloudnサービスと連携したダイナミックDNSサービスであり、AWS におけるRoute 53サービスに相当します。

Cloudn Load Balancer Advanceと組み合わせることで、可用性の高い大規模なWebサービスを提供することが可能です。

主な提供機能は以下の通りです。 ■ダイナミックDNSサービス

ダイナミックDNSサービスとして、ホストゾーンの作成・編集・削除、その中に含まれるリソースレコードの作成・編集・削除が可能です。

ゾーンとはDNSがドメインを管理する単位で、1ドメインが1ゾーンとなります。 1アカウントにつきホスティング可能なゾーン数の上限は100となります。 リソースレコードとは、DNSへ登録するホスト情報となります。 1ゾーンにつき、リソースレコード数の上限は10,000となります。 1ゾーンに対し、1か月当たりのクエリ数上限は100万です。加重ラウンドロビン(Weighted

Round-robin)には対応していません。 レイテンシーベースルーティング(Latency Based Routing)には対応していません。 Zone Apexには対応していません。ただし、AWS Route53 API互換のエイリアスターゲット

指定機能により、Cloudn Load Balancer Advanceで自動的に付与されたDNS名をホスト名+ドメイン名(例:www.example.com)にマップすることができます。

ワイルドカードエントリをサポートします。 サポートするリソースレコードタイプは下記のとおりです。

• A • AAAA • CNAME • MX • NS

■Amazon Route 53 互換

Amazon Route 53 API互換のAPIを提供します。 準拠するAmazon Route 53 APIバージョンは2012-02-29になります。 API経由でゾーンやリソースレコードの作成、更新、削除が可能です。

•PTR •SOA •SPF •SRV •TXT

4

Page 5: NTT Communications Cloudⁿ DNS API マニュアルinfo.cloudn-service.com/.../JP/ejp/dns_ejp_api_manual.pdf · 2013-09-09 · ダイナミックdnsサービス ダイナミックdnsサービスとして、ホストゾーンの作成・編集・削除、その中に含まれるリソ

5

1-2) 事前に準備いただくもの

Cloundn サービス共通のAPIアクセスキーおよび秘密鍵

Cloundn ポータルにて、DNS API利用に必要な「サービス共通」のAPIアクセスキー、および秘密鍵をご確認下さい。確認方法については、「Cloundn ポータル操作マニュアル」 の「3-3) APIアクセスキー・秘密鍵を管理する」を参照下さい。

DNSサービスの利用開始

Cloundn ポータルより、DNSサービスの利用を開始して下さい。サービスの利用開始方法については、「Cloundn ポータル操作マニュアル」の「3-1) サービスの利用を開始する」を参照下さい。

Cloundn DNS APIをご利用頂くにあたっては、以下のご準備をお願いします。

Page 6: NTT Communications Cloudⁿ DNS API マニュアルinfo.cloudn-service.com/.../JP/ejp/dns_ejp_api_manual.pdf · 2013-09-09 · ダイナミックdnsサービス ダイナミックdnsサービスとして、ホストゾーンの作成・編集・削除、その中に含まれるリソ

6

API リクエストの生成方法を解説します。

DNSサービスのリクエストは、REST形式となります。例えば、本サービスによって管理するゾーンの一覧を取得する、”ListHostedZone” API リクエストは、以下のようになります。

2-1) APIリクエストの形式

1

本サービスでは、DNSサービスのゾーンの作成、削除、ならびに、リソースレコードの作成、削除を行うためのAPIを提供しています。

APIを使用することで、お客様のプログラムから直接リソースを操作することが可能です。また、本APIはAmazonWebService Route53互換API(2012-02-29 Version)です。なお、サービスを利用するための接続先URLである、API Server(endpoint) URLは以下の通りです。

API server (endpoint) URL : https://dns-api.jp-e1.cloudn-service.com/

GET/2012-02-29/hostedzone HTTP/1.1

date: Fri, 08 Mar 2013 10:47:41 GMT

X-Amzn-Authorization: AWS3-HTTPS AWSAccessKeyId=key,Algorithm=HmacSHA1,Signature=s1gnAture

host: dns-api.jp-e1.cloudn-service.com

以下、上記のリクエストを例に、Cloudⁿ DNS APIへのリクエストの生成方法を解説します。

Cloudⁿ DNS APIのリクエスト形式は、一般的なHTTPのリクエストと同様に、

Request Mehtod Path(?query string) Protocol Version

(Header)

(Header)

(…)

(Body)

となります。

API リクエストの認証が必要となるため、HTTPリクエストに認証値を含める必要があります。Cloudn DNS APIリクエストの認証には、リクエストに“X-Amzn-Authorization”拡張HTTPヘッダーを用います。

API リクエスト・レスポンスは”HTTPS”にて行います。HTTPはサポートされていません。

Page 7: NTT Communications Cloudⁿ DNS API マニュアルinfo.cloudn-service.com/.../JP/ejp/dns_ejp_api_manual.pdf · 2013-09-09 · ダイナミックdnsサービス ダイナミックdnsサービスとして、ホストゾーンの作成・編集・削除、その中に含まれるリソ

7

“X-Amzn-Authorization” 拡張HTTPヘッダーに格納する値(認証値)の書式は以下の通りです。

AWS3-HTTPS AWSAccessKeyId=<アクセスキー>,Algorithm=<署名のアルゴリズム>,Signature=<署名の値>

Cloudⁿ DNS APIのリクエストの認証は、”アクセスキー“と、それと対になる”秘密鍵”によって生成されたKeyed-Hashによる認証値(Keyed-HMAC)によって行われます。

上記の<アクセスキー>には、事前に取得したアクセスキーの値を、署名アルゴリズムにはKeyed-

HMACのアルゴリズムを示す、”HmacSHA256”あるいは、”HmacSHA1”の値を、<署名の値>には、Algorithmで指定した電子署名アルゴリズムを用いてい作成した電子署名をBase64でエンコードした値を含めます。

まず、電子署名の対象に含める文字列を作成します。 Cloudⁿ DNS APIの電子署名の対象に含める値は、UTF-8でエンコードされた”Date” ヘッダーの値になります。なお、”x-amz-date”拡張HTTPヘッダーをリクエストに含めた場合はその値を用います。このことは、リクエストに”Date”もしくは”x-amz-date”は必ず含める必要があることを意味します。

“Date” ヘッダーならびに、”x-amz-date”拡張HTTPヘッダーの書式は、下記の表のいずれかになります。

書式例 strftime(3)での フォーマット 説明

Sun, 06 Nov 1994 08:49:37 GMT "%a, %d %b %Y %R:%S GMT" RFC1123

Sunday, 06-Nov-94 08:49:37 GMT "%A, %d-%b-%y %R:%S GMT" RFC1036

Sun Nov 6 08:49:37 1994 "%a %b %e %R:%S %Y" ANSI C asctime()

“Date”ヘッダーの値(もしくは、x-amz-date拡張HTTPヘッダーの値)が確定したら、電子署名のアルゴリズムを決定します。 Cloudⁿ DNS APIでサポートしているアルゴリズムは次の通りです。

アルゴリズム X-Amzn-Authorizationに含める際の表現

HMAC SHA256 HmacSHA256

HMAC SHA1 HmacSHA1

次に、Signatureに格納する”<署名の値>”の作成方法の作成方法について説明します。

電子署名の作成は、

1. 電子署名対象の文字列の決定

2. 電子署名アルゴリズムの決定

3. 電子署名の作成と、Base64エンコード

のステップで行います。

2-1) APIリクエストの形式

Page 8: NTT Communications Cloudⁿ DNS API マニュアルinfo.cloudn-service.com/.../JP/ejp/dns_ejp_api_manual.pdf · 2013-09-09 · ダイナミックdnsサービス ダイナミックdnsサービスとして、ホストゾーンの作成・編集・削除、その中に含まれるリソ

8

署名対象文字列(Dateもしくは、x-amz-dateヘッダーの値)、に対して、事前に取得した”秘密鍵”と決定したアルゴリズムを用いて電子署名を作成し、作成した電子署名をBase64でエンコードします。

つまり、

署名の値 = Base64( Algorithm((Dateヘッダーの値), “秘密鍵”) )

となります。

“アクセスキー”、”アルゴリズム”、および作成した”署名の値“を、”X-Amzn-Authorization“ヘッダーの所定の位置(下記の例を参照)に配置し、”X-Amzn-Authorization“をリクエストのヘッダーに含めることでリクエストとします。

なお、APIのメソッドによっては、リクエストにBodyにXMLを付与するものもありますが、リクエストの認証に用いる”X-Amzn-Authorization“ヘッダーの生成方法に違いはありません。

2-1) APIリクエストの形式

GET/2012-02-29/hostedzone HTTP/1.1

date: Fri, 08 Mar 2013 10:47:41 GMT

X-Amzn-Authorization: AWS3-HTTPS AWSAccessKeyId=key,Algorithm=HmacSHA1,Signature=s1gnAture

host: dns-api.jp-e1.cloudn-service.com

Page 9: NTT Communications Cloudⁿ DNS API マニュアルinfo.cloudn-service.com/.../JP/ejp/dns_ejp_api_manual.pdf · 2013-09-09 · ダイナミックdnsサービス ダイナミックdnsサービスとして、ホストゾーンの作成・編集・削除、その中に含まれるリソ

9

Cloudⁿ DNS APIを利用したCloudⁿ DNSサービスの利用の流れを示します。Cloudⁿ DNS APIを利用した基本的な作業の流れは、

POST /2012-02-29/hostedzone HTTP/1.1

date: Mon, 11 Mar 2013 10:33:58 GMT

x-amzn-authorization: AWS3-HTTPS

AWSAccessKeyId=Samp1eKey,Algorithm=HmacSHA256,Signature=Sy0me1des4u

host: dns-api.jp-e1.cloudn-service.com

content-length: 283

<CreateHostedZoneRequest>

<Name>example.com</Name>

<CallerReference>0caaf24ab1a0c33440c06afe99df986365b0781f</CallerReference>

<HostedZoneConfig>

<Comment>'example.com' is created at 'Mon, 11 Mar 2013 10:33:58 GMT'</Comment>

</HostedZoneConfig>

</CreateHostedZoneRequest>

1. Cloudⁿ DNS APIを利用した情報の作成・登録

2. Cloudⁿ DNS APIを利用した登録状況の確認

ここでは、”example.com”というゾーンを作成・登録し、SOAレコードの確認までの流れを紹介します。

ゾーンを作成する際に利用するAPI メソッドは、”CreateHostedZone”でBodyにXMLを付与し、前述の方法で、作成した、“X-Amzn-Authorization” ヘッダーを挿入して、HTTPの”POST” メソッドを用いてリクエストを発行します。(詳細は、「DNS API リファレンス」参照)

リクエストの全体像は、以下のようになります。

3-1) DNS情報を登録する

Header

Body部(XML)

Page 10: NTT Communications Cloudⁿ DNS API マニュアルinfo.cloudn-service.com/.../JP/ejp/dns_ejp_api_manual.pdf · 2013-09-09 · ダイナミックdnsサービス ダイナミックdnsサービスとして、ホストゾーンの作成・編集・削除、その中に含まれるリソ

10

リクエストが正常に受け付けられると、以下の様なレスポンスが返されます。

date: Mon, 11 Mar 2013 10:33:07 GMT

etag: "e48aa57343bdb5a3a15fbe1f4f2aaab6"

cache-control: max-age=0, private, must-revalidate

x-request-id: 29575845f3c8044cf10a138db37a7c6b

x-runtime: 0.030656

x-rack-cache: invalidate, pass

x-frame-options: SAMEORIGIN

status: 201

content-length: 998

connection: close

content-type: text/xml; charset=utf-8

<?xml version="1.0" encoding="UTF-8"?>

<CreateHostedZoneResponse xmlns="https://route53.amazonaws.com/doc/2012-02-29/">

<HostedZone>

<Id>/hostedzone/99E9999999999</Id>

<Name>example.com</Name>

<CallerReference>0caaf24ab1a0c33440c06afe99df986365b0781f</CallerReference>

<Config>

<Comment>example.com is created at Mon, 11 Mar 2013 10:33:04 GMT</Comment>

</Config>

<ResourceRecordSetCount>2</ResourceRecordSetCount>

</HostedZone>

<ChangeInfo>

<Id>/change/cafedeadbeaf</Id>

<Status>PENDING</Status>

<SubmittedAt>2013-03-11T10:33:07.545Z</SubmittedAt>

</ChangeInfo>

<DelegationSet>

<NameServers>

<NameServer>ns-05.dns.jp-e1.cloudn-service.com</NameServer>

<NameServer>ns-06.dns.jp-e1.cloudn-service.com</NameServer>

<NameServer>ns-07.dns.jp-e1.cloudn-service.com</NameServer>

</NameServers>

</DelegationSet>

</CreateHostedZoneResponse>

①に示したIdは、以後、作成・登録したゾーンに対して何らかの操作をする際に指定するIDとなります。

②の”ChangeInfo”Tagに含まれるIdは、リクエストが受け付けられた後に、①に示したDNSサーバに反映されたかどうかを確認する際のチケットになります。DNSへのは反映を確認するには、”GetChange” APIを呼び出すことによって確認します。

また、上記のレスポンス中③の”NameServer” Tagの値が、リクエストしたゾーンを管理する権威サーバ (Authoritative DNS) となります。

3-1) DNS情報を登録する

Page 11: NTT Communications Cloudⁿ DNS API マニュアルinfo.cloudn-service.com/.../JP/ejp/dns_ejp_api_manual.pdf · 2013-09-09 · ダイナミックdnsサービス ダイナミックdnsサービスとして、ホストゾーンの作成・編集・削除、その中に含まれるリソ

11

“GetChange”は、HTTP のリクエストメソッドに”GET”を指定し、Request Pathに”/2012-02-29/change/<id>”となります。

上記の例ではRequest Pathは、”/2012-02-29/change/cafedeadbeaf”となります。

“GetChange”のリクエストは、以下のようになります。

GET /2012-02-29/change/cafedeadbeaf HTTP/1.1

date: Tue, 12 Mar 2013 00:57:53 GMT

x-amzn-authorization: AWS3-HTTPS

AWSAccessKeyId=,Algorithm=HmacSHA256,Signature=S1gNatyaaaadayou=

host: dns-api.jp-e1.cloudn-service.com

“GetChange” APIのレスポンスは以下のようになります。

date: Tue, 12 Mar 2013 00:57:55 GMT

etag: "027a3c2600d368c95d3bb38c1c615629"

cache-control: max-age=0, private, must-revalidate

x-request-id: 209a1abaaa7e737d3f4b696e0460c9d5

x-runtime: 0.009997

x-rack-cache: miss

x-frame-options: SAMEORIGIN

status: 200

content-length: 285

connection: close

content-type: text/xml; charset=utf-8

<?xml version="1.0" encoding="UTF-8"?>

<GetChangeResponse xmlns="https://route53.amazonaws.com/doc/2012-02-29/">

<ChangeInfo>

<Id>cafedeadbeaf</Id>

<Status>INSYNC</Status>

<SubmittedAt>2013-03-11T10:33:07.000Z</SubmittedAt>

</ChangeInfo>

</GetChangeResponse>

④に示した、”Status” Tagの値が”INSYNC”であれば、③に示した権威サーバに登録が反映されたことを示します。また、”PENDING”であれは、権威サーバに情報が完全には反映されていないことを示しているため、反映完了までお待ちください。

“CreateHostedZone”のレスポンス中の、Id Tagの値をそのまま利用すると、”change”が重複することになるのでご注意下さい。

3-1) DNS情報を登録する

Page 12: NTT Communications Cloudⁿ DNS API マニュアルinfo.cloudn-service.com/.../JP/ejp/dns_ejp_api_manual.pdf · 2013-09-09 · ダイナミックdnsサービス ダイナミックdnsサービスとして、ホストゾーンの作成・編集・削除、その中に含まれるリソ

12

date: Mon, 11 Mar 2013 11:34:34 GMT

etag: "aa4c7518de1091275f25c138cf7512e3"

cache-control: max-age=0, private, must-revalidate

x-request-id: 810a84b3e53b2a2d6949c96db0e5a789

x-runtime: 0.015080

x-rack-cache: miss

x-frame-options: SAMEORIGIN

status: 200

content-length: 1209

connection: close

content-type: text/xml; charset=utf-8

<?xml version="1.0" encoding="UTF-8"?>

<ListResourceRecordSetsResponse xmlns="https://route53.amazonaws.com/doc/2012-02-29/">

<ResourceRecordSets>

<ResourceRecordSet>

<Name>example.com.</Name>

<Type>SOA</Type>

<TTL>60</TTL>

<ResourceRecords>

<ResourceRecord>

<Value>ns-05.dns.jp-e1.cloudn-service.com. root.cloudn2.net. 1 7200 900 1209600 86400</Value>

</ResourceRecord>

</ResourceRecords>

</ResourceRecordSet>

<ResourceRecordSet>

<Name>example.com.</Name>

<Type>NS</Type>

<TTL>60</TTL>

<ResourceRecords>

<ResourceRecord>

<Value>ns-05.dns.jp-e1.cloudn-service.com.</Value>

</ResourceRecord>

<ResourceRecord>

<Value>ns-06.dns.jp-e1.cloudn-service.com.</Value>

</ResourceRecord>

<ResourceRecord>

<Value>ns-07.dns.jp-e1.cloudn-service.com.</Value>

</ResourceRecord>

</ResourceRecords>

</ResourceRecordSet>

</ResourceRecordSets>

<IsTruncated>false</IsTruncated>

<MaxItems>100</MaxItems>

</ListResourceRecordSetsResponse>

次に、 “examle.com”のリソースレコードの登録状況を、APIを用いて確認します。リソースレコードの確認には、 “ListResourceRecordSets”を利用します。 “ListResourceRecordSets”は、Request Path “/2012-02-29/hostedzone/<zone_id>/rrset”に対してGETメソッドを発行することで、実行します。この例では、Request Pathは、“/2012-02-29/hostedzone/99E9999999999/rrset”となります。

”ListResourceRecordSets”のレスポンスは以下の通りです。(①が登録されているリソースレコードリストになります。)

3-2) DNS情報を確認する

Page 13: NTT Communications Cloudⁿ DNS API マニュアルinfo.cloudn-service.com/.../JP/ejp/dns_ejp_api_manual.pdf · 2013-09-09 · ダイナミックdnsサービス ダイナミックdnsサービスとして、ホストゾーンの作成・編集・削除、その中に含まれるリソ

13

最後に、dig(1)を用いてSOAレコードが権威サーバに登録されていることを確認します。

ゾーンやレコードが登録された権威サーバは、”ListHostedZone”や、”CreateHostedZone” のレスポンスで確認できます。

本書の例では、

• ns-05.dns.jp-e1.cloudn-service.com • ns-06.dns.jp-e1.cloudn-service.com • ns-07.dns.jp-e1.cloudn-service.com

となります。

以下に、”ns-05.dns.jp-e1.cloudn-service.com”にdig(1)で、example.comのSOAレコードを確認する方法を示します。

% dig @ns-05.dns.jp-e1.cloudn-service.com -t soa example.com +norec

; <<>> DiG 9.7.6-P1 <<>> @ns-05.dns.jp-e1.cloudn-service.com -t soa example.com +norec

; (1 server found)

;; global options: +cmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 49083

;; flags: qr aa; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 0

;; QUESTION SECTION:

;example.com. IN SOA

;; ANSWER SECTION:

example.com. 60 IN SOA ns-05.dns.jp-e1.cloudn-service.com. root.cloudn2.net. 1 7200 900

1209600 86400

;; AUTHORITY SECTION:

example.com. 60 IN NS ns-06.dns.jp-e1.cloudn-service.com.

example.com. 60 IN NS ns-07.dns.jp-e1.cloudn-service.com.

example.com. 60 IN NS ns-05.dns.jp-e1.cloudn-service.com.

;; Query time: 5 msec

;; SERVER: 153.128.36.7#53(153.128.36.7)

;; WHEN: Tue Mar 12 11:52:40 2013

;; MSG SIZE rcvd: 174

3-2) DNS情報を確認する

Page 14: NTT Communications Cloudⁿ DNS API マニュアルinfo.cloudn-service.com/.../JP/ejp/dns_ejp_api_manual.pdf · 2013-09-09 · ダイナミックdnsサービス ダイナミックdnsサービスとして、ホストゾーンの作成・編集・削除、その中に含まれるリソ

14

API 名前 説明

POST CreateHostedZone 新しいホストゾーンを作成します。

送信されたリクエストにはCreateHostedZoneRequest要素を記述したXMLドキュメントが含まれる必要があります。

GET GetHostedZone 指定したホストゾーンの詳細情報を取得します。

DELETE DeleteHostedZone ホストゾーンを削除します。

GET ListHostedZones ホストゾーン一覧情報を取得します。

このAPIではデフォルトですべてのホストゾーンが表示されます。

・Markerパラメータを利用することにより、一覧表示されるゾーンの開始位置を指定することができます。

・MaxItemsパラメータを利用することにより、一覧表示するゾーン数を指定することができます。

例:maxitems=1&marker=“表示したいホストゾーン名”

上記のようなパラメータを指定することで、任意のホストゾーン情報を表示することができます。

POST ChangeResourceRecordSets 作成したホストゾーンへ、レコードの追加/削除を行います。

リクエストにはChangeResourceRecordSetsRequest要素が記述されたXMLドキュメントが含まれる必要があります。

GET ListResourceRecordSets リソースレコードのリストを取得します。

GET GetChange “POST CreateHostedZone”、

”POST ChangeResourceRecordSets”のステータスを取得します。

ステータスは以下のうちのどれかになります。

・PENDINGは変更要求が全てのCloudn DNSに

レプリケーションされていないことを表します。

変更リクエストの初期状態です。

・INSYNCは変更要求が全てのCloudn DNSに

レプリケーションされていることを表します。

本サービスにて提供しているAPIは下記となります。

4-1) DNS API 一覧

Page 15: NTT Communications Cloudⁿ DNS API マニュアルinfo.cloudn-service.com/.../JP/ejp/dns_ejp_api_manual.pdf · 2013-09-09 · ダイナミックdnsサービス ダイナミックdnsサービスとして、ホストゾーンの作成・編集・削除、その中に含まれるリソ

15

本サービスにて提供しているAPI Server (End Point)は下記となります。

https://dns-api.jp-e1.cloudn-service.com

以下のテーブルに、Cloudn DNS のREST API Requestにおいて用いるHeader形式を示します。

Common Request Header

ヘッダー名 説明

X-Amzn-Authorization 認証に使用する(ヘッダー内にアクセスキー、秘密鍵で作成した署名、署名作成時に用いた暗号アルゴリズムが含まれる)

Content-Length ヘッダーを除いたリクエストの長さ(Byte)。このヘッダーはXMLをアップロードするPUT requestで必要となる

Content-Type リソースのコンテンツタイプを指定する。POSTやPUTの場合は必須となる

Date リクエスト送信時の日時を指定する

この日付を使用して、X-Amzn-Authorizationヘッダーを作成する

“x-amx-date”が記述されていない場合、必須となる

Host 100-continueを指定した場合、Acknowledgementがかえるまで、Bodyを送信しない。Response Headerによってreject

メッセージを受取った場合、Bodyは送信しない。

Valid Values: 100-continue

x-amz-date この日付を使用して、X-Amzn-Authorizationヘッダーを作成する

“Date”が記述されていない場合、必須となる

Common Response Header

ヘッダー名 説明

x-amz-request-id リクエストIDとして返却される

4-2) DNS API 共通情報

Page 16: NTT Communications Cloudⁿ DNS API マニュアルinfo.cloudn-service.com/.../JP/ejp/dns_ejp_api_manual.pdf · 2013-09-09 · ダイナミックdnsサービス ダイナミックdnsサービスとして、ホストゾーンの作成・編集・削除、その中に含まれるリソ

16

POST CreateHostedZone

概要 新しいホストゾーンを作成します。

ホストゾーンを作成するためには、POSTリクエストを“2012-02-29/hostedzone”に送信します。

送信されたリクエストにはCreateHostedZoneRequest要素を記述したXMLドキュメントが含まれる必要があります。

レスポンスはホストゾーンについてのメタデータが含まれたCreateHostedZoneResponse要素が返ってきます。

<重要>

トップレベル・ドメイン(TLD)に対してホストゾーンを作成することはできません

Cloudn DNSはデフォルトのSOAレコードと3つのNSレコードをゾーンに対して自動的に作成します。

ホストゾーンのNSレコードはお客様のドメインを代理するネームサーバです。

ゾーンを作成した際の初期ステータスはPENDINGです。

NSレコードおよびSOAレコードが全てのCloudn DNSで利用可能になった際に、ステータスはINSYNCに変更されます。

Request

Request Method POST

Path,Parameters,

etc

Request pathに”/2012-02-29/hostedzone”を指定

Header Common Request Headerを参照

Body 形式

XML

X

M

L

構成

Node名 説明 子Node 必須

CreateHostedZoneReque

st

リクエストコンテナ Name, CallerReference,

HostedZoneConfig

Yes

Name ドメインの名前 Yes

CallerReference ゾーン作成毎に一意になる任意の文字列

Yes

HostedZoneConfig - Comment No

Comment 任意のコメント No

4-3) DNS API (ゾーン操作)

Page 17: NTT Communications Cloudⁿ DNS API マニュアルinfo.cloudn-service.com/.../JP/ejp/dns_ejp_api_manual.pdf · 2013-09-09 · ダイナミックdnsサービス ダイナミックdnsサービスとして、ホストゾーンの作成・編集・削除、その中に含まれるリソ

17

Response

Response

Header

Common Response Headerを参照

Response

(Body)

形式 XML

XML 構成

Node名 説明 子Node

CreateHostedZoneRe

sponse

- HostedZone, ChangeInfo,

DelegationSet

HostedZone - Id, Name, CallerReference, Config

Id 作成されたホストゾーンのID

Name ゾーン作成時に指定したName

CallerReference ゾーン作成時に指定したCallerReference

Config Comment

Comment ゾーン作成時に指定したComment

ResourceRecordSetC

ount ホストゾーン内に登録されているレコード数

ChangeInfo - Id, Status, SubmittedAt

Id 変更履歴ID

Status 現在の状態

PENDINGはすべてのDNSが使用可能ではないことを示す

INSYNCはすべてのDNSが使用可能であることを示す

SubmittedAt 作成された日付

DelegationSet - NameServers

NameServers - NameServer

NameServer ゾーンファイルが登録されたネームサーバ

4-3) DNS API リファレンス (ゾーン操作)

Page 18: NTT Communications Cloudⁿ DNS API マニュアルinfo.cloudn-service.com/.../JP/ejp/dns_ejp_api_manual.pdf · 2013-09-09 · ダイナミックdnsサービス ダイナミックdnsサービスとして、ホストゾーンの作成・編集・削除、その中に含まれるリソ

18

GET GetHostedZone

概要 ホストゾーンについての情報を取得します。

GETリクエストを“2012-02-29/hostedzone/ Cloudn hosted zone ID”に対して送信して下さい。

Request

Request Method GET

Path,Parameters,

etc

HostedZoneI

D

ホストゾーン作成時に登録されたホストゾーンID (Request Pathは、/2012-02-29/hostedzone/<HostedZoneID>)

Header Common Request Headerを参照

Body 無し

Response

Response

Header

Common Response Headerを参照

Response

(Body)

形式 XML

XML 構成

Node名 説明 子Node

GetHostedZoneRespo

nse

- HostedZone, DelegationSet

HostedZone - Id, Name, CallerReference, Config

Id 作成されたホストゾーンのID

Name ゾーン作成時に指定したName

CallerReference ゾーン作成時に指定したCallerReference

Config Comment

Comment ゾーン作成時に指定したComment

ResourceRecordSetC

ount ホストゾーン内に登録されているレコード数

DelegationSet - NameServers

NameServers - NameServer

NameServer ゾーンファイルが登録されたネームサーバ

4-3) DNS API リファレンス (ゾーン操作)

Page 19: NTT Communications Cloudⁿ DNS API マニュアルinfo.cloudn-service.com/.../JP/ejp/dns_ejp_api_manual.pdf · 2013-09-09 · ダイナミックdnsサービス ダイナミックdnsサービスとして、ホストゾーンの作成・編集・削除、その中に含まれるリソ

19

DELETE DeleteHostedZone

概要 ホストゾーンを削除します。

ホストゾーンを削除するには、“2012-02-29/hostedzone/Cloudn HostedZoneIDに対してDELETEリクエストを送信して下さい。

<重要>

デフォルトのSOAレコードおよびNSレコード以外のリソース・レコードがあった場合、ホストゾーンを削除する前にそれらのレコードを削除する必要があります。

レコードを含んだホストゾーンを削除しようとした場合、 Cloudn DNSはHostedZoneNotEmpty

エラーにより削除リクエストを拒否します。

Request

Request Method DELETE

Path,Parameters,

etc

HostedZone

ID

ホストゾーン作成時に登録されたホストゾーンID (Request Pathは、/2012-02-29/hostedzone/<HostedZoneID>)

Header Common Request Headerを参照

Body 無し

Response

Response

Header

Common Response Headerを参照

Response

(Body)

形式 XML

XML 構成

Node名 説明 子Node

DeleteHostedZoneResponse - ChangeInfo

ChangeInfo - Id, Status,

SubmittedAt

Id 変更履歴ID

Status 現在の状態

PENDINGはすべてのDNSが使用可能ではないことを示す

INSYNCはすべてのDNSが使用可能であることを示す

SubmittedAt 作成された日付

4-3) DNS API リファレンス (ゾーン操作)

Page 20: NTT Communications Cloudⁿ DNS API マニュアルinfo.cloudn-service.com/.../JP/ejp/dns_ejp_api_manual.pdf · 2013-09-09 · ダイナミックdnsサービス ダイナミックdnsサービスとして、ホストゾーンの作成・編集・削除、その中に含まれるリソ

20

GET ListHostedZone

概要 ホストゾーンの一覧情報を取得するために、2012-02-29/hostedzoneリソースに対してGETリクエストを送信して下さい。

このAPIではデフォルトですべてのホストゾーンが表示されます。

・Markerパラメータを利用することにより、一覧表示されるゾーンの開始位置を指定することができます。

・MaxItemsパラメータを利用することにより、一覧表示するゾーン数を指定することができます。

例:maxitems=1&marker=“表示したいホストゾーン名”

上記のようなパラメータを指定することで、任意のホストゾーン情報を表示することができます。

Request

Request Method GET

Path,Parameters,

etc

Request pathに”/2012-02-29/hostedzone”を指定

名前 説明 必須

marker

取得したいホストゾーンの指定を行う

“marker”に一致したホストゾーンより”maxitems”で指定した数のホストゾーン一覧を返却する

No

maxitems 返却されるホストゾーン数を指定する

デフォルト:100

No

Header Common Request Headerを参照

Body 無し

Response

Response

Header

Common Response Headerを参照

Response

(Body)

形式 XML

XML 構成

Node名 説明 子Node

ListHostedZoneResponse - Marker, HostedZones,

MaxItems, IsTruncated,

NextMarker

HostedZones - HostedZone

HostedZone - Id, Name, CallerReference,

Config,

ResourceRecordSetCount

Id 作成されたホストゾーンのID

Name ゾーン作成時に指定したName

CallerReference ゾーン作成時に指定したCallerReference

Config Comment

Comment ゾーン作成時に指定したComment

ResourceRecordSetCount ホストゾーン内に登録されているレコード数

Marker リクエスト時に“marker”を指定した場合に返却される

IsTruncated まだ表示されていないホストゾーンがある場合、”true”が返却される

NextMarker “IsTruncated”がtrueの場合、次のホストゾーン名を返却する

MaxItems リクエスト時に“maxitem”で入力した数が返却される

4-3) DNS API リファレンス (ゾーン操作)

Page 21: NTT Communications Cloudⁿ DNS API マニュアルinfo.cloudn-service.com/.../JP/ejp/dns_ejp_api_manual.pdf · 2013-09-09 · ダイナミックdnsサービス ダイナミックdnsサービスとして、ホストゾーンの作成・編集・削除、その中に含まれるリソ

21

POST ChangeResourceRecordSets

概要 作成したホストゾーンへ、レコードの追加/削除を行います。

/2012-02-29/hostedzone/<Cloudn HostedZone ID>/rrsetリソースへPOSTリクエストすることで利用できます。

リクエストにはChangeResourceRecordSetsRequest要素が記述されたXMLドキュメントが含まれる必要があります。

<重要>

一度の変更処理において、同じリソース・レコードに関する複数の処理を要求することは

できません。もし、要求した場合、 Cloudn DNSはInvalidChangeBatchエラーを返します。

ChangeResouceRecordSetsリクエストにより、全てのCloudn DNSサーバ上でレコードが変更されます。初期ステータスはPENDINGです。全てのホストに伝播された際に、ステータスがINSYNCに変更されます。

以下のChangeResourceRecordSetsリクエストに対する制限にご注意下さい。

・一つのリクエストにつき、100以上のChange要素を含めることはできません。

・一つのリクエストにつき、1000以上のResourceRecord要素を含めることはできません。

・一つのリクエスト中のValue要素における文字列の合計(スペースを含む)は32,000文字以下である必要があります。

Request

Request

Method

POST

Path,Paramet

ers, etc

HostedZoneId ホストゾーン作成時に登録されたホストゾーンID

(Request Pathは、/2012-02-29/hostedzone/<HostedZoneID>/rrset)

Header Common Request Headerを参照

Body 形式 XML

XML構成

Node名 説明 子Node 必須

ChangeResourceRecordSetsRequest - ChangeBatch Yes

ChangeBatch - Comment, Changes Yes

Comment 任意のコメント No

Changes - Change Yes

Change - Action,

ResourceRecordSet

Yes

Action “CREATE”、”DELETE”のどちらかを指定 Yes

ResourceRecordSet - Name, Type, Alias

Target, TTL,

ResourceRecords

Yes

Name リソースレコードに登録するドメインネームをFQDNで記述する。

Yes

Type 登録するリソースレコードのタイプを指定

Valid values: A | AAAA | CNAME | MX |

NS | PTR | SOA | SPF | SRV |TXT

Yes

Alias Target Alias Resource Record Setsを利用する場合、必須。

HostedZoneId,

DNSName

Yes

HostedZoneId LBAのHosted zone ID。Alias Resource

Record Setsを利用する場合、必須。

Yes

DNSName LBAと連携する外部のDNSネーム。Alias

Resource Record Setsを利用する場合、必須。

Yes

4-4) DNS API (リソースレコード操作)

Page 22: NTT Communications Cloudⁿ DNS API マニュアルinfo.cloudn-service.com/.../JP/ejp/dns_ejp_api_manual.pdf · 2013-09-09 · ダイナミックdnsサービス ダイナミックdnsサービスとして、ホストゾーンの作成・編集・削除、その中に含まれるリソ

22

Request

Body 形式 XML

XML構成

Node名 説明 子Node 必須

TTL リソースレコードのTTL。Alias Resource

Record Setsを利用しない場合、必須。

Yes

ResourceRecords Alias Resource Record Setsを利用しない場合、必須。

ResourceRecord Yes

ResourceRecord Alias Resource Record Setsを利用しない場合、必須。

Value Yes

Value 指定した”Type”に対応した値。Alias

Resource Record Setsを利用しない場合、必須。

Yes

4-4) DNS API (リソースレコード操作)

Page 23: NTT Communications Cloudⁿ DNS API マニュアルinfo.cloudn-service.com/.../JP/ejp/dns_ejp_api_manual.pdf · 2013-09-09 · ダイナミックdnsサービス ダイナミックdnsサービスとして、ホストゾーンの作成・編集・削除、その中に含まれるリソ

23

Response

Response

Header

Common Response Headerを参照

Response

(Body)

形式 XML

XML 構成

Node名 説明 子Node

ChangeResourceRecord

SetsResponse

- ChangeInfo

ChangeInfo - Id, Status, SubmittedAt

Id 変更履歴ID

Status 現在の状態

PENDINGはすべてのDNSが使用可能ではないことを示す

INSYNCはすべてのDNSが使用可能であることを示す

SubmittedAt 作成された日付

4-4) DNS API リファレンス (リソースレコード操作)

Page 24: NTT Communications Cloudⁿ DNS API マニュアルinfo.cloudn-service.com/.../JP/ejp/dns_ejp_api_manual.pdf · 2013-09-09 · ダイナミックdnsサービス ダイナミックdnsサービスとして、ホストゾーンの作成・編集・削除、その中に含まれるリソ

24

GET ListResourceRecordSets

概要 リソースレコードのリストを取得します。

/2012-02-29/hostedzone/<Cloudn HostedZoneID>/rrsetに対してGETリクエストを送信します。

このアクションは、name要素とtype要素によって指定された位置から順に、指定した数のリソースレコードのリストを取得します。

ソート順は最初にドメイン名 (com.ntt.wwwのように逆順です)、次にレコードタイプの順となります。

name要素とtype要素を使ってリソースレコードのリストの表示開始位置を調節することができます。

<注釈>

このアクションはPENDINGステータスのレコードを含め、 最新のレコード情報を返します。

Request

Request Method GET

Path,Parameters,

etc

HostedZone D レコードセットを取得するホストゾーンを指定する

Request Pathは”/2012-02-29/hostedzone/<HostedZoneID>/rrset”

名前 説明 必須

name ここで指定したレコードセットと一致したレコードセットから一覧を表示する

No

type レコードタイプを指定する No

maxitems 表示するレコードセット数を指定する

デフォルト:100

No

Header Common Request Headerを参照

Body 無し

4-4) DNS API リファレンス (リソースレコード操作)

Page 25: NTT Communications Cloudⁿ DNS API マニュアルinfo.cloudn-service.com/.../JP/ejp/dns_ejp_api_manual.pdf · 2013-09-09 · ダイナミックdnsサービス ダイナミックdnsサービスとして、ホストゾーンの作成・編集・削除、その中に含まれるリソ

25

Response

Response

Header

Common Response Headerを参照

Response

(Body)

形式 XML

XML 構成

Node名 説明 子Node

ListResourceRecordSets

Response

- ResourceRecordSets, IsTruncated,

MaxItems,

NextRecordName,

NextRecordType

ResourceRecordSets - ResourceRecordSet

ResourceRecordSet - Name, Type, TTL,

ResourceRecords

Name リソースレコード名

Type レコードタイプ

TTL TTL

ResourceRecords - ResourceRecord

ResourceRecord - Value

Value リソースレコードに設定されている値

IsTruncated

MaxItems リクエスト時に“maxitem”で入力した数が返却される

NextRecordName “IsTruncated”がtrueの場合、次のホストゾーン名を返却する

NextRecordType

4-4) DNS API リファレンス (リソースレコード操作)

Page 26: NTT Communications Cloudⁿ DNS API マニュアルinfo.cloudn-service.com/.../JP/ejp/dns_ejp_api_manual.pdf · 2013-09-09 · ダイナミックdnsサービス ダイナミックdnsサービスとして、ホストゾーンの作成・編集・削除、その中に含まれるリソ

26

GET GetChange

概要 “POST CreateHostedZone”、

”POST ChangeResourceRecordSets”のステータスを取得します。

“/2012-02-29/change/<change_id>”に対してGETリクエストを送信します。

ステータスは以下のうちのどれかになります。

・PENDINGは変更要求が全てのCloudn DNSにレプリケーションされていないことを表します。

変更リクエストの初期状態です。

・INSYNCは変更要求が全てのCloudn DNSにレプリケーションされていることを表します。

Response

Response

Header

Common Response Headerを参照

Response

(Body)

形式 XML

XML 構成 Node名 説明 子Node

GetChangeResponse - ChangeInfo

ChangeInfo - Id, Status, SubmittedAt

Id 変更履歴ID

Status 現在の状態

PENDINGはすべてのDNSが使用可能ではないことを示す

INSYNCはすべてのDNSが使用可能であることを示す

SubmittedAt 作成された日付

Request

Request Method GET

Path,Parameters,

etc

Change ID Request Pathは、”/2012-02-29/change/<change_id>”となる

Header Common Request Headerを参照

Body 無し

4-4) DNS API リファレンス (リソースレコード操作)