Konfigurace MACsec na portech ExpressRoute Direct

Tento článek obsahuje pokyny ke konfiguraci MACsec, což je protokol zabezpečení, který chrání komunikaci mezi hraničními směrovači a hraničními směrovači Microsoftu pomocí příkazů PowerShellu.

Než začnete

Než začnete konfigurovat MACsec, ujistěte se, že splňujete následující požadavky:

  • Seznámili jste se s pracovními postupy zřizování ExpressRoute Direct.
  • Podle pokynů jste vytvořili prostředek portu ExpressRoute Direct.
  • Pokud máte v úmyslu spustit PowerShell místně, nainstalovali jste na počítač nejnovější verzi Azure PowerShellu.

Práce s Azure PowerShellem

Kroky a příklady v tomto článku používají moduly Az Azure PowerShellu. Pokud chcete moduly Az nainstalovat místně do počítače, přečtěte si téma Instalace Azure PowerShellu. Další informace o novém modulu Az najdete v tématu Představení nového modulu Az Azure PowerShellu. Rutiny PowerShellu se často aktualizují. Pokud nepoužíváte nejnovější verzi, může dojít k selhání hodnot zadaných v pokynech. K vyhledání nainstalovaných verzí PowerShellu ve vašem systému použijte rutinu Get-Module -ListAvailable Az .

Azure Cloud Shell můžete použít ke spuštění většiny rutin PowerShellu a příkazů rozhraní příkazového řádku místo místní instalace Azure PowerShellu nebo rozhraní příkazového řádku. Azure Cloud Shell je bezplatné interaktivní prostředí, které má předinstalované běžné nástroje Azure a je nakonfigurované pro použití s vaším účtem. Pokud chcete spustit jakýkoli kód obsažený v tomto článku v Azure Cloud Shellu, otevřete relaci Cloud Shellu, pomocí tlačítka Kopírovat v bloku kódu kód zkopírujte a vložte ho do relace Cloud Shellu pomocí Ctrl+Shift+V ve Windows a Linuxu nebo Cmd+Shift+V v macOS. Vložený text se nespustí automaticky, stisknutím klávesy Enter spusťte kód.

Existuje několik způsobů, jak Cloud Shell spustit:

Možnost Odkaz
Klikněte na Vyzkoušet v pravém horním rohu bloku kódu. Cloud Shell in this article
Otevřete Cloud Shell ve vašem prohlížeči. https://shell.azure.com/powershell
Klikněte na tlačítko Cloud Shell v nabídce v pravé horní části webu Azure Portal. Cloud Shell in the portal

Přihlaste se a vyberte správné předplatné.

Konfiguraci zahájíte následujícím postupem:

  • Přihlaste se ke svému účtu Azure pomocí svých přihlašovacích údajů.

  • Zvolte předplatné, které chcete pro tuto konfiguraci použít.

    Pokud používáte Azure Cloud Shell, přihlásíte se k účtu Azure automaticky po kliknutí na Vyzkoušet. Pokud se chcete přihlásit místně, otevřete konzolu PowerShellu se zvýšenými oprávněními a spusťte rutinu pro připojení.

    Connect-AzAccount
    

    Pokud máte více než jedno předplatné, získejte seznam předplatných Azure.

    Get-AzSubscription
    

    Určete předplatné, které chcete použít.

    Select-AzSubscription -SubscriptionName "Name of subscription"
    

Vytvoření služby Azure Key Vault, tajných kódů MACsec a identity uživatele

  1. Pokud chcete bezpečně ukládat tajné kódy MACsec, musíte vytvořit instanci služby Key Vault v nové skupině prostředků. Key Vault je služba, která umožňuje spravovat a chránit kryptografické klíče, certifikáty a tajné kódy v Azure. Další informace najdete v tématu Co je 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
    

    Pro tuto konfiguraci můžete znovu použít existující službu Key Vault nebo skupinu prostředků. Musíte se ale ujistit, že je ve službě Key Vault povolená funkce [obnovitelného odstranění ]. Tato funkce umožňuje obnovit odstraněné klíče, tajné kódy a certifikáty během doby uchovávání informací. Pokud vaše služba Key Vault nemá povolené obnovitelné odstranění, povolte ho spuštěním následujících příkazů:

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

    Poznámka:

    • ExpressRoute je důvěryhodná služba v Azure, která podporuje zásady zabezpečení sítě ve službě Azure Key Vault. Další informace najdete v tématu Konfigurace brány firewall služby Azure Key Vault a virtuálních sítí.
    • Azure Key Vault byste neměli umístit za privátní koncový bod, protože tím zabráníte komunikaci s rovinou správy ExpressRoute. Rovina správy ExpressRoute zodpovídá za správu klíčů a parametrů MACsec pro vaše připojení.
  2. Pokud chcete vytvořit novou identitu uživatele, musíte použít tuto rutinu New-AzUserAssignedIdentity . Tato rutina vytvoří spravovanou identitu přiřazenou uživatelem v Microsoft Entra ID a zaregistruje ji v zadaném předplatném a skupině prostředků. Spravovaná identita přiřazená uživatelem je samostatný prostředek Azure, který je možné přiřadit jakékoli službě Azure, která podporuje spravované identity. Tuto identitu můžete použít k ověřování a autorizaci přístupu k prostředkům Azure bez uložení jakýchkoli přihlašovacích údajů do kódu nebo konfiguračních souborů. Další informace najdete v tématu Co jsou spravované identity pro prostředky Azure?

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

    Pokud chcete použít existující identitu uživatele, spusťte následující příkaz:

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

    Pokud PowerShell nerozpozná New-AzUserAssignedIdentity nebo Get-AzUserAssignedIdentity jako platné rutiny, nainstalujte následující modul do Správa istratoru. Potom spusťte výše uvedený příkaz znovu.

    Install-Module -Name Az.ManagedServiceIdentity
    
  3. Vytvořte klíč přidružení připojení (CAK) a název klíče přidružení připojení (CKN) a uložte ho do služby 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
    

    Poznámka:

    • CKN musí být řetězec sudé délky až do 64 šestnáctkových číslic (0-9, A-F).
    • Délka CAK závisí na zadané šiferové sadě:
      • Pro GcmAes128 a GcmAesXpn128 musí být CAK řetězec sudé délky s 32 šestnáctkovými číslicemi (0-9, A-F).
      • Pro GcmAes256 a GcmAesXpn256 musí být CAK řetězec sudé délky s 64 šestnáctkovými číslicemi (0-9, A-F).
    • Pro CAK musí být použita úplná délka klíče. Pokud je klíč kratší než požadovaná délka, 0's přidá se na konec klíče, aby splňoval požadavek na délku. Například CAK z 1234 bude 12340000... pro 128bitovou i 256bitovou verzi založenou na šifrě.
  4. Udělte identitě uživatele autorizaci k provedení GET operace.

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

    Identita uživatele získala přístup k načtení tajných kódů, jako je CAK a CKN, ze služby Key Vault.

  5. Nakonfigurujte identitu uživatele jako určený instanční objekt pro ExpressRoute.

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

Konfigurace MACsec na portech ExpressRoute Direct

Jak povolit MACsec

Každá instance ExpressRoute Direct se skládá ze dvou fyzických portů. MaCsec můžete aktivovat na obou portech současně nebo na jednom portu jednotlivě. Druhá možnost umožňuje přesměrovat provoz na funkční port při údržbě druhého portu, což může snížit přerušení, pokud je expressRoute Direct funkční.

Poznámka:

Můžete nakonfigurovat šifry XPN i jiné než XPN:

  • GcmAes128
  • GcmAes256
  • GcmAesXpn128
  • GcmAesXpn256

Doporučeným postupem je nastavit šifrování pomocí šifer xpn, aby se zabránilo občasným selháním relací, ke kterým dochází u nešifrovaných šifr na vysokorychlostních propojeních.

  1. Vytvořte tajné kódy MACsec a šifru a propojte identitu uživatele s portem, aby kód pro správu ExpressRoute mohl v případě potřeby načíst tajné kódy MACsec.

    $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. (Volitelné) Pokud jsou porty ve stavu Správa istrativní down, můžete spustit následující příkazy, které zobrazí 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
    

    MaCsec je teď povolený na portech ExpressRoute Direct na straně Microsoftu. Pokud jste ho na hraničních zařízeních nenakonfigurovali, můžete je nakonfigurovat pomocí stejných tajných kódů a šifry MACsec.

  3. (Volitelné) Pokud chcete aktivovat porty, které jsou ve stavu Správa istrative Down, spusťte následující příkazy:

    $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 je teď povolené na portech ExpressRoute Direct.

Jak zakázat MACsec

Pokud chcete deaktivovat MACsec v instanci ExpressRoute Direct, spusťte následující příkazy:

$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 je teď na portech ExpressRoute Direct na straně Microsoftu zakázané.

Test připojení

Po nastavení MACsec (včetně aktualizace klíče MACsec) na portech ExpressRoute Direct ověřte stav relací protokolu BGP okruhů. Pokud jste ještě na portech nevytvoříte okruh, nejprve vytvořte soukromý partnerský vztah Azure nebo partnerský vztah Microsoftu okruhu. Nesprávná konfigurace MACsec, například neshoda klíčů MACsec mezi síťovými zařízeními a síťovými zařízeními Microsoftu, brání v pozorování rozlišení protokolu ARP na vrstvě 2 nebo BGP na vrstvě 3. Pokud je vše správně nakonfigurované, uvidíte správně inzerované trasy protokolu BGP v obou směrech i tok dat vaší aplikace přes ExpressRoute.

Další kroky