Copiar um disco gerenciado para a mesma assinatura ou outra assinatura com a CLI
Este artigo contém dois scripts. O primeiro script copia um disco gerenciado que estava usando chaves de criptografia gerenciadas pela plataforma na mesma assinatura ou uma assinatura diferente, mas na mesma região. O segundo script copia um disco gerenciado que estava usando chaves gerenciadas pelo cliente na mesma assinatura ou uma assinatura diferente na mesma região. A cópia só funciona quando as assinaturas fizerem parte do mesmo locatário do Microsoft Entra.
Caso você não tenha uma assinatura do Azure, crie uma conta gratuita do Azure antes de começar.
Pré-requisitos
Use o ambiente Bash no Azure Cloud Shell. Para obter mais informações, confira Início Rápido para Bash no Azure Cloud Shell.
Se preferir executar os comandos de referência da CLI localmente, instale a CLI do Azure. Para execuções no Windows ou no macOS, considere executar a CLI do Azure em um contêiner do Docker. Para obter mais informações, confira Como executar a CLI do Azure em um contêiner do Docker.
Se estiver usando uma instalação local, entre com a CLI do Azure usando o comando az login. Para concluir o processo de autenticação, siga as etapas exibidas no terminal. Para ver outras opções de entrada, confira Conectar-se com a CLI do Azure.
Quando solicitado, instale a extensão da CLI do Azure no primeiro uso. Para obter mais informações sobre extensões, confira Usar extensões com a CLI do Azure.
Execute az version para localizar a versão e as bibliotecas dependentes que estão instaladas. Para fazer a atualização para a versão mais recente, execute az upgrade.
Exemplo de script
Iniciar o Azure Cloud Shell
O Azure Cloud Shell é um shell gratuito e interativo que poderá ser usado para executar as etapas deste artigo. Ele tem ferramentas do Azure instaladas e configuradas para usar com sua conta.
Para abrir o Cloud Shell, basta selecionar Experimentar no canto superior direito de um bloco de código. Você também pode iniciar o Cloud Shell em uma guia separada do navegador indo até https://shell.azure.com.
Quando o Cloud Shell abrir, verifique se o Bash está selecionado para o ambiente. As sessões subsequentes usarão a CLI do Azure em um ambiente Bash. Selecione Copiar para copiar os blocos de código, cole-os no Cloud Shell e pressione Enter para executá-los.
Entrar no Azure
O Cloud Shell é autenticado automaticamente na conta inicial usada para entrar. Use o seguinte script para entrar usando uma assinatura diferente, substituindo <Subscription ID>
pela ID da Assinatura do Azure. Caso você não tenha uma assinatura do Azure, crie uma conta gratuita do Azure antes de começar.
subscription="<subscriptionId>" # add subscription here
az account set -s $subscription # ...or use 'az login'
Para saber mais, confira definir assinatura ativa ou fazer logon de forma interativa
Discos com chaves de criptografia gerenciadas pela plataforma
#Provide the subscription Id of the subscription where managed disk exists
sourceSubscriptionId="<subscriptionId>"
#Provide the name of your resource group where managed disk exists
sourceResourceGroupName=mySourceResourceGroupName
#Provide the name of the managed disk
managedDiskName=myDiskName
#Set the context to the subscription Id where managed disk exists
az account set --subscription $sourceSubscriptionId
#Get the managed disk Id
managedDiskId=$(az disk show --name $managedDiskName --resource-group $sourceResourceGroupName --query [id] -o tsv)
#If managedDiskId is blank then it means that managed disk does not exist.
echo 'source managed disk Id is: ' $managedDiskId
#Provide the subscription Id of the subscription where managed disk will be copied to
targetSubscriptionId=6492b1f7-f219-446b-b509-314e17e1efb0
#Name of the resource group where managed disk will be copied to
targetResourceGroupName=mytargetResourceGroupName
#Set the context to the subscription Id where managed disk will be copied to
az account set --subscription $targetSubscriptionId
#Copy managed disk to different subscription using managed disk Id
az disk create --resource-group $targetResourceGroupName --name $managedDiskName --source $managedDiskId
Discos com chaves gerenciadas pelo cliente
#Provide the subscription Id of the subscription where managed disk exists
sourceSubscriptionId="<subscriptionId>"
#Provide the name of your resource group where managed disk exists
sourceResourceGroupName=mySourceResourceGroupName
#Provide the name of the managed disk
managedDiskName=myDiskName
#Provide the name of the target disk encryption set
diskEncryptionSetName=myName
#Provide the target disk encryption set resource group
diskEncryptionResourceGroup=myGroup
#Set the context to the subscription Id where managed disk exists
az account set --subscription $sourceSubscriptionId
#Get the managed disk Id
managedDiskId=$(az disk show --name $managedDiskName --resource-group $sourceResourceGroupName --query [id] -o tsv)
#If managedDiskId is blank then it means that managed disk does not exist.
echo 'source managed disk Id is: ' $managedDiskId
#Get the disk encryption set ID
diskEncryptionSetId=$(az disk-encryption-set show --name $diskEncryptionSetName --resource-group $diskEncryptionResourceGroup)
#Provide the subscription Id of the subscription where managed disk will be copied to
targetSubscriptionId=6492b1f7-f219-446b-b509-314e17e1efb0
#Name of the resource group where managed disk will be copied to
targetResourceGroupName=mytargetResourceGroupName
#Set the context to the subscription Id where managed disk will be copied to
az account set --subscription $targetSubscriptionId
#Copy managed disk to different subscription using managed disk Id and disk encryption set ID
#Add --location parameter to change the location
az disk create -g $targetResourceGroupName -n $managedDiskName --source $managedDiskId --disk-encryption-set $diskEncrpytonSetId
Limpar os recursos
Execute o comando a seguir para remover o grupo de recursos, a VM e todos os recursos relacionados.
az group delete --name mySourceResourceGroupName
Exemplo de referência
Esse script usa os comandos a seguir para criar um disco gerenciado na assinatura de destino usando a Id
do disco gerenciado de origem. Cada comando da tabela é vinculado à documentação específica do comando.
Comando | Observações |
---|---|
az disk show | Obtém todas as propriedades de um disco gerenciado usando o nome e as propriedades do grupo de recursos do disco gerenciado. A propriedade Id é usada para copiar o disco gerenciado para outra assinatura. |
az disk create | Copia um disco gerenciado criando um disco gerenciado em outra assinatura usando a Id e o nome do disco gerenciado pai. |
Próximas etapas
Criar uma máquina virtual com base em um disco gerenciado
Para saber mais sobre a CLI do Azure, veja a documentação da CLI do Azure.
Mais exemplos de script da CLI de máquina virtual e discos gerenciados podem ser encontrados na documentação da VM Linux do Azure.