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:
- Du bekantade dig med ExpressRoute Direct-etableringsarbetsflödena.
- Du har skapat en ExpressRoute Direct-portresurs enligt anvisningarna.
- Du har installerat den senaste versionen av Azure PowerShell på datorn om du tänker köra PowerShell lokalt.
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. | |
Öppna Cloud Shell i din webbläsare. | |
Klicka på knappen Cloud Shell på menyn längst upp till höger på Azure 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
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.
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
ellerGet-AzUserAssignedIdentity
som giltiga cmdletar. Kör sedan kommandot ovan igen.Install-Module -Name Az.ManagedServiceIdentity
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.
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.
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.
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
(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.
(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.