Como gerenciar as zonas DNS usando o PowerShell
Este artigo mostra como gerenciar suas zonas DNS usando o Azure PowerShell. Você também pode gerenciar as zonas DNS usando a plataforma cruzada CLI do Azure ou o portal do Azure.
Este guia trata especificamente das zonas DNS públicas. Para obter informações sobre como usar o Azure PowerShell para gerenciar Zonas Privadas no DNS do Azure, consulte Introdução às Zonas Privadas do DNS do Azure usando o Azure PowerShell.
Uma zona DNS é usada para hospedar os registros DNS para um domínio específico. Para iniciar a hospedagem do seu domínio no DNS do Azure, você precisará criar uma zona DNS para esse nome de domínio. Cada registro DNS para seu domínio é criado dentro dessa zona DNS.
Por exemplo, o domínio 'contoso.com' pode conter vários registros DNS, como 'mail.contoso.com' (para um servidor de email) e 'www.contoso.com' (para um site da Web).
Ao criar uma zona DNS no DNS do Azure:
- O nome da zona deve ser exclusivo dentro do grupo de recursos e a zona não deve existir ainda. Caso contrário, a operação falhará.
- O mesmo nome de zona pode ser reutilizado em outro grupo de recursos ou uma assinatura do Azure diferente.
- Quando várias zonas têm o mesmo nome, cada instância recebe endereços de servidor de nomes diferentes. Apenas um conjunto de endereços pode ser configurado com o registrador de nome de domínio.
Observação
Você não precisa ter um nome de domínio para criar uma zona DNS com esse nome de domínio no DNS do Azure. No entanto, você precisa ser o proprietário do domínio para configurar os servidores de nomes do DNS do Azure como os servidores de nome corretos para o nome de domínio no registrador de nome de domínio.
Confira Delegar um domínio ao DNS do Azurepara saber mais.
Configurar o Azure PowerShell para DNS do Azure
Antes de começar
Importante
Usar esse recurso do Azure do PowerShell exige que você tenha o módulo AzureRM
instalado. Esse é um módulo mais antigo disponível apenas para o Windows PowerShell 5.1. que não recebe mais novos recursos.
Os módulos Az
e AzureRM
não são compatíveis quando instalados para as mesmas versões do PowerShell.
Se você precisar das duas versões:
- Desinstale o módulo Az de uma sessão do PowerShell 5.1.
- Instale o módulo AzureRM de uma sessão do PowerShell 5.1.
- Baixe e instale o PowerShell Core 6.x ou posterior.
- Instale o módulo Az em uma sessão do PowerShell Core.
Antes de começar a configurar, verifique se você tem os itens a seguir.
- Uma assinatura do Azure. Se ainda não tiver uma assinatura do Azure, você poderá ativar os Benefícios do assinante do MSDN ou inscrever-se para obter uma conta gratuita.
- Você precisa instalar a versão mais recente dos cmdlets do Azure Resource Manager do PowerShell. Para obter mais informações, confira Como instalar e configurar o Azure PowerShell.
Entre na sua conta do Azure
Abra o console do PowerShell e conecte-se à sua conta. Para obter mais informações, veja Entrar com o Azure PowerShell.
Connect-AzAccount
Selecionar a assinatura
Verificar as assinaturas da conta.
Get-AzSubscription
Escolha quais das suas assinaturas do Azure deseja usar.
Select-AzSubscription -SubscriptionName "your_subscription_name"
Criar um grupo de recursos
O Azure Resource Manager requer que todos os grupos de recursos especifiquem um local. Esse local é usado como o local padrão para os recursos do grupo de recursos em questão. No entanto, como todos os recursos de DNS são globais, não regionais, a escolha do local do grupo de recursos não afeta o DNS do Azure.
Você pode ignorar esta etapa se está usando um grupo de recursos existente.
New-AzResourceGroup -Name MyDNSResourceGroup -location "West US"
Criar uma zona DNS
Uma zona DNS é criada usando o cmdlet New-AzDnsZone
.
O seguinte exemplo cria uma zona DNS chamada contoso.com no grupo de recursos chamado MyDNSResourceGroup:
New-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup
O exemplo a seguir mostra como criar uma zona DNS com duas marcas do Azure Resource Manager, project = demo e env = test:
New-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup -Tag @{ project="demo"; env="test" }
Obter uma zona DNS
Para recuperar uma zona DNS, use o cmdlet Get-AzDnsZone
. Esta operação retornará um objeto de zona DNS correspondente a uma zona existente no DNS do Azure. O objeto contém dados sobre a zona (como o número de conjuntos de registros), mas não contém os conjuntos de registro em si (confira 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
Listar as zonas DNS
Omitindo o nome da zona de Get-AzDnsZone
, você pode enumerar todas as zonas em um grupo de recursos. Essa operação retorna uma matriz de objetos de zona.
$zoneList = Get-AzDnsZone -ResourceGroupName MyDNSResourceGroup
$zoneList
Omitindo o nome da zona e o nome do grupo de recursos do Get-AzDnsZone
, você pode enumerar todas as regiões na assinatura do Azure.
$zoneList = Get-AzDnsZone
$zoneList
Atualizar uma zona DNS
As alterações a um recurso da zona DNS podem ser feitas usando o Set-AzDnsZone
. Este cmdlet não atualiza nenhum dos conjuntos de registros DNS dentro da zona (confira Como gerenciar registros DNS). Ele só é usado para atualizar as propriedades do recurso da zona em si. As propriedades de zona graváveis são limitadas às ‘marcas’ do Azure Resource Manager para o recurso de zona.
Use um dos dois métodos a seguir para atualizar uma zona DNS:
Especifique a zona usando o nome da zona e o grupo de recursos
Essa abordagem substitui as marcas de zona existente com os valores especificados.
Set-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup -Tag @{ project="demo"; env="test" }
Especifique a zona usando um objeto de $zone
Essa abordagem recupera o objeto de zona existente, modifica as marcas e, em seguida, confirma as alterações. Dessa forma, as marcas existentes podem ser preservadas.
# 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
Ao usar Set-AzDnsZone
com um objeto $zone, verificações de Etag serão usadas para garantir que as alterações simultâneas não sejam substituídas. Você pode usar o argumento -Overwrite
opcional para omitir essas verificações.
Excluir uma zona DNS
As zonas DNS podem ser excluídas usando o cmdlet Remove-AzDnsZone
.
Observação
Excluir uma zona DNS também excluirá todos os registros DNS na zona. Essa operação não pode ser desfeita. Se a zona DNS estiver em uso, serviços que usam a zona falharão quando a zona for excluída.
Para se proteger contra a exclusão acidental da zona, consulte Proteger registros e zonas DNS.
Use um dos dois métodos a seguir para excluir uma zona DNS:
Especifique a zona usando o nome da zona e o nome do grupo de recursos
Remove-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup
Especifique a zona usando um objeto de $zone
Você pode especificar a zona a ser excluído usando um $zone
objeto retornado por Get-AzDnsZone
.
$zone = Get-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup
Remove-AzDnsZone -Zone $zone
O objeto de zona também pode ser redirecionado em vez de ser passado como um parâmetro:
Get-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup | Remove-AzDnsZone
Assim como com Set-AzDnsZone
, especificar a zona usando um objeto $zone
habilita as verificações de Etag para garantir que as alterações simultâneas não sejam excluídas. Use o -Overwrite
para suprimir essas verificações.
Prompts de confirmação
Os cmdlets New-AzDnsZone
, Set-AzDnsZone
e Remove-AzDnsZone
oferecem suporte aos prompts de confirmação.
New-AzDnsZone
e Set-AzDnsZone
solicitam confirmação caso a variável de preferência do PowerShell $ConfirmPreference
tenha um valor Medium
ou inferior. Como a exclusão de uma zona DNS pode causar condições indesejadas, o cmdlet Remove-AzDnsZone
solicitará a confirmação se a variável $ConfirmPreference
do PowerShell tiver um valor diferente de None
.
Desde o valor padrão para $ConfirmPreference
é High
, apenas Remove-AzDnsZone
solicitará uma confirmação por padrão.
Você pode substituir a configuração $ConfirmPreference
atual usando o parâmetro -Confirm
. Se você especificar -Confirm
ou -Confirm:$True
, o cmdlet solicitará uma confirmação antes de executar. Se você especificar -Confirm:$False
, o cmdlet não solicitará uma confirmação.
Para obter mais informações sobre -Confirm
e $ConfirmPreference
, consulte Sobre as Variáveis de Preferência.
Próximas etapas
Saiba como gerenciar conjuntos de registros e registros em sua zona DNS.
Saiba como delegar seu domínio ao DNS do Azure.
Examine a documentação de referência do PowerShell do DNS do Azure.