このページでは、Google Distributed Cloud(GDC)エアギャップで新しいドメインの DNS 解決を構成する方法について説明します。GDC で DNS ゾーンを使用する。
このページは、組織の DNS 解決の管理を担当するプラットフォーム管理者とアプリケーション オペレーターを対象としています。
GDC 環境で、サービスの可視性とアクセス要件に合わせて、一般公開または限定公開の DNS ゾーンを作成できます。
- 外部ネットワークの可視性とアクセスを必要とするサービスの場合: ネットワーク外のユーザーとシステムがサービスにアクセスできるように、パブリック DNS ゾーンを設定します。ウェブサイト、一般公開 API、または GDC Cloud 環境の外部からアクセスする必要があるサービスがある場合は、ドメイン名を適切な IP アドレスにマッピングするパブリック DNS ゾーンが必要です。
- 内部システムへの安全で制限されたアクセスを必要とするサービスの場合: 内部ドメイン名を非表示にして、内部サービスへのアクセスを制限するように、限定公開 DNS ゾーンを設定します。安全なプロトコルとプライベート IP アドレスのみを使用して他の内部サービスと通信する必要がある内部アプリケーション、データベース、マイクロサービスがある場合は、ドメイン名を適切な IP アドレスにマッピングするプライベート DNS ゾーンが必要です。プライベート DNS ゾーンを使用すると、これらのサービスは、外部ネットワークに存在や IP アドレスを公開することなく、内部ドメイン名を使用して相互に検出できます。これにより、セキュリティが強化され、内部ネットワークが簡素化されます。
一般公開 DNS ゾーンと限定公開 DNS ゾーンの違いについては、Cloud DNS のゾーンタイプをご覧ください。
始める前に
GDC で DNS ゾーンを構成してレコードを追加するには、次のものが必要です。
- 既存のプロジェクト。詳細については、プロジェクトを作成するをご覧ください。
- 必要な ID とアクセスロール。詳細については、IAM 権限を準備するをご覧ください。
一般公開 DNS ゾーンを作成する
GDC で Kubernetes API を使用して一般公開 DNS ゾーンを作成します。
ManagedDNSZone
リソースを作成して適用し、GDC の外部からアクセス可能な DNS ゾーンを作成します。kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF apiVersion: networking.global.gdc.goog/v1 kind: ManagedDNSZone metadata: name: DNS_ZONE_NAME namespace: PROJECT_NAMESPACE spec: dnsName: DOMAIN_NAME description: DESCRIPTION visibility: PUBLIC EOF
次のように置き換えます。
GLOBAL_API_SERVER
: グローバル API サーバーの kubeconfig パス。詳細については、グローバル API サーバーとゾーン API サーバーをご覧ください。API サーバーの kubeconfig ファイルをまだ生成していない場合は、ログインで詳細を確認してください。DNS_ZONE_NAME
: DNS ゾーンの名前。PROJECT_NAMESPACE
: プロジェクトの Namespace。DOMAIN_NAME
: パブリック DNS ゾーンのドメイン名(例:example.com
)。DESCRIPTION
: DNS ゾーンの説明。例:Public DNS zone for example.com
このフィールドは省略可能です。
パブリック DNS ゾーンの場合、ネットワーク内の DNS リゾルバを構成して、その DNS ゾーンの DNS リクエストを、その DNS ゾーンをホストする GDC のネームサーバーに転送する必要があります。ネームサーバーは、
ManagedDNSZone
カスタム リソースのステータスに一覧表示されます。apiVersion: networking.global.gdc.goog/v1 kind: ManagedDNSZone metadata: name: public-example-com namespace: PROJECT_NAMESPACE spec: dnsName: example.com description: "Public DNS zone for example.com" visibility: PUBLIC status: … nameServers: - ns.managed-dns-public.gdc1.staging.gpcdemolabs.com
この例では、
example.com
のリクエストをns.managed-dns-public.gdc1.staging.gpcdemolabs.com
に転送するように DNS リゾルバを更新する必要があります。この構成では、リゾルバに GDC のインフラストラクチャ DNS ゾーンgdc1.staging.gpcdemolabs.com
の DNS リクエストを適切に転送するために必要な構成がすでに存在することを前提としています。
限定公開 DNS ゾーンを作成する
Kubernetes API を使用して限定公開 DNS ゾーンを作成します。
ManagedDNSZone
リソースを作成して適用し、デフォルトの顧客 VPC 内からのみアクセス可能な DNS ゾーンを作成します。kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF apiVersion: networking.global.gdc.goog/v1 kind: ManagedDNSZone metadata: name: DNS_ZONE_NAME namespace: PROJECT_NAMESPACE spec: dnsName: DOMAIN_NAME description: DESCRIPTION visibility: PRIVATE EOF
次のように置き換えます。
GLOBAL_API_SERVER
: グローバル API サーバーの kubeconfig パス。詳細については、グローバル API サーバーとゾーン API サーバーをご覧ください。API サーバーの kubeconfig ファイルをまだ生成していない場合は、ログインで詳細を確認してください。DNS_ZONE_NAME
: DNS ゾーンの名前。PROJECT_NAMESPACE
: プロジェクトの Namespace。DOMAIN_NAME
: プライベート DNS ゾーンのドメイン名(例:example.com
)。DESCRIPTION
: DNS ゾーンの説明。例:Private DNS zone for example.com
このフィールドは省略可能です。