Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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 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.
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:
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"
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
Anteckning
- 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 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
Anteckning
- 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 beroende på krypteringen.
Bevilja användaridentiteten behörighet att utföra åtgärden
GET
.Set-AzKeyVaultAccessPolicy -VaultName "your_key_vault_name" -PermissionsToSecrets get -ObjectId $identity.PrincipalId
Användaridentiteten fick åtkomst för att hämta hemligheterna, såsom CAK och CKN, från Key Vault.
Konfigurera användaridentiteten som det tilldelade tjänstehuvudnamnet för ExpressRoute.
$erIdentity = New-AzExpressRoutePortIdentity -UserAssignedIdentityId $identity.Id
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.
Anteckning
Du kan konfigurera icke-XPN-chiffer för ExpressRoute-portar på 10 Gbit/s:
- GcmAes128
- GcmAes256
Du kan konfigurera antingen icke-XPN- eller XPN-chiffer för 40 Gbit/s och större ExpressRoute-portar:
- 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å länkar med 40 Gbit/s eller större bandbredd.
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.
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.
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 applikationsdataflöde flyter över ExpressRoute i enlighet med detta.
- Skapa en ExpressRoute-krets på ExpressRoute Direct
- Länka ett virtuellt nätverk till en ExpressRoute-krets
- Kontrollera ExpressRoute-anslutningen