Créer des zones DNS

Ce document explique comment configurer la résolution DNS pour un nouveau domaine dans Google Distributed Cloud (GDC) air-gapped à l'aide de zones DNS. Utilisez une zone DNS pour regrouper un ensemble d'enregistrements DNS et contrôler si ces enregistrements sont visibles en dehors de votre cloud privé virtuel (VPC) dans GDC.

Ce document s'adresse aux administrateurs de plate-forme et aux opérateurs d'applications chargés de gérer la résolution DNS pour leur organisation.

Vous pouvez créer des zones DNS publiques ou privées dans votre environnement GDC pour répondre aux exigences de visibilité et d'accès de vos services :

  • Pour les services qui nécessitent une visibilité et un accès au réseau externe : configurez une zone DNS publique pour permettre aux utilisateurs et aux systèmes en dehors de votre réseau d'accéder à votre service. Si vous disposez d'un site Web, d'une API publique ou de tout service qui doit être accessible en dehors de votre environnement GDC Cloud, vous avez besoin d'une zone DNS publique pour mapper votre nom de domaine aux adresses IP appropriées.
  • Pour les services qui nécessitent un accès sécurisé et restreint aux systèmes internes : configurez une zone DNS privée pour masquer votre nom de domaine interne et limiter l'accès à vos services internes. Si vous disposez d'une application, d'une base de données ou d'un microservice interne qui doit communiquer avec d'autres services internes en utilisant uniquement des protocoles sécurisés et des adresses IP privées, vous avez besoin d'une zone DNS privée pour mapper votre nom de domaine aux adresses IP appropriées. Une zone DNS privée garantit que ces services peuvent se trouver à l'aide de noms de domaine internes sans exposer leur existence ni leurs adresses IP au réseau externe. Cela améliore la sécurité et simplifie la mise en réseau interne.

Pour en savoir plus sur la différence entre les zones DNS publiques et privées, consultez Types de zones pour Cloud DNS.

Avant de commencer

Pour configurer des zones DNS dans GDC et ajouter des enregistrements, vous devez disposer des éléments suivants :

  • Un projet existant. Pour en savoir plus, consultez Créer un projet.
  • Les rôles d'identité et d'accès nécessaires. Pour gérer les zones DNS de votre projet, demandez à votre administrateur IAM de projet de vous accorder le rôle Administrateur de projet DNS géré (managed-dns-project-admin).
  • Pour utiliser la CLI gdcloud, assurez-vous qu'elle est installée. Pour en savoir plus, consultez Installer la CLI gdcloud.
  • Si vous utilisez kubectl, un fichier kubeconfig pour le serveur d'API global. Si vous n'avez pas encore généré ce fichier, consultez Se connecter. Pour en savoir plus, consultez Serveurs d'API globaux et zonaux.

Créer une zone DNS publique

Une fois que vous avez créé une zone DNS publique, vous devez configurer le résolveur DNS de votre réseau pour qu'il transfère les requêtes aux serveurs de noms appropriés.

Créer la zone

Vous pouvez créer une zone DNS publique à l'aide de la CLI gdcloud ou de l'API Kubernetes.

gdcloud

Pour créer une zone DNS publique, utilisez la gdcloud dns managed-zones create commande :

gdcloud dns managed-zones create DNS_ZONE_NAME \
    --dns-name=DOMAIN_NAME \
    --visibility=PUBLIC \
    --description="DESCRIPTION" \
    [--project=PROJECT_NAMESPACE] \
    [--async]

Remplacez les éléments suivants :

  • DNS_ZONE_NAME : nom de votre zone DNS.
  • DOMAIN_NAME: nom de domaine de votre zone DNS publique, tel que example.com.
  • DESCRIPTION : description de votre zone DNS. Par exemple, Public DNS zone for example.com. Ce champ est facultatif.
  • PROJECT_NAMESPACE : espace de noms de votre projet. Cet indicateur est facultatif si vous avez défini un projet par défaut au niveau mondial à l'aide de gdcloud config set project.
  • --async: spécifiez cette option si vous souhaitez que la commande renvoie immédiatement une réponse au lieu d'attendre la fin de l'opération. Vous pouvez utiliser describe pour vérifier l'état de l'opération.

API

Utilisez l'API Kubernetes dans GDC pour créer une zone DNS publique :

  1. Créez et appliquez une ressource ManagedDNSZone pour créer une zone DNS accessible en dehors de GDC :

    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
    

    Remplacez les éléments suivants :

    • GLOBAL_API_SERVER : chemin d'accès kubeconfig du serveur d'API global. Pour en savoir plus, consultez Serveurs d'API globaux et zonaux. Si vous n'avez pas encore généré de fichier kubeconfig pour le serveur d'API, consultez Se connecter pour en savoir plus.
    • DNS_ZONE_NAME : nom de votre zone DNS.
    • PROJECT_NAMESPACE : espace de noms de votre projet.
    • DOMAIN_NAME: nom de domaine de votre zone DNS publique, tel que example.com.
    • DESCRIPTION : description de votre zone DNS. Par exemple, Public DNS zone for example.com. Ce champ est facultatif.

    Notez que la valeur de visibility est sensible à la casse et doit être exactement PUBLIC.

Configurer votre résolveur DNS

Pour une zone DNS publique, vous devez configurer le résolveur DNS de votre réseau afin qu'il transfère les requêtes DNS pour cette zone DNS aux serveurs de noms de GDC qui hébergent cette zone DNS.

  1. Récupérez les serveurs de noms pour la ManagedDNSZone que vous avez créée. Vous devez utiliser kubectl pour cette étape.

    kubectl --kubeconfig GLOBAL_API_SERVER get manageddnszones DNS_ZONE_NAME -n PROJECT_NAMESPACE -oyaml
    

    Remplacez les éléments suivants :

    • GLOBAL_API_SERVER : chemin d'accès kubeconfig du serveur d'API global. Pour en savoir plus, consultez Serveurs d'API globaux et zonaux. Si vous n'avez pas encore généré de fichier kubeconfig pour le serveur d'API, consultez Se connecter pour en savoir plus.
    • DNS_ZONE_NAME : nom de votre zone DNS.
    • PROJECT_NAMESPACE : espace de noms de votre projet. Cet indicateur est facultatif si vous avez défini un projet par défaut au niveau mondial à l'aide de gdcloud config set project.

    Les serveurs de noms seront listés dans la sortie d'état :

      apiVersion: networking.global.gdc.goog/v1
      kind: ManagedDNSZone
      metadata:
        name: DNS_ZONE_NAME
        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
    
  2. Mettez à jour le résolveur DNS de votre réseau pour qu'il transfère les requêtes DNS pour la nouvelle zone. Dans cet exemple, le résolveur DNS doit être mis à jour pour transférer les requêtes pour example.com vers ns.managed-dns-public.gdc1.staging.gpcdemolabs.com. Cette configuration suppose que le résolveur dispose déjà de la configuration nécessaire pour transférer correctement les requêtes DNS pour la zone DNS d'infrastructure de GDC gdc1.staging.gpcdemolabs.com.

Créer une zone DNS privée

Vous pouvez créer une zone DNS privée à l'aide de la CLI gdcloud ou de l'API Kubernetes.

gdcloud

Pour créer une zone DNS privée, utilisez la gdcloud dns managed-zones create commande :

gdcloud dns managed-zones create DNS_ZONE_NAME \
    --dns-name=DOMAIN_NAME \
    --visibility=PRIVATE \
    --description="DESCRIPTION" \
    [--project=PROJECT_NAMESPACE] \
    [--async]

Remplacez les éléments suivants :

  • DNS_ZONE_NAME : nom de votre zone DNS.
  • DOMAIN_NAME: nom de domaine de votre zone DNS privée, tel que example.com.
  • DESCRIPTION : description de votre zone DNS. Par exemple, Private DNS zone for example.com. Ce champ est facultatif.
  • PROJECT_NAMESPACE : espace de noms de votre projet. Cet indicateur est facultatif si vous avez défini un projet par défaut au niveau mondial à l'aide de gdcloud config set project.
  • --async: spécifiez cette option si vous souhaitez que la commande renvoie immédiatement une réponse au lieu d'attendre la fin de l'opération. Vous pouvez utiliser describe pour vérifier l'état de l'opération.

API

Utilisez l'API Kubernetes pour créer une zone DNS privée :

  • Créez et appliquez une ressource ManagedDNSZone pour créer une zone DNS accessible uniquement à partir du VPC client par défaut :

    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
    

    Remplacez les éléments suivants :

    • GLOBAL_API_SERVER : chemin d'accès kubeconfig du serveur d'API global. Pour en savoir plus, consultez Serveurs d'API globaux et zonaux. Si vous n'avez pas encore généré de fichier kubeconfig pour le serveur d'API, consultez Se connecter pour en savoir plus.
    • DNS_ZONE_NAME : nom de votre zone DNS.
    • PROJECT_NAMESPACE : espace de noms de votre projet.
    • DOMAIN_NAME: nom de domaine de votre zone DNS privée, tel que example.com.
    • DESCRIPTION : description de votre zone DNS. Par exemple, Private DNS zone for example.com. Ce champ est facultatif.

    Notez que la valeur de visibility est sensible à la casse et doit être exactement PRIVATE.

Étape suivante