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 :
- Désinstallez le module Az à partir d’une session PowerShell 5.1.
- Installez le module AzureRM à partir d’une session PowerShell 5.1.
- Téléchargez et installez PowerShell Core 6.x ou version ultérieure.
- Installez le module Az dans une session PowerShell Core.
Vérifiez que vous disposez des éléments ci-dessous avant de commencer votre configuration.
- Un abonnement Azure. Si vous ne disposez pas déjà d’un abonnement Azure, vous pouvez activer vos avantages abonnés MSDN ou créer un compte gratuit.
- Vous devez installer la dernière version des applets de commande PowerShell Azure Resource Manager. Pour plus d’informations, consultez Installer et configurer Azure PowerShell.
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.