Partager via


Gestion des zones DNS à l'aide de PowerShell

Cet article vous montre comment gérer vos zones DNS avec Azure PowerShell. Vous pouvez également gérer vos zones DNS à l’aide de l’interface de ligne de commande Azure multiplateforme ou du portail Azure.

Ce guide traite spécifiquement des zones DNS publiques. Pour plus d’informations sur l’utilisation d’Azure PowerShell pour gérer les Zones privées dans Azure DNS, consultez Prise en main d’Azure DNS Private Zones à l’aide d’Azure PowerShell.

Une zone DNS permet d’héberger les enregistrements DNS d’un domaine particulier. Pour commencer à héberger votre domaine dans le DNS Azure, vous devez créer une zone DNS pour ce nom de domaine. Chaque enregistrement DNS pour votre domaine est ensuite créé à l’intérieur de cette zone DNS.

Par exemple, le domaine « contoso.com » peut contenir plusieurs enregistrements DNS, tels que « mail.contoso.com » (pour un serveur de messagerie) et « www.contoso.com » (pour un site web).

Lorsque vous créez une zone DNS dans Azure DNS :

  • Le nom de la zone doit être unique dans le groupe de ressources et la zone ne doit pas déjà exister. Dans le cas contraire, l’opération échoue.
  • Vous pouvez réutiliser le même nom de zone dans un autre groupe de ressources ou abonnement Azure.
  • Lorsque plusieurs zones partagent le même nom, des adresses de serveur de noms différentes sont attribuées à chaque instance. Vous ne pouvez configurer qu’un seul ensemble d’adresses auprès du bureau d’enregistrement de noms de domaine.

Notes

Pour créer une zone DNS avec un nom de domaine dans le DNS Azure, vous ne devez pas nécessairement être propriétaire de ce nom. En revanche, vous devez être propriétaire du domaine pour pouvoir configurer les serveurs de noms du DNS Azure en tant que serveurs de noms corrects pour le nom de domaine auprès du bureau d’enregistrement de noms de domaine.

Pour plus d’informations, voir Délégation de domaine à Azure DNS.

Configurer Azure PowerShell pour Azure DNS

Avant de commencer

Important

Pour utiliser cette fonctionnalité Azure à partir de PowerShell, vous devez installer le module AzureRM. Il s’agit d’un module antérieur disponible uniquement pour Windows PowerShell 5.1 qui ne reçoit plus de nouvelles fonctionnalités. Les modules Az et AzureRM ne sont pas compatibles en cas d’installation pour les mêmes versions de PowerShell. Si vous avez besoin des deux versions :

  1. Désinstallez le module Az à partir d’une session PowerShell 5.1.
  2. Installez le module AzureRM à partir d’une session PowerShell 5.1.
  3. Téléchargez et installez PowerShell Core 6.x ou version ultérieure.
  4. Installez le module Az dans une session PowerShell Core.

Vérifiez que vous disposez des éléments ci-dessous avant de commencer votre configuration.

Connexion à votre compte Azure

Ouvrez la console PowerShell et connectez-vous à votre compte. Pour plus d’informations, consultez Se connecter avec Azure PowerShell.

Connect-AzAccount

Sélection de l’abonnement

Vérifiez les abonnements associés au compte.

Get-AzSubscription

Parmi vos abonnements Azure, choisissez celui que vous souhaitez utiliser.

Select-AzSubscription -SubscriptionName "your_subscription_name"

Créer un groupe de ressources

Azure Resource Manager requiert que tous les groupes de ressources spécifient un emplacement. Celui-ci est utilisé comme emplacement par défaut des ressources de ce groupe. Toutefois, étant donné que toutes les ressources DNS sont globales et non régionales, le choix de l’emplacement du groupe de ressources n’a aucun impact sur Azure DNS.

Ignorez cette étape si vous utilisez un groupe de ressources existant.

New-AzResourceGroup -Name MyDNSResourceGroup -location "West US"

Création d’une zone DNS

Une zone DNS est créée à l’aide de l’applet de commande New-AzDnsZone .

L’exemple ci-dessous crée une zone DNS appelée contoso.com dans le groupe de ressources MyDNSResourceGroup :

New-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup

L’exemple suivant montre comment créer une zone DNS avec deux balises Azure Resource Manager, projet = demo et env = test :

New-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup -Tag @{ project="demo"; env="test" }

Obtention d’une zone DNS

Pour récupérer une zone DNS, utilisez l’applet de commande Get-AzDnsZone : Cette opération retourne un objet de zone DNS correspondant à une zone existante dans Azure DNS. Cet objet contient des données sur la zone (par exemple le nombre de jeux d’enregistrements), mais ne contient pas les jeux d’enregistrements eux-mêmes (voir Get-AzDnsRecordSet).

Get-AzDnsZone -Name contoso.com –ResourceGroupName MyDNSResourceGroup

Name                  : contoso.com
ResourceGroupName     : myresourcegroup
Etag                  : 00000003-0000-0000-8ec2-f4879750d201
Tags                  : {project, env}
NameServers           : {ns1-01.azure-dns.com., ns2-01.azure-dns.net., ns3-01.azure-dns.org.,
                        ns4-01.azure-dns.info.}
NumberOfRecordSets    : 2
MaxNumberOfRecordSets : 5000

Création de la liste des zones DNS

En omettant le nom de la zone dans Get-AzDnsZone, vous pouvez énumérer toutes les zones d’un groupe de ressources. Cette opération renvoie un tableau d’objets de la zone.

$zoneList = Get-AzDnsZone -ResourceGroupName MyDNSResourceGroup
$zoneList

En omettant le nom de zone et le nom du groupe de ressources de Get-AzDnsZone, vous pouvez énumérer toutes les zones dans l’abonnement Azure.

$zoneList = Get-AzDnsZone
$zoneList

Mise à jour d’une zone DNS

Vous pouvez apporter des modifications à une ressource de zone DNS à l’aide de Set-AzDnsZone. Cette applet de commande ne met pas à jour les jeux d’enregistrements DNS dans la zone (voir Guide pratique pour gérer les enregistrements DNS). Elle est utilisée seulement pour mettre à jour les propriétés de la ressource de zone elle-même. Les propriétés de zone accessibles en écriture sont actuellement limitées aux « balises » Azure Resource Manager de la ressource de zone.

Utilisez l’une des options suivantes pour mettre à jour la zone DNS :

Spécifier la zone en utilisant le nom de zone et le groupe de ressources

Cette approche remplace les balises de zone existantes par les valeurs spécifiées.

Set-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup -Tag @{ project="demo"; env="test" }

Spécifier la zone en utilisant un objet $zone

Cette approche récupère l’objet existant de la zone, modifie les balises, puis valide les modifications. De cette façon, les balises existantes peuvent être conservées.

# Get the zone object
$zone = Get-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup

# Remove an existing tag
$zone.Tags.Remove("project")

# Add a new tag
$zone.Tags.Add("status","approved")

# Commit changes
Set-AzDnsZone -Zone $zone

Lors vous utilisez Set-AzDnsZone avec un objet $zone, les vérifications d’ETag sont utilisées pour éviter que les modifications simultanées soient remplacées. Le commutateur facultatif -Overwrite permet de supprimer ces vérifications.

Suppression d’une zone DNS

Les zones DNS peuvent être supprimées à l’aide de l’applet de commande Remove-AzDnsZone.

Notes

Supprimer une zone DNS supprime également tous les enregistrements DNS de la zone. Cette opération ne peut pas être annulée. Si la zone DNS est en cours d’utilisation, les services utilisant la zone échouent lors de la suppression de la zone.

Pour vous protéger contre la suppression accidentelle de zones, consultez la page Comment protéger des zones et enregistrements DNS.

Utilisez l’une des options suivantes pour supprimer une zone DNS :

Spécifier la zone en utilisant le nom de zone et le nom de groupe de ressources

Remove-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup

Spécifier la zone en utilisant un objet $zone

Vous pouvez spécifier la zone à supprimer à l’aide d’un objet $zone retourné par Get-AzDnsZone.

$zone = Get-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup
Remove-AzDnsZone -Zone $zone

L’objet de zone peut également être redirigé au lieu d’être transmis en tant que paramètre :

Get-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup | Remove-AzDnsZone

Comme avec Set-AzDnsZone, la spécification de la zone avec un objet $zone active les vérifications d’ETag et permet de s’assurer que les modifications simultanées ne sont pas supprimées. Utilisez le commutateur -Overwrite pour supprimer ces vérifications.

Invites de confirmation

Les applets de commande New-AzDnsZone, Set-AzDnsZone et Remove-AzDnsZone prennent en charge les invites de confirmation.

Les invites New-AzDnsZone et Set-AzDnsZone demandent une confirmation si la variable de préférence PowerShell $ConfirmPreference a la valeur Medium ou une valeur inférieure. Étant donné que la suppression d’une zone DNS peut entraîner des conditions indésirables, l’applet de commande Remove-AzDnsZone vous demande de confirmer si la variable PowerShell $ConfirmPreference a une autre valeur que None.

Étant donné que la valeur par défaut $ConfirmPreference est High, seule la commande Remove-AzDnsZone demande une confirmation par défaut.

Vous pouvez remplacer le paramétrage actuel de $ConfirmPreference par le paramètre -Confirm. Si vous spécifiez les paramètres -Confirm ou -Confirm:$True, les applets de commande vous invitent à confirmer l’exécution. Si vous spécifiez -Confirm:$False, la cmdlet ne demande pas de confirmation.

Pour plus d’informations sur les paramètres -Confirm et $ConfirmPreference, voir À propos des variables de préférence.

Étapes suivantes

Découvrez comment gérer des jeux d’enregistrements et des enregistrements dans votre zone DNS.
Découvrez comment déléguer votre domaine à Azure DNS.
Examinez la documentation de référence d’Azure DNS PowerShell.