Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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:
- Zapoznałeś się z przepływami pracy dotyczącymi aprowizacji ExpressRoute Direct.
- Utworzono zasób portu usługi ExpressRoute Direct zgodnie z instrukcjami.
- Zainstalowano najnowszą wersję programu Azure PowerShell na komputerze, jeśli zamierzasz uruchomić program PowerShell lokalnie.
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:
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
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.
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
lubGet-AzUserAssignedIdentity
jako prawidłowe polecenia cmdlet. Następnie ponownie uruchom polecenie.Install-Module -Name Az.ManagedServiceIdentity
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.
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.
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.
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
(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.
(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.