Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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-AzAccountSe tiver mais do que uma subscrição, obtenha uma lista das suas subscrições do Azure.
Get-AzSubscriptionEspecifique 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 90Você pode reutilizar um Cofre da Chave ou grupo de recursos existente para essa configuração. No entanto, deve-se garantir que a funcionalidade [soft-delete] esteja ativada no Key Vault. Esse recurso permite que você recupere chaves, segredos e certificados excluídos dentro de um período de retenção. Se o Cofre de Chaves não tiver o soft-delete ativado, execute os seguintes comandos para ativá-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.PropertiesNota
- 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.
- Não se deve colocar o Azure Key Vault atrás de um ponto de extremidade privado, pois isso impedirá a comunicação com o plano de gerenciamento do ExpressRoute. 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-AzUserAssignedIdentitycmdlet. Este cmdlet cria uma identidade gerida atribuída por utilizador no Microsoft Entra ID e regista-a com a subscrição 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-AzUserAssignedIdentityouGet-AzUserAssignedIdentitycomo cmdlets válidos. Em seguida, execute o comando novamente.Install-Module -Name Az.ManagedServiceIdentityCrie 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 $CKNNota
- 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, então
0'sserá adicionada ao final da chave para atender ao requisito de comprimento. Por exemplo, o CAK de 1234 será 12340000... para 128 bits e 256 bits, dependendo da cifra.
Conceda à identidade do usuário a autorização para executar a
GEToperação.Set-AzKeyVaultAccessPolicy -VaultName "your_key_vault_name" -PermissionsToSecrets get -ObjectId $identity.PrincipalIdA identidade do usuário adquiriu o acesso para recuperar os segredos, como CAK e CKN, do Cofre da Chave.
Configurar a identidade do utilizador como a entidade de serviço designada para o ExpressRoute.
$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 não-XPN para portas ExpressRoute de 10 gbps:
- GcmAes128
- GcmAes256
Você pode configurar cifras não-XPN ou XPN para portas ExpressRoute de 40 gbps ou superiores:
- 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 com largura de banda igual ou superior a 40 gbps.
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 de Administração Desativada, poderá executar os seguintes comandos para reativar 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 $erDirectO 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 $erDirectA 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. Caso ainda não tenhas criado um circuito nas portas, faz isso primeiro e estabelece o Peering Privado da Azure ou o Peering 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, verá as rotas BGP anunciadas corretamente em ambas as direções e o fluxo de dados da aplicação através do ExpressRoute.
