Configurar o MACsec em portas do ExpressRoute Direct
Este artigo fornece orientação sobre como configurar o MACsec, um protocolo de segurança que protege a comunicação entre seus roteadores de borda e os roteadores de borda da Microsoft, usando comandos do PowerShell.
Antes de começar
Antes de começar a configurar o MACsec, verifique se você atende aos seguintes pré-requisitos:
- Você se familiarizou com os fluxos de trabalho de provisionamento do ExpressRoute Direct.
- Você criou um recurso de porta do ExpressRoute Direct de acordo com as instruções.
- Você instalou a versão mais recente do Azure PowerShell em seu computador se pretende executar o PowerShell localmente.
Trabalhando com o Azure PowerShell
As etapas e exemplos neste artigo usam módulos Az do Azure PowerShell. Para instalar os módulos Az localmente no seu computador, consulte Instalar o Azure PowerShell. Para saber mais sobre o novo módulo Az, consulte Apresentando o novo módulo Az do Azure PowerShell. Os cmdlets do PowerShell são atualizados com frequência. Se você não estiver executando a versão mais recente, os valores especificados nas instruções podem falhar. Para localizar as versões instaladas do PowerShell em seu sistema, use o Get-Module -ListAvailable Az
cmdlet.
Você pode usar o Azure Cloud Shell para executar a maioria dos cmdlets do PowerShell e comandos da CLI, em vez de instalar o Azure PowerShell ou a CLI localmente. O Azure Cloud Shell é um shell interativo gratuito que tem ferramentas comuns do Azure pré-instaladas e está configurado para ser usado com sua conta. Para executar qualquer código contido neste artigo no Azure Cloud Shell, abra uma sessão do Cloud Shell, use o botão Copiar em um bloco de código para copiar o código e cole-o na sessão do Cloud Shell com Ctrl+Shift+V no Windows e Linux ou Cmd+Shift+V no macOS. O texto colado não é executado automaticamente, pressione Enter para executar o código.
Existem algumas formas de iniciar o Cloud Shell:
Inicie sessão e selecione a subscrição certa
Siga estas etapas para iniciar a configuração:
Entre na sua conta do Azure usando suas credenciais.
Escolha a subscrição que pretende utilizar para esta configuração.
Se estiver a utilizar o Azure Cloud Shell, inicie sessão na sua conta do Azure automaticamente depois de clicar em 'Experimentar'. Para entrar localmente, abra o console do PowerShell com privilégios elevados e execute o cmdlet para se conectar.
Connect-AzAccount
Se tiver mais do que uma subscrição, obtenha uma lista das suas subscrições do Azure.
Get-AzSubscription
Especifique a subscrição que pretende utilizar.
Select-AzSubscription -SubscriptionName "Name of subscription"
Criar o Cofre da Chave do Azure, segredos MACsec e identidade do usuário
Para armazenar segredos MACsec com segurança, você precisa criar uma instância do Cofre da Chave em um novo grupo de recursos. O Cofre da Chave é um serviço que permite gerenciar e proteger chaves criptográficas, certificados e segredos no Azure. Para obter mais informações, consulte O que é o Azure Key Vault?.
New-AzResourceGroup -Name "your_resource_group" -Location "resource_location" $keyVault = New-AzKeyVault -Name "your_key_vault_name" -ResourceGroupName "your_resource_group" -Location "resource_location" -SoftDeleteRetentionInDays 90
Você pode reutilizar um Cofre da Chave ou grupo de recursos existente para essa configuração. No entanto, você deve garantir que o [recurso de exclusão suave] esteja ativado no Cofre da Chave. Esse recurso permite que você recupere chaves, segredos e certificados excluídos dentro de um período de retenção. Se o Cofre da Chave não tiver o soft-delete ativado, execute os seguintes comandos para habilitá-lo:
($resource = Get-AzResource -ResourceId (Get-AzKeyVault -VaultName "your_existing_keyvault").ResourceId).Properties | Add-Member -MemberType "NoteProperty" -Name "enableSoftDelete" -Value "true" Set-AzResource -ResourceId $resource.ResourceId -Properties $resource.Properties
Nota
- O ExpressRoute é um serviço confiável dentro do Azure que dá suporte a políticas de Segurança de Rede no Cofre da Chave do Azure. Para obter mais informações, consulte Configurar o Firewall e as Redes Virtuais do Azure Key Vault.
- Você não deve colocar o Cofre da Chave do Azure atrás de um ponto de extremidade privado, pois isso impedirá a comunicação com o plano de gerenciamento da Rota Expressa. O plano de gerenciamento de Rota Expressa é responsável por gerenciar as chaves e parâmetros MACsec para sua conexão.
Para criar uma nova identidade de usuário, você precisa usar o
New-AzUserAssignedIdentity
cmdlet. Esse cmdlet cria uma identidade gerenciada atribuída pelo usuário na ID do Microsoft Entra e a registra com a assinatura especificada e o grupo de recursos. Uma identidade gerenciada atribuída pelo usuário é um recurso autônomo do Azure que pode ser atribuído a qualquer serviço do Azure que ofereça suporte a identidades gerenciadas. Você pode usar essa identidade para autenticar e autorizar o acesso aos recursos do Azure sem armazenar credenciais em seu código ou arquivos de configuração. Para obter mais informações, consulte O que são identidades gerenciadas para recursos do Azure?.$identity = New-AzUserAssignedIdentity -Name "identity_name" -Location "resource_location" -ResourceGroupName "your_resource_group"
Para usar uma identidade de usuário existente, execute o seguinte comando:
$identity = Get-AzUserAssignedIdentity -ResourceGroupName "your_resource_group" -Name "identity_name"
Instale o módulo a seguir no modo Administrador se o PowerShell não reconhecer
New-AzUserAssignedIdentity
ouGet-AzUserAssignedIdentity
como cmdlets válidos. Em seguida, execute o comando acima novamente.Install-Module -Name Az.ManagedServiceIdentity
Crie uma chave de associação de conectividade (CAK) e um nome de chave de associação de conectividade (CKN) e armazene-os no Cofre de Chaves.
$CAK = ConvertTo-SecureString "your_key" -AsPlainText -Force $CKN = ConvertTo-SecureString "your_key_name" -AsPlainText -Force $MACsecCAKSecret = Set-AzKeyVaultSecret -VaultName "your_key_vault_name" -Name "CAK_name" -SecretValue $CAK $MACsecCKNSecret = Set-AzKeyVaultSecret -VaultName "your_key_vault_name" -Name "CKN_name" -SecretValue $CKN
Nota
- CKN deve ser uma cadeia de comprimento par até 64 dígitos hexadecimais (0-9, A-F).
- O comprimento do CAK depende do conjunto de codificação especificado:
- Para GcmAes128 e GcmAesXpn128, o CAK deve ser uma cadeia de caracteres de comprimento par com 32 dígitos hexadecimais (0-9, A-F).
- Para GcmAes256 e GcmAesXpn256, o CAK deve ser uma cadeia de caracteres de comprimento par com 64 dígitos hexadecimais (0-9, A-F).
- Para CAK, o comprimento total da chave deve ser usado. Se a chave for menor do que o comprimento necessário, será
0's
adicionada ao final da chave para atender ao requisito de comprimento. Por exemplo, CAK de 1234 será 12340000... para 128 bits e 256 bits com base na cifra.
Conceda à identidade do usuário a autorização para executar a
GET
operação.Set-AzKeyVaultAccessPolicy -VaultName "your_key_vault_name" -PermissionsToSecrets get -ObjectId $identity.PrincipalId
A identidade do usuário adquiriu o acesso para recuperar os segredos, como CAK e CKN, do Cofre da Chave.
Configure a identidade do usuário como a entidade de serviço designada para a Rota Expressa.
$erIdentity = New-AzExpressRoutePortIdentity -UserAssignedIdentityId $identity.Id
Configurar o MACsec em portas do ExpressRoute Direct
Como ativar o MACsec
Cada instância do ExpressRoute Direct consiste em duas portas físicas. Você pode ativar o MACsec em ambas as portas simultaneamente ou em uma porta individualmente. A última opção permite desviar o tráfego para uma porta em funcionamento enquanto mantém a outra porta, o que pode reduzir a interrupção se o ExpressRoute Direct estiver operacional.
Nota
Você pode configurar cifras XPN e não-XPN:
- GcmAes128
- GcmAes256
- GcmAesXpn128
- GcmAesXpn256
A prática recomendada sugerida é configurar a criptografia com cifras xpn para evitar falhas esporádicas de sessão que ocorrem com cifras não-xpn em links de alta velocidade.
Estabeleça os segredos e a cifra MACsec e vincule a identidade do usuário à porta para permitir que o código de gerenciamento da Rota Expressa recupere os segredos do MACsec quando necessário.
$erDirect = Get-AzExpressRoutePort -ResourceGroupName "your_resource_group" -Name "your_direct_port_name" $erDirect.Links[0]. MacSecConfig.CknSecretIdentifier = $MacSecCKNSecret.Id $erDirect.Links[0]. MacSecConfig.CakSecretIdentifier = $MacSecCAKSecret.Id $erDirect.Links[0]. MacSecConfig.Cipher = "GcmAes256" $erDirect.Links[1]. MacSecConfig.CknSecretIdentifier = $MacSecCKNSecret.Id $erDirect.Links[1]. MacSecConfig.CakSecretIdentifier = $MacSecCAKSecret.Id $erDirect.Links[1]. MacSecConfig.Cipher = "GcmAes256" $erDirect.identity = $erIdentity Set-AzExpressRoutePort -ExpressRoutePort $erDirect
(Opcional) Se as portas estiverem no estado Administrativo Inativo, você poderá executar os seguintes comandos para abrir as portas.
$erDirect = Get-AzExpressRoutePort -ResourceGroupName "your_resource_group" -Name "your_direct_port_name" $erDirect.Links[0].AdminState = "Enabled" $erDirect.Links[1].AdminState = "Enabled" Set-AzExpressRoutePort -ExpressRoutePort $erDirect
O MACsec agora está habilitado nas portas ExpressRoute Direct no lado da Microsoft. Se você não o configurou em seus dispositivos de borda, você pode continuar a configurá-los com os mesmos segredos MACsec e cifra.
(Opcional) Para ativar as portas que estão no estado Administrativo Inativo, execute os seguintes comandos:
$erDirect = Get-AzExpressRoutePort -ResourceGroupName "your_resource_group" -Name "your_direct_port_name" $erDirect.Links[0].MacSecConfig.SciState = "Enabled" $erDirect.Links[1].MacSecConfig.SciState = "Enabled" Set-AzExpressRoutePort -ExpressRoutePort $erDirect
A SCI agora está habilitada nas portas ExpressRoute Direct.
Como desativar o MACsec
Para desativar o MACsec em sua instância do ExpressRoute Direct, execute os seguintes comandos:
$erDirect = Get-AzExpressRoutePort -ResourceGroupName "your_resource_group" -Name "your_direct_port_name"
$erDirect.Links[0]. MacSecConfig.CknSecretIdentifier = $null
$erDirect.Links[0]. MacSecConfig.CakSecretIdentifier = $null
$erDirect.Links[1]. MacSecConfig.CknSecretIdentifier = $null
$erDirect.Links[1]. MacSecConfig.CakSecretIdentifier = $null
$erDirect.identity = $null
Set-AzExpressRoutePort -ExpressRoutePort $erDirect
MACsec agora está desativado nas portas ExpressRoute Direct no lado da Microsoft.
Testar conectividade
Depois de configurar o MACsec (incluindo a atualização da chave MACsec) nas portas do ExpressRoute Direct, verifique o status das sessões BGP dos circuitos. Se você ainda não criou um circuito nas portas, faça-o primeiro e estabeleça o Emparelhamento Privado do Azure ou o Emparelhamento da Microsoft do circuito. Configuração incorreta do MACsec, como uma incompatibilidade de chave MACsec entre seus dispositivos de rede e os dispositivos de rede da Microsoft, impede que você observe a resolução ARP na camada 2 ou o estabelecimento de BGP na camada 3. Se tudo estiver configurado corretamente, você verá as rotas BGP anunciadas corretamente em ambas as direções e o fluxo de dados do aplicativo de acordo com a Rota Expressa.
Próximos passos
- Criar um circuito de Rota Expressa no ExpressRoute Direct
- Ligue uma rede virtual a um circuito do ExpressRoute
- Verificar a conectividade do ExpressRoute