Konfigurera MACsec på ExpressRoute Direct-portar

Den här artikeln innehåller vägledning om hur du konfigurerar MACsec, ett säkerhetsprotokoll som skyddar kommunikationen mellan dina gränsroutrar och Microsofts gränsroutrar med hjälp av PowerShell-kommandon.

Innan du börjar

Innan du börjar konfigurera MACsec kontrollerar du att du uppfyller följande krav:

Arbeta med Azure PowerShell

Stegen och exemplen i den här artikeln använder Azure PowerShell Az-moduler. Information om hur du installerar Az-modulerna lokalt på datorn finns i Installera Azure PowerShell. Mer information om den nya Az-modulen finns i Introduktion till den nya Azure PowerShell Az-modulen. PowerShell-cmdletar uppdateras ofta. Om du inte kör den senaste versionen kan de värden som anges i anvisningarna misslyckas. Om du vill hitta de installerade versionerna av PowerShell i systemet använder du cmdleten Get-Module -ListAvailable Az .

Du kan använda Azure Cloud Shell för att köra de flesta PowerShell-cmdletar och CLI-kommandon i stället för att installera Azure PowerShell eller CLI lokalt. Azure Cloud Shell är ett kostnadsfritt interaktivt gränssnitt som har vanliga Azure-verktyg förinstallerade och är konfigurerade att användas med ditt konto. Om du vill köra kod som finns i den här artikeln i Azure Cloud Shell öppnar du en Cloud Shell-session, använder knappen Kopiera i ett kodblock för att kopiera koden och klistrar in den i Cloud Shell-sessionen med Ctrl+Skift+V i Windows och Linux eller Cmd+Skift+V på macOS. Klistrad text körs inte automatiskt, tryck på Retur för att köra kod.

Det finns flera olika sätt att starta Cloud Shell:

Alternativ Länk
Klicka på Prova i det övre högra hörnet av ett kodblock. Cloud Shell in this article
Öppna Cloud Shell i din webbläsare. https://shell.azure.com/powershell
Klicka på knappen Cloud Shell på menyn längst upp till höger på Azure Portal. Cloud Shell in the portal

Logga in och välj rätt prenumeration

Följ dessa steg för att påbörja konfigurationen:

  • Logga in på ditt Azure-konto med dina autentiseringsuppgifter.

  • Välj den prenumeration som du vill använda för den här konfigurationen.

    Om du använder Azure Cloud Shell loggar du in på ditt Azure-konto automatiskt efter att ha klickat på Prova. Om du vill logga in lokalt öppnar du PowerShell-konsolen med utökade privilegier och kör cmdleten för att ansluta.

    Connect-AzAccount
    

    Om du har fler än en prenumeration hämtar du en lista över dina Azure-prenumerationer.

    Get-AzSubscription
    

    Ange den prenumeration som du vill använda.

    Select-AzSubscription -SubscriptionName "Name of subscription"
    

Skapa Azure Key Vault, MACsec-hemligheter och användaridentitet

  1. Om du vill lagra MACsec-hemligheter på ett säkert sätt måste du skapa en Key Vault-instans i en ny resursgrupp. Key Vault är en tjänst som gör att du kan hantera och skydda kryptografiska nycklar, certifikat och hemligheter i Azure. Mer information finns i Vad är 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
    

    Du kan återanvända en befintlig Key Vault- eller resursgrupp för den här konfigurationen. Du måste dock se till att [funktionen för mjuk borttagning ] är aktiverad i ditt Key Vault. Med den här funktionen kan du återställa borttagna nycklar, hemligheter och certifikat inom en kvarhållningsperiod. Om nyckelvalvet inte har aktiverat mjuk borttagning kör du följande kommandon för att aktivera det:

    ($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
    

    Kommentar

    • ExpressRoute är en betrodd tjänst i Azure som stöder nätverkssäkerhetsprinciper i Azure Key Vault. Mer information finns i Konfigurera Azure Key Vault-brandväggen och virtuella nätverk.
    • Du bör inte placera Azure Key Vault bakom en privat slutpunkt, eftersom detta förhindrar kommunikationen med ExpressRoute-hanteringsplanet. ExpressRoute-hanteringsplanet ansvarar för att hantera MACsec-nycklar och parametrar för din anslutning.
  2. Om du vill skapa en ny användaridentitet måste du använda cmdleten New-AzUserAssignedIdentity . Den här cmdleten skapar en användartilldelad hanterad identitet i Microsoft Entra-ID och registrerar den med den angivna prenumerationen och resursgruppen. En användartilldelad hanterad identitet är en fristående Azure-resurs som kan tilldelas till alla Azure-tjänster som stöder hanterade identiteter. Du kan använda den här identiteten för att autentisera och auktorisera åtkomst till Azure-resurser utan att lagra några autentiseringsuppgifter i koden eller konfigurationsfilerna. Mer information finns i Vad är hanterade identiteter för Azure-resurser?.

    $identity = New-AzUserAssignedIdentity  -Name "identity_name" -Location "resource_location" -ResourceGroupName "your_resource_group"
    

    Kör följande kommando för att använda en befintlig användaridentitet:

    $identity = Get-AzUserAssignedIdentity -ResourceGroupName "your_resource_group" -Name "identity_name"
    

    Installera följande modul i administratörsläge om PowerShell inte känner igen New-AzUserAssignedIdentity eller Get-AzUserAssignedIdentity som giltiga cmdletar. Kör sedan kommandot ovan igen.

    Install-Module -Name Az.ManagedServiceIdentity
    
  3. Skapa en anslutningsassocieringsnyckel (CAK) och ett namn på anslutningsassociationens nyckel (CKN) och lagra dem i Nyckelvalvet.

    $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
    

    Kommentar

    • CKN måste vara en jämn sträng på upp till 64 hexadecimala siffror (0-9, A-F).
    • CAK-längd beror på angiven chiffersvit:
      • För GcmAes128 och GcmAesXpn128 måste CAK:n vara en jämn sträng med 32 hexadecimala siffror (0-9, A-F).
      • För GcmAes256 och GcmAesXpn256 måste CAK:n vara en jämn sträng med 64 hexadecimala siffror (0-9, A-F).
    • För CAK måste hela nyckelns längd användas. Om nyckeln är kortare än den längd som krävs 0's läggs den till i slutet av nyckeln för att uppfylla längdkravet. Cak på 1234 blir till exempel 12340000... för både 128-bitars och 256-bitars baserat på chiffer.
  4. Ge användaridentiteten behörighet att utföra åtgärden GET .

    Set-AzKeyVaultAccessPolicy -VaultName "your_key_vault_name" -PermissionsToSecrets get -ObjectId $identity.PrincipalId
    

    Användaridentiteten förvärvade åtkomsten för att hämta hemligheterna, till exempel CAK och CKN, från Key Vault.

  5. Konfigurera användaridentiteten som det avsedda tjänstens huvudnamn för ExpressRoute.

    $erIdentity = New-AzExpressRoutePortIdentity -UserAssignedIdentityId $identity.Id
    

Konfigurera MACsec på ExpressRoute Direct-portar

Så här aktiverar du MACsec

Varje ExpressRoute Direct-instans består av två fysiska portar. Du kan aktivera MACsec på båda portarna samtidigt eller på en port individuellt. Med det senare alternativet kan du omdirigera trafiken till en fungerande port samtidigt som du underhåller den andra porten, vilket kan minska störningarna om ExpressRoute Direct fungerar.

Kommentar

Du kan konfigurera både XPN- och icke-XPN-chiffer:

  • GcmAes128
  • GcmAes256
  • GcmAesXpn128
  • GcmAesXpn256

Den rekommenderade bästa metoden är att konfigurera kryptering med xpn-chiffer för att förhindra sporadiska sessionsfel som inträffar med icke-xpn chiffer på höghastighetslänkar.

  1. Upprätta MACsec-hemligheter och chiffer och länka användaridentiteten till porten för att aktivera ExpressRoute-hanteringskoden för att hämta MACsec-hemligheterna vid behov.

    $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
    
  2. (Valfritt) Om portarna är i administrativt nedläge kan du köra följande kommandon för att ta upp portarna.

    $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
    

    MACsec är nu aktiverat på ExpressRoute Direct-portarna på Microsoft-sidan. Om du inte konfigurerade det på dina gränsenheter kan du fortsätta att konfigurera dem med samma MACsec-hemligheter och chiffer.

  3. (Valfritt) Om du vill aktivera portarna som är i administrativt nedläge kör du följande kommandon:

    $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
    

    SCI är nu aktiverat på ExpressRoute Direct-portarna.

Inaktivera MACsec

Om du vill inaktivera MACsec på din ExpressRoute Direct-instans kör du följande kommandon:

$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 är nu inaktiverat på ExpressRoute Direct-portarna på Microsoft-sidan.

Testa anslutning

När du har konfigurerat MACsec (inklusive MACsec-nyckeluppdatering) på ExpressRoute Direct-portarna kontrollerar du statusen för BGP-sessionerna för kretsarna. Om du inte har skapat en krets på portarna ännu gör du det först och etablerar Azure Private Peering eller Microsoft Peering för kretsen. Felaktig MACsec-konfiguration, till exempel ett MACsec-nyckelmatchningsfel mellan dina nätverksenheter och Microsofts nätverksenheter, hindrar dig från att observera ARP-upplösning på lager 2 eller BGP-etablering på lager 3. Om allt är korrekt konfigurerat ser du att BGP-vägarna annonseras korrekt i båda riktningarna och ditt programdataflöde i enlighet med detta via ExpressRoute.

Nästa steg