Azure CLI を使用して Azure DNS で DNS ゾーンを管理する方法

この記事では、クロス プラットフォームの Azure CLI を使用して、DNS ゾーンを管理する方法について説明します。 Azure CLI は、Windows、Mac、Linux に対応しています。 DNS ゾーンは、Azure PowerShell または Azure Portal を使用して管理することもできます。

このガイドでは、特にパブリック DNS ゾーンについて説明します。 Azure CLI を使用した Azure DNS での Private Zones の管理については、Azure CLI を使用した Azure DNS Private Zones での作業の開始に関するページを参照してください。

はじめに

DNS ゾーンは、特定のドメインの DNS レコードをホストするために使用されます。 Azure DNS でドメインのホストを開始するには、そのドメイン名用に DNS ゾーンを作成する必要があります。 ドメインの DNS レコードはすべて、この DNS ゾーン内に作成されます。

たとえば、ドメイン "contoso.com" に、"mail.contoso.com" (メール サーバー用) や "www.contoso.com" (Web サイト用) など、複数の DNS レコードを含めることができます。

Azure DNS に DNS ゾーンを作成する場合:

  • ゾーンの名前がリソース グループ内で一意であること、および作成するゾーンがまだ存在していないことが必要です。 それ以外の場合は、操作が失敗します。
  • 同じゾーン名は、別のリソース グループまたは別の Azure サブスクリプション内であれば再利用できます。
  • 複数のゾーンで同じ名前を共有できますが、各インスタンスには異なるネーム サーバー アドレスが割り当てられます。 ドメイン名レジストラーで構成できるアドレスのセットは 1 つだけです。

注意

自社で所有していないドメイン名でも、Azure DNS 内にそのドメイン名で DNS ゾーンを作成できます。 ただし、ドメイン名レジストラーでドメイン名の正しい名前サーバーとして Azure DNS ネーム サーバーを構成する場合は、ドメインを所有する必要があります。

詳細については、「Azure DNS へのドメインの委任」を参照してください。

Azure DNS 向け Azure CLI の設定

始める前に

構成を開始する前に、以下がそろっていることを確認します。

Azure アカウントへのサインイン

コンソール ウィンドウを開き、資格情報を使用して認証を行います。 詳細については、「Azure CLI を使用して Azure にサインインする」を参照してください

az login

サブスクリプションの選択

アカウントのサブスクリプションを確認します。

az account list

使用する Azure サブスクリプションを選択します。

az account set --subscription "subscription name"

省略可能: Azure DNS Private Zones の機能のインストール/使用

Azure DNS Private Zone の機能は、Azure CLI の拡張機能を介して利用できます。 "dns" Azure CLI 拡張機能をインストールしてください。

az extension add --name dns

リソース グループを作成する

Azure Resource Manager では、リソース グループの場所を指定する必要があります。 この場所は、そのリソース グループ内のすべてのリソースの既定の保存先として使用されます。 すべての DNS リソースはグローバルであるため、リソース グループの場所の選択は Azure DNS には影響しません。

既存のリソース グループを使用する場合は、この手順をスキップしてかまいません。

az group create --name myresourcegroup --location "West US"

ヘルプの表示

Azure DNS に関連するすべての Azure CLI コマンドは az network dns で始まります。 --help オプション (短縮形 -h) を使用すると、各コマンドのヘルプを利用できます。 次に例を示します。

az network dns --help
az network dns zone --help
az network dns zone create --help

DNS ゾーンの作成

DNS ゾーンは、az network dns zone create コマンドを使用して作成します。 az network dns zone create -h を使用すると、ヘルプが表示されます。

次の例では、MyResourceGroup というリソース グループに contoso.com という DNS ゾーンを作成します。

az network dns zone create --resource-group MyResourceGroup --name contoso.com

タグのある DNS ゾーンを作成するには

次の例では、--tags パラメーター (短縮形 -t) を使用して、project = demoenv = test の 2 つ Azure Resource Manager タグを含む DNS ゾーンを作成する方法を示します。

az network dns zone create --resource-group MyResourceGroup --name contoso.com --tags "project=demo" "env=test"

DNS ゾーンの取得

DNS ゾーンを取得するには、 az network dns zone showを使用します。 az network dns zone show --help を使用すると、ヘルプが表示されます。

次の例では、リソース グループ MyResourceGroup から DNS ゾーン contoso.com とその関連データを返します。

az network dns zone show --resource-group myresourcegroup --name contoso.com

次の例は応答です。

{
  "etag": "00000002-0000-0000-3d4d-64aa3689d201",
  "id": "/subscriptions/147a22e9-2356-4e56-b3de-1f5842ae4a3b/resourceGroups/myresourcegroup/providers/Microsoft.Network/dnszones/contoso.com",
  "location": "global",
  "maxNumberOfRecordSets": 5000,
  "name": "contoso.com",
  "nameServers": [
    "ns1-04.azure-dns.com.",
    "ns2-04.azure-dns.net.",
    "ns3-04.azure-dns.org.",
    "ns4-04.azure-dns.info."
  ],
  "numberOfRecordSets": 4,
  "resourceGroup": "myresourcegroup",
  "tags": {},
  "type": "Microsoft.Network/dnszones"
}

DNS レコードを一覧表示するには、az network dns record-set list を使用します。

DNS ゾーンの一覧表示

DNS ゾーンを列挙するには、az network dns zone list を使用します。 az network dns zone list --help を使用すると、ヘルプが表示されます。

リソース グループを指定すると、リソース グループ内のゾーンのみが一覧表示されます。

az network dns zone list --resource-group MyResourceGroup

リソース グループを省略すると、サブスクリプション内のすべてのゾーンが一覧表示されます。

az network dns zone list 

DNS ゾーンの更新

DNS ゾーンのリソースへの変更は、 az network dns zone updateを使用して行うことができます。 az network dns zone update --help を使用すると、ヘルプが表示されます。

このコマンドによって、ゾーン内の DNS レコード セットが更新されることはありません (「 DNS レコードの管理方法」を参照)。 この操作は、ゾーンのリソース自体のプロパティを更新するためだけに使用します。 現時点では、これらのプロパティは、ゾーンのリソースの Azure Resource Manager の"タグ" に限定されています。

次の例では、DNS ゾーンのタグを更新する方法を示します。 既存のタグは、指定された値に置き換えられます。

az network dns zone update --resource-group myresourcegroup --name contoso.com --set tags.team=support

DNS ゾーンの削除

DNS ゾーンは、az network dns zone delete を使用して削除できます。 az network dns zone delete --help を使用すると、ヘルプが表示されます。

Note

DNS ゾーンを削除すると、ゾーン内の DNS レコードもすべて削除されます。 この操作を元に戻すことはできません。 DNS ゾーンを使用している場合、ゾーンを削除すると、ゾーンを使用するサービスは機能しなくなります。

ゾーンを誤って削除しないようにするには、「DNS ゾーンとレコードを保護する」をご覧ください。

このコマンドは、確認を求めるプロンプトを表示します。 オプションの --yes スイッチはこのプロンプトを表示しません。

次の例は、リソース グループ MyResourceGroup から contoso.com ゾーンを削除する方法を示します。

az network dns zone delete --resource-group myresourcegroup --name contoso.com

次のステップ

DNS ゾーンでレコード セットとレコードを管理する方法についてはこちらをご覧ください。

Azure DNS にドメインを委任する方法についてはこちらをご覧ください。