Appearance
Cloud DNS Zoneの作成と権限の移譲
ここでは、デプロイメントに際しCloud DNS Zoneが必要となる場合のCloud DNS Zoneの作成と権限以上の方法を解説します。
前提条件
本手順の実施には以下の前提条件があります。
- Google Cloud CLIのインストール
- DNSゾーンの作成にGoogle Cloud CLIのインストールが必要です。インストールされていない場合はgcloud CLI をインストールするを参考にGoogle Cloud CLI をインストールしてください。
- 移譲元のDNSゾーンがCloud DNSであり、かつ移譲先のDNSゾーンもCloud DNSである必要があります。
手順
1.Google Cloudへのログイン
- 以下のコマンドを実行してGoogle Cloudにログインします。
bash
gcloud auth login
- コマンドを実行すると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 を以下の手順で作成します。
- 以下のコマンドを実行し、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>"
- 以下のコマンドを実行し、作成する子DNSゾーンの所属するリソースグループを作成します。
- すでに作成済みのリソースグループに所属させる場合はSkipで構いません。
bash
gcloud projects create ${CHILD_ZONE_PROJECT_ID}
- 委譲先の子ゾーンを作成します。
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"
- 作成された子ゾーンのネームサーバーを確認します。複数のサーバ名が表示されていれば、正しく作成されています。
bash
gcloud dns managed-zones describe ${CHILD_ZONE_NAME}
- 子ゾーンのネームサーバーを委譲元の親ゾーンに設定します。
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}
- 正常に設定できたかを確認するため、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}
- 以下のコマンドを実行し、answerとして ”world” が出力されていれば正しく設定されています。
bash
dig TXT +noall +ans hello.${CHILD_DNS_NAME}
- 確認後、不要なTXTレコードを削除します。
bash
gcloud dns record-sets delete hello.${CHILD_DNS_NAME} --type=TXT --zone=${CHILD_ZONE_NAME}
以上でCloud DNS Zone の作成と権限の移譲は完了です。