Udostępnij za pośrednictwem


Konfigurowanie zabezpieczeń MACsec na portach usługi ExpressRoute Direct

Ten artykuł zawiera wskazówki dotyczące konfigurowania protokołu MACsec, protokołu zabezpieczeń, który chroni komunikację między routerami brzegowymi i routerami brzegowymi firmy Microsoft przy użyciu poleceń programu PowerShell.

Zanim rozpoczniesz

Przed rozpoczęciem konfigurowania protokołu MACsec upewnij się, że spełnione są następujące wymagania wstępne:

Praca z programem Azure PowerShell

Kroki i przykłady w tym artykule korzystają z modułów Az programu Azure PowerShell. Aby zainstalować moduły Az lokalnie na komputerze, zobacz Instalowanie programu Azure PowerShell. Aby dowiedzieć się więcej na temat nowego modułu Az, zobacz Wprowadzenie do nowego modułu Az programu Azure PowerShell. Polecenia cmdlet programu PowerShell są często aktualizowane. Jeśli nie używasz najnowszej wersji, wartości określone w instrukcjach mogą zakończyć się niepowodzeniem. Aby znaleźć zainstalowane wersje programu PowerShell w systemie, użyj Get-Module -ListAvailable Az polecenia cmdlet .

Za pomocą usługi Azure Cloud Shell można uruchamiać większość poleceń cmdlet programu PowerShell i poleceń interfejsu wiersza polecenia zamiast instalować program Azure PowerShell lub interfejs wiersza polecenia lokalnie. Usługa Azure Cloud Shell to bezpłatna interaktywna powłoka, która ma wstępnie zainstalowane typowe narzędzia platformy Azure i jest skonfigurowana do używania z kontem. Aby uruchomić dowolny kod zawarty w tym artykule w usłudze Azure Cloud Shell, otwórz sesję usługi Cloud Shell, użyj przycisku Kopiuj w bloku kodu, aby skopiować kod i wklej go do sesji usługi Cloud Shell za pomocą Ctrl+Shift+V w systemach Windows i Linux lub Cmd+Shift+V w systemie macOS. Wklejony tekst nie jest automatycznie wykonywany, naciśnij Enter , aby uruchomić kod.

Istnieje kilka sposobów uruchomienia usługi Cloud Shell:

Opcja Odnośnik
Kliknij przycisk Wypróbuj w prawym górnym rogu bloku kodu. Usługa Cloud Shell w tym artykule
Otwórz usługę Cloud Shell w swojej przeglądarce. https://shell.azure.com/powershell
Kliknij przycisk Cloud Shell w menu w prawym górnym rogu witryny Azure Portal. Usługa Cloud Shell w portalu

Zaloguj się i wybierz odpowiednią subskrypcję

Wykonaj następujące kroki, aby rozpocząć konfigurację:

  • Zaloguj się do konta platformy Azure przy użyciu poświadczeń.

  • Wybierz subskrypcję, której chcesz użyć dla tej konfiguracji.

    Jeśli używasz usługi Azure Cloud Shell, zaloguj się automatycznie do konta platformy Azure po kliknięciu pozycji "Wypróbuj". Aby zalogować się lokalnie, otwórz konsolę programu PowerShell z podwyższonym poziomem uprawnień i uruchom polecenie cmdlet, aby nawiązać połączenie.

    Connect-AzAccount
    

    Jeśli masz więcej niż jedną subskrypcję, pobierz listę subskrypcji platformy Azure.

    Get-AzSubscription
    

    Określ subskrypcję, której chcesz użyć.

    Select-AzSubscription -SubscriptionName "Name of subscription"
    

Utwórz Azure Key Vault, tajemnice MACsec i tożsamość użytkownika

  1. Aby bezpiecznie przechowywać sekrety MACsec, należy utworzyć instancję Key Vault w nowej grupie zasobów. Key Vault to usługa, która umożliwia zarządzanie i ochronę kluczy kryptograficznych, certyfikatów i wpisów tajnych na platformie Azure. Aby uzyskać więcej informacji, zobacz Co to jest usługa 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
    

    Możesz ponownie użyć istniejącej usługi Key Vault lub grupy zasobów dla tej konfiguracji. Należy jednak upewnić się, że funkcja [miękkiego usuwania] jest włączona w usłudze Key Vault. Ta funkcja umożliwia odzyskanie usuniętych kluczy, wpisów tajnych i certyfikatów w okresie przechowywania. Jeśli usługa Key Vault nie ma włączonego usuwania nietrwałego, uruchom następujące polecenia, aby je włączyć:

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

    Uwaga

    • ExpressRoute to zaufana usługa na platformie Azure, która obsługuje zasady zabezpieczeń sieci w usłudze Azure Key Vault. Aby uzyskać więcej informacji, zobacz Konfigurowanie zapory i sieci wirtualnych usługi Azure Key Vault.
    • Nie należy umieszczać usługi Azure Key Vault za prywatnym punktem końcowym, ponieważ uniemożliwi to komunikację z płaszczyzną zarządzania usługi ExpressRoute. Płaszczyzna zarządzania usługi ExpressRoute odpowiada za zarządzanie kluczami i parametrami protokołu MACsec dla Twojego połączenia.
  2. Aby utworzyć nową tożsamość użytkownika, należy użyć New-AzUserAssignedIdentity polecenia cmdlet . To polecenie cmdlet tworzy tożsamość zarządzaną przypisaną przez użytkownika w usłudze Microsoft Entra ID i rejestruje ją w określonej subskrypcji i grupie zasobów. Tożsamość zarządzana przypisana przez użytkownika to autonomiczny zasób platformy Azure, który można przypisać do dowolnej usługi platformy Azure obsługującej tożsamości zarządzane. Ta tożsamość umożliwia uwierzytelnianie i autoryzację dostępu do zasobów platformy Azure bez przechowywania poświadczeń w kodzie lub plikach konfiguracji. Aby uzyskać więcej informacji, zobacz Czym są tożsamości zarządzane dla zasobów platformy Azure?.

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

    Aby użyć istniejącej tożsamości użytkownika, uruchom następujące polecenie:

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

    Zainstaluj następujący moduł w trybie administratora, jeśli program PowerShell nie rozpoznaje New-AzUserAssignedIdentity lub Get-AzUserAssignedIdentity jako prawidłowe polecenia cmdlet. Następnie ponownie uruchom polecenie.

    Install-Module -Name Az.ManagedServiceIdentity
    
  3. Utwórz klucz skojarzenia łączności (CAK) i nazwę klucza skojarzenia łączności (CKN) i zapisz je w usłudze Key Vault.

    $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
    

    Uwaga

    • CKN musi być ciągiem o parzystej długości do 64 cyfr szesnastkowych (0–9, A-F).
    • Długość klucza CAK zależy od określonego zestawu szyfrowania:
      • W przypadku GcmAes128 i GcmAesXpn128 CAK musi być ciągiem o parzystej długości z 32 cyframi szesnastkowymi (0-9, A-F).
      • W przypadku GcmAes256 i GcmAesXpn256 CAK musi być ciągiem o parzystej długości z 64 cyframi szesnastkowymi (0-9, A-F).
    • W przypadku funkcji CAK należy użyć pełnej długości klucza. Jeśli klucz jest krótszy niż wymagana długość, 0's zostanie dodany na końcu klucza, aby spełnić wymagania dotyczące długości. Na przykład, CAK 1234 będzie miał wartość 12340000... zarówno dla 128-bitowych, jak i 256-bitowych konfiguracji w oparciu o szyfrowanie.
  4. Udziel użytkownikowi uprawnień do wykonania operacji GET.

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

    Tożsamość użytkownika uzyskała dostęp do odzyskania tajemnic, takich jak CAK i CKN, z usługi Key Vault.

  5. Skonfiguruj tożsamość użytkownika jako główną jednostkę usługi dla ExpressRoute.

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

Konfigurowanie zabezpieczeń MACsec na portach usługi ExpressRoute Direct

Jak włączyć protokół MACsec

Każde wystąpienie usługi ExpressRoute Direct składa się z dwóch portów fizycznych. Protokół MACsec można aktywować na obu portach jednocześnie lub na jednym porcie osobno. Ta ostatnia opcja umożliwia przekierowanie ruchu do działającego portu przy zachowaniu innego portu, co może zmniejszyć zakłócenia, jeśli usługa ExpressRoute Direct działa.

Uwaga

Szyfry inne niż XPN można skonfigurować dla portów usługi ExpressRoute o szybkości 10 GB/s:

  • GcmAes128
  • GcmAes256

Możesz skonfigurować algorytmy szyfrowania, które nie są XPN, lub algorytmy XPN dla portów usługi ExpressRoute o przepustowości 40 Gbps lub większej.

  • GcmAes128
  • GcmAes256
  • GcmAesXpn128
  • GcmAesXpn256

Sugerowanym najlepszym rozwiązaniem jest skonfigurowanie szyfrowania za pomocą szyfrowania xpn, aby zapobiec sporadycznych awariom sesji, które występują w przypadku szyfrów innych niż xpn na łączach o przepustowości 40 GB/s lub większej.

  1. Ustanów sekrety i szyfr MACsec oraz połącz tożsamość użytkownika z portem, aby kod zarządzania ExpressRoute mógł pobrać sekrety MACsec, gdy jest to wymagane.

    $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. (Opcjonalnie) Jeśli porty znajdują się w stanie administracyjnego wyłączenia, możesz uruchomić następujące polecenia, aby uaktywnić porty.

    $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
    

    Protokół MACsec jest teraz włączony na portach usługi ExpressRoute Direct po stronie firmy Microsoft. Jeśli nie skonfigurowałeś ich na urządzeniach brzegowych, możesz skonfigurować je z tymi samymi tajemnicami i szyfrowaniem MACsec.

  3. (Opcjonalnie) Aby aktywować porty, które znajdują się w stanie Administracyjnie Wyłączonym, uruchom następujące polecenia:

    $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
    

    Interfejs SCI jest teraz włączony na portach usługi ExpressRoute Direct.

Jak wyłączyć protokół MACsec

Aby dezaktywować protokół MACsec w wystąpieniu usługi ExpressRoute Direct, uruchom następujące polecenia:

$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

Protokół MACsec jest teraz wyłączony na portach usługi ExpressRoute Direct po stronie firmy Microsoft.

Testowanie łączności

Po skonfigurowaniu protokołu MACsec (w tym aktualizacji klucza MACsec) na portach usługi ExpressRoute Direct sprawdź stan sesji protokołu BGP obwodów. Jeśli jeszcze nie utworzono obwodu na portach, najpierw należy ustanowić prywatną komunikację równorzędną platformy Azure lub komunikację równorzędną firmy Microsoft dla obwodu. Nieprawidłowa konfiguracja protokołu MACsec, taka jak niezgodność klucza MACsec między urządzeniami sieciowymi i urządzeniami sieciowymi firmy Microsoft, uniemożliwia obserwowanie rozpoznawania protokołu ARP w warstwie 2 lub ustanowienia protokołu BGP w warstwie 3. Jeśli wszystko jest poprawnie skonfigurowane, zobaczysz, że trasy protokołu BGP są prawidłowo anonsowane w obu kierunkach, a dane aplikacji przepływają odpowiednio za pośrednictwem usługi ExpressRoute.

Następne kroki