Skip to content

Cloud DNS Zoneの作成と権限の移譲

ここでは、デプロイメントに際しCloud DNS Zoneが必要となる場合のCloud DNS Zoneの作成と権限以上の方法を解説します。

TIP

本手順は、以下のAzure公式ドキュメントを元に作成しております。 一般公開ゾーンを作成する 手順の実施中に不明な点などがあった場合には併せて参照してください。

前提条件

本手順の実施には以下の前提条件があります。

  • Google Cloud CLIのインストール
    • DNSゾーンの作成にGoogle Cloud CLIのインストールが必要です。インストールされていない場合はgcloud CLI をインストールするを参考にGoogle Cloud CLI をインストールしてください。
    • 移譲元のDNSゾーンがCloud DNSであり、かつ移譲先のDNSゾーンもCloud DNSである必要があります。

手順

1.GCPへのログイン

  1. 以下のコマンドを実行してGCPにログインします。
bash
gcloud auth login
  1. コマンドを実行するとGoogle Cloud SDKのログイン認証が要求されるのでログインします。

ログインが完了するとログインしたプロジェクトIDとユーザの詳細情報が表示されます。

bash
You are now logged in as [[email protected]].
Your current project is [current-project-id].  You can change this setting by running:
  $ gcloud config set project PROJECT_ID


Updates are available for some Google Cloud CLI components.  To install them,
please run:
  $ gcloud components update

3.Cloud DNS Zone の作成と権限の移譲

テナントへのログインができたら Cloud DNS Zone を以下の手順で作成します。

  1. 以下のコマンドを実行し、Cloud DNS Zone を作成するために必要な情報を格納します。任意の値に置き換えてそれぞれ格納してください。
内容説明
PARENT_ZONE_PROJECT_ID委譲元の親ゾーンが所属しているGoogle CloudプロジェクトID
CHILD_ZONE_PROJECT_ID作成する子ゾーン(委譲先ゾーン)を所属させるGoogle CloudプロジェクトID(親ゾーンと同じプロジェクトに所属させる場合は PARENT_ZONE_PROJECT_ID と同じ値になります)
PARENT_ZONE_NAME既にある親ゾーンの名前
CHILD_ZONE_NAME作成する子ゾーンの名前
CHILD_DNS_NAME作成する子ゾーンのDNS名
bash
export PARENT_ZONE_PROJECT_ID="<YOUR_PARENT_ZONE_PROJECT_ID>"
export CHILD_ZONE_PROJECT_ID="<YOUR_CHILD_ZONE_PROJECT_ID>"
export PARENT_ZONE_NAME="<YOUR_PARENT_ZONE_NAME>"
export CHILD_ZONE_NAME="<YOUR_CHILD_ZONE_NAME>"
export CHILD_DNS_NAME="<YOUR_CHILD_DNS_NAME>"
  1. 以下のコマンドを実行し、作成する子DNSゾーンの所属するリソースグループを作成します。
  • すでに作成済みのリソースグループに所属させる場合はSkipで構いません。
bash
gcloud projects create ${CHILD_ZONE_PROJECT_ID}
  1. 委譲先の子ゾーンを作成します。
bash
gcloud config set project ${CHILD_ZONE_PROJECT_ID}
gcloud dns managed-zones create ${CHILD_ZONE_NAME} --dns-name=${CHILD_DNS_NAME} --visibility="public" --dnssec-state="off" --description="your description"
  1. 作成された子ゾーンのネームサーバーを確認します。複数のサーバ名が表示されていれば、正しく作成されています。
bash
gcloud dns managed-zones describe ${CHILD_ZONE_NAME}
  1. 子ゾーンのネームサーバーを委譲元の親ゾーンに設定します。
bash
nsservers=$(gcloud dns managed-zones describe ${CHILD_ZONE_NAME} --format="value(nameServers)[delimiter=',']")
gcloud config set project ${PARENT_ZONE_PROJECT_ID}
gcloud dns record-sets create ${CHILD_DNS_NAME} --rrdatas=${nsservers} --type=NS --ttl=3600 --zone=${PARENT_ZONE_NAME}
  1. 正常に設定できたかを確認するため、TXTレコードを設定します。
bash
gcloud config set project ${CHILD_ZONE_PROJECT_ID}
gcloud dns record-sets create hello.${CHILD_DNS_NAME} --rrdatas=world --type=TXT --zone=${CHILD_ZONE_NAME}
  1. 以下のコマンドを実行し、answerとして ”world” が出力されていれば正しく設定されています。
bash
dig TXT +noall +ans hello.${CHILD_DNS_NAME}
  1. 確認後、不要なTXTレコードを削除します。
bash
gcloud dns record-sets delete hello.${CHILD_DNS_NAME} --type=TXT --zone=${CHILD_ZONE_NAME}

以上でCloud DNS Zone の作成と権限の移譲は完了です。