Realocar o Azure Key Vault para outra região

O Azure Key Vault não dá suporte à realocação do cofre de chaves para outra região.

Em vez de realocar, você precisa:

  • Criar um novo cofre de chaves com a realocação dos serviços associados do Azure.
  • Regenerar as chaves, segredos ou certificados necessários. Em alguns casos, talvez seja necessário transferir os segredos ou certificados do cofre de chaves existente para o cofre de chaves realocado.

Diagrama mostrando o padrão de realocação do Azure Key Vault

Pré-requisitos

  • Verifique se a sua assinatura do Azure permite que você crie cofres de chaves na região de destino.

  • Crie um mapa de dependência com todos os serviços do Azure usados pelo Key Vault. Para os serviços que estão no escopo da realocação, você deve escolher a estratégia de realocação apropriada.

  • Dependendo do design do Key Vault, talvez seja necessário implantar e configurar a Rede Virtual na região de destino.

  • Documente e planeje a reconfiguração no Key Vault na região de destino:

    • Definições das Políticas de acesso e Configurações de rede.
    • Proteção contra limpeza e exclusão temporária.
    • Configurações de rotação automática.

Tempo de inatividade

Para entender os possíveis tempos de inatividade envolvidos, confira Cloud Adoption Framework para o Azure: selecione um método de relocalização.

Consideração para Pontos de extremidade de serviço

Os pontos de extremidade de serviço de rede virtual do Azure Key Vault restringem o acesso a uma rede virtual especificada. Os pontos de extremidade também podem restringir o acesso a uma lista de intervalos de endereços IPv4 (protocolo da Internet versão 4). Qualquer usuário que se conecte ao Key Vault de fora dessas fontes tem acesso negado. Se os pontos de extremidade de serviço foram configurados na região de origem do recurso do Key Vault, o mesmo precisaria ser feito no destino um.

Para uma recriação bem-sucedida do Key Vault para a região de destino, a VNet e a Sub-rede devem ser criadas com antecedência. Caso a movimentação desses dois recursos esteja sendo realizada com a ferramenta do Azure Resource Mover, os pontos de extremidade de serviço não serão configurados automaticamente. Portanto, eles precisam ser configurados manualmente, o que pode ser feito por meio do portal do Azure, da CLI do Azure ou do Azure PowerShell.

Consideração para ponto de extremidade privado

O Link Privado do Azure fornece conectividade privada de uma rede virtual para a plataforma como serviço (PaaS) do Azure, propriedade do cliente ou serviços de parceiros da Microsoft. O Link Privado simplifica a arquitetura de rede e protege a conexão entre pontos de extremidade no Azure eliminando a exposição de dados à Internet pública.

Para uma recriação bem-sucedida do Key Vault na região de destino, a VNet e a Sub-rede devem ser criadas antes que a recriação real ocorra.

Consideração para a Integração de DNS do Ponto de Extremidade Privado do Azure

É importante definir corretamente as configurações de DNS para que o endereço IP do ponto de extremidade privado seja resolvido para o FQDN (nome de domínio totalmente qualificado) da cadeia de conexão.

Os serviços do Azure existentes já podem ter uma configuração de DNS para um ponto de extremidade público, e essa configuração precisa ser substituída para se conectar usando o ponto de extremidade privado.

O adaptador de rede associado ao ponto de extremidade privado contém as informações para configurar o DNS, que incluem o FQDN e os endereços IP privados do recurso de link privado.

Você pode usar as seguintes opções para definir as configurações de DNS para pontos de extremidade privados:

  • Use o arquivo de host (recomendado somente para testes). Você pode usar o arquivo de host em uma máquina virtual para substituir o DNS.
  • Use a zona DNS privada. Use as zonas DNS privadas para substituir a resolução DNS de um ponto de extremidade privado. Uma zona DNS privada pode ser vinculada à sua rede virtual para resolver domínios específicos.
  • Use o encaminhador de DNS (opcional). É possível usar o encaminhador de DNS para substituir a resolução DNS de um recurso de link privado. Crie uma regra de encaminhamento de DNS para usar uma zona DNS privada no servidor DNS hospedado em uma rede virtual.

Preparar-se

Para exportar um modelo com o portal do Azure:

  1. Entre no portal do Azure.

  2. Selecione Todos os recursos e escolha seu cofre de chaves.

  3. Selecione >Automação>Exportar modelo.

  4. Escolha Download na folha Exportar modelo.

  5. Localize o arquivo .zip que você baixou do portal e descompacte-o na pasta desejada.

    Esse arquivo zip contém os arquivos .json que consistem no modelo e nos scripts para implantar o modelo.

Lembre-se dos seguintes conceitos:

  • Os nomes do cofre de chaves são globalmente exclusivos. Não é possível reutilizar um nome de cofre.
  • É preciso reconfigurar as políticas de acesso e as definições de configuração de rede no novo cofre de chaves.
  • É preciso reconfigurar a exclusão reversível e limpar a proteção no novo cofre de chaves.
  • A operação de backup e restauração não preserva as configurações de rotação automática. Talvez seja necessário redefinir as configurações.

Modificar o modelo

Modifique o modelo alterando o nome e a região do cofre de chaves.

Para implantar o modelo com o portal do Azure:

  1. No portal do Azure, selecione Criar um recurso.

  2. Em Pesquisar no Marketplace, digite implantação de modelo e pressione ENTER.

  3. Selecione Implantação de modelo.

  4. Selecione Criar.

  5. Selecione Criar seu próprio modelo no editor.

  6. Selecione Carregar arquivo e siga as instruções para carregar o arquivo template.json que você baixou na última seção.

  7. No arquivo template.json, nomeie o cofre de chaves definindo o valor padrão do nome do cofre de chaves. Este exemplo define o valor padrão do nome do cofre de chaves como mytargetaccount.

    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "vaults_name": {
            "defaultValue": "key-vault-name",
            "type": "String"
        }
    },
    
  8. Edite a propriedade de localização no arquivo template.json para a região de destino. Este exemplo define a região de destino como centralus.

    "resources": [
        {
            "type": "Microsoft.KeyVault/vaults",
            "apiVersion": "2023-07-01",
            "name": "[parameters('vaults_name')]",
            "location": "centralus",
            ...
        },
        ...
    ]
    

    Para obter os códigos de localização de região, confira Locais do Azure. O código de uma região é o nome da região em inglês sem espaços, por exemplo, EUA Central = centralus.

  9. Remova os recursos do tipo de ponto de extremidade privado no modelo.

    {
    "type": "Microsoft.KeyVault/vaults/privateEndpointConnections",
    ...
    }
    
  10. Caso você tenha configurado um ponto de extremidade de serviço no cofre de chaves, na seção networkAcl, em virtualNetworkRules, adicione a regra da sub-rede de destino. Verifique se o sinalizador ignoreMissingVnetServiceEndpoint está definido como False, de modo que a IaC não implante o Key Vault caso o ponto de extremidade de serviço não esteja configurado na região de destino.

    parameter.json

    {
      "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
      "contentVersion": "1.0.0.0",
      "parameters": {
        "target_vnet_externalid": {
          "value": "virtualnetwork-externalid"
        },
        "target_subnet_name": {
          "value": "subnet-name"
        }
      }
    }
    

    _template.json

        "networkAcls": {
            "bypass": "AzureServices",
            "defaultAction": "Deny",
            "ipRules": [],
            "virtualNetworkRules": [
                {
                    "id": "[concat(parameters('target_vnet_externalid'), concat('/subnets/', parameters('target_subnet_name')]",
                    "ignoreMissingVnetServiceEndpoint": false
                }
            ]
        }
    

Reimplantar

Implante o modelo para criar um novo cofre de chaves na região de destino.

  1. Salve o arquivo template.json.

  2. Insira ou selecione os valores da propriedade:

    • Assinatura: Selecione uma assinatura do Azure.

    • Grupo de recursos: selecione Criar novo e dê um nome ao grupo de recursos.

    • Localização: Selecione uma localização do Azure.

  3. Selecione Concordo com os termos e condições indicados acimae selecione Selecionar Compra.

  4. As definições das Políticas de acesso e as Configurações de rede (pontos de extremidade privados) precisam ser configuradas novamente no novo Key Vault. A proteção contra limpeza e exclusão temporária precisa ser configurada novamente no novo cofre de chaves e as Configurações de rotação automática.

Dica

Se você receber um erro que afirma que o XML especificado não é sintaticamente válido, compare o JSON em seu modelo com os esquemas descritos na documentação do Azure Resource Manager.

Reimplantar com a migração de dados

Importante

Se você planeja mover um Key Vault entre regiões, mas dentro da mesma geografia, é recomendável fazer um backup e restauração de segredos, chaves e certificados.

  1. Siga as etapas descritas na abordagem de reimplantação.
  2. Para segredos:
    1. Copie e salve o valor do segredo no cofre de chaves de origem.
    2. Recrie o segredo no cofre de chaves de destino e defina o valor como o segredo salvo.
  3. Para certificados:
    1. Exporte o certificado para um arquivo PFX.
    2. Importe o arquivo PFX para o cofre de chaves de destino. Se não for possível exportar a chave privada (exportable não estiver definido), você deverá gerar um novo certificado e importá-lo para o cofre de chaves de destino.
  4. Com a realocação do serviço associado do Azure, as chaves são regeneradas.
  5. Confirme se as chaves foram geradas para o serviço associado.

Verificar

Antes de excluir o cofre de chaves antigo, verifique se o novo cofre contém todas as chaves, segredos e certificados necessários após a realocação dos serviços associados do Azure.