Konfigurieren von MACsec für ExpressRoute Direct-Ports

Dieser Artikel enthält Anleitungen zum Konfigurieren von MACsec, einem Sicherheitsprotokoll, das die Kommunikation zwischen Ihren Edgeroutern und den Edgeroutern von Microsoft mithilfe von PowerShell-Befehlen schützt.

Voraussetzungen

Bevor Sie mit der Konfiguration von MACsec beginnen, stellen Sie sicher, dass die folgenden Voraussetzungen erfüllt sind:

Arbeiten mit Azure PowerShell

Die Schritte und Beispiele in diesem Artikel verwenden Azure PowerShell Az-Module. Informationen zur lokalen Installation von Az-Modulen auf Ihrem Computer finden Sie unter Installieren von Azure PowerShell. Weitere Informationen zum neuen Az-Modul finden Sie unter Einführung in das neue Azure PowerShell Az-Modul. PowerShell-Cmdlets werden regelmäßig aktualisiert. Wenn Sie nicht die neueste Version verwenden, können die in den Anweisungen angegebenen Werte fehlschlagen. Um die installierten Versionen von PowerShell auf Ihrem System zu suchen, verwenden Sie das Get-Module -ListAvailable Az-Cmdlet.

Sie können Azure Cloud Shell verwenden, um die meisten PowerShell-Cmdlets und CLI-Befehle auszuführen, anstatt Azure PowerShell oder die Befehlszeilenschnittstelle lokal zu installieren. Azure Cloud Shell ist eine kostenlose interaktive Shell, in der häufig verwendete Azure-Tools vorinstalliert sind und die für die Verwendung mit Ihrem Konto konfiguriert wurde. Um in Azure Cloud Shell Code aus diesem Artikel auszuführen, öffnen Sie eine Cloud Shell-Sitzung, verwenden Sie für einen Codeblock die Schaltfläche Kopieren, um Code zu kopieren, und fügen Sie ihn mit STRG+UMSCHALT+V (Windows und Linux) oder BEFEHL+UMSCHALT+V (macOS) in die Cloud Shell-Sitzung ein. Eingefügter Code wird nicht automatisch ausgeführt. Sie müssen zum Ausführen von Code die EINGABETASTE drücken.

Cloud Shell kann auf mehrere Arten gestartet werden:

Option Link
Klicken Sie in der rechten oberen Ecke eines Codeblocks auf Ausprobieren. Cloud Shell in diesem Artikel
Öffnen Sie Cloud Shell in Ihrem Browser. https://shell.azure.com/powershell
Klicken Sie auf die Schaltfläche Cloud Shell im Menü oben rechts im Azure-Portal. Cloud Shell im Portal

Anmelden und Auswählen des richtigen Abonnements

Führen Sie die folgenden Schritte aus, um mit der Konfiguration zu beginnen:

  • Melden Sie sich mit Ihren Anmeldeinformation bei Ihrem Azure-Konto an.

  • Wählen das Abonnement, das Sie für diese Konfiguration verwenden möchten.

    Wenn Sie Azure Cloud Shell verwenden, melden Sie sich nach dem Klicken auf „Ausprobieren“ automatisch bei Ihrem Azure-Konto an. Öffnen Sie zum lokalen Anmelden Ihre PowerShell-Konsole mit erhöhten Rechten, und führen Sie das Cmdlet aus, um eine Verbindung herzustellen.

    Connect-AzAccount
    

    Falls Sie über mehrere Abonnements verfügen, rufen Sie eine Liste Ihrer Azure-Abonnements ab.

    Get-AzSubscription
    

    Geben Sie das Abonnement an, das Sie verwenden möchten.

    Select-AzSubscription -SubscriptionName "Name of subscription"
    

Erstellen von Azure Key Vault, MACsec-Geheimnissen und der Benutzeridentität

  1. Um MACsec-Geheimnisse sicher speichern zu können, erstellen Sie eine Key Vault-Instanz in einer neuen Ressourcengruppe. Key Vault ist ein Dienst, mit dem Sie kryptografische Schlüssel, Zertifikate und Geheimnisse in Azure verwalten und schützen können. Weitere Informationen finden Sie unter Was ist der Azure-Schlüsseltresor?.

    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
    

    Sie können eine vorhandene Key Vault-Instanz oder Ressourcengruppe für diese Konfiguration wiederverwenden. Sie müssen jedoch sicherstellen, dass das Feature [soft-delete] in Ihrem Key Vault aktiviert ist. Mit diesem Feature können Sie gelöschte Schlüssel, Geheimnisse und Zertifikate innerhalb eines Aufbewahrungszeitraums wiederherstellen. Wenn in Ihrem Key Vault das Feature „soft-delete2 nicht aktiviert ist, führen Sie die folgenden Befehle aus, um es zu aktivieren:

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

    Hinweis

    • ExpressRoute ist ein vertrauenswürdiger Dienst in Azure, der Netzwerksicherheitsrichtlinien innerhalb von Azure Key Vault unterstützt. Weitere Informationen finden Sie unter Konfigurieren von Azure Key Vault-Firewall und virtuellen Netzwerken.
    • Sie sollten Azure Key Vault nicht hinter einem privaten Endpunkt platzieren, da dadurch die Kommunikation mit der ExpressRoute-Verwaltungsebene verhindert wird. Die ExpressRoute-Verwaltungsebene ist für die Verwaltung der MACsec-Schlüssel und -Parameter für Ihre Verbindung zuständig.
  2. Zum Erstellen einer neuen Benutzeridentität müssen Sie das Cmdlet New-AzUserAssignedIdentity verwenden. Dieses Cmdlet erstellt eine benutzerseitig zugewiesene verwaltete Identität in Microsoft Entra ID und registriert sie bei der angegebenen Abonnement- und Ressourcengruppe. Eine benutzerseitig zugewiesene verwaltete Identität ist eine eigenständige Azure-Ressource, die jedem Azure-Dienst zugewiesen werden kann, der verwaltete Identitäten unterstützt. Sie können diese Identität nutzen, um den Zugriff auf Azure-Ressourcen zu authentifizieren und zu autorisieren, ohne Anmeldeinformationen in Ihren Code- oder Konfigurationsdateien zu speichern. Weitere Informationen finden Sie im unter Was sind verwaltete Identitäten für Azure-Ressourcen?.

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

    Um eine vorhandene Benutzeridentität zu verwenden, führen Sie den folgenden Befehl aus:

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

    Installieren Sie das folgende Modul im Administratormodus, wenn New-AzUserAssignedIdentity oder Get-AzUserAssignedIdentity von PowerShell nicht als gültige Cmdlets erkannt werden. Führen Sie dann den obigen Befehl erneut aus.

    Install-Module -Name Az.ManagedServiceIdentity
    
  3. Erstellen Sie einen CAK (Connectivity Association Key) und einen CKN (Connectivity Association Key Name), und speichern Sie diese im Schlüsseltresor.

    $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
    

    Hinweis

    • Der CKN muss eine Zeichenfolge mit einer geraden Anzahl von bis zu 64 Zeichen im Hexadezimalformat (0–9, A–F) sein.
    • Die CAK-Länge hängt vom angegebenen Verschlüsselungsverfahren ab:
      • Für GcmAes128 und GcmAesXpn128 muss der CAK eine Zeichenfolge mit einer geraden Anzahl von 32 Zeichen im Hexadezimalformat (0–9, A–F) sein.
      • Für GcmAes256 und GcmAesXpn256 muss der CAK eine Zeichenfolge mit einer geraden Anzahl von 64 Zeichen im Hexadezimalformat (0–9, A–F) sein.
    • Für CAK muss die volle Länge des Schlüssels verwendet werden. Wenn der Schlüssel kürzer als die erforderliche Länge ist, wird am Ende des Schlüssels 0's angehängt, um die erforderliche Länge zu erreichen. Zum Beispiel wird CAK 1234 zu 12340000... sowohl für 128-Bit als auch für 256-Bit, je nach Chiffre.
  4. Erteilen Sie der Benutzeridentität die Autorisierung, den GET-Vorgang auszuführen.

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

    Die Benutzeridentität hat Zugriff zum Abrufen von Geheimnissen wie CAK und CKN aus dem Key Vault erhalten.

  5. Konfigurieren Sie die Benutzeridentität als den designierten Dienstprinzipal für ExpressRoute.

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

Konfigurieren von MACsec für ExpressRoute Direct-Ports

Aktivieren von MACsec

Jede ExpressRoute Direct-Instanz besteht aus zwei physischen Ports. Sie können MACsec auf beiden Ports gleichzeitig oder auf einem Port einzeln aktivieren. Mit dieser Option können Sie den Datenverkehr an einen funktionierenden Port umleiten und gleichzeitig den anderen Port beibehalten, wodurch die Unterbrechung reduziert werden kann, sofern Ihr ExpressRoute Direct funktioniert.

Hinweis

Sie können sowohl XPN- als auch Nicht-XPN-Verschlüsselungen konfigurieren:

  • GcmAes128
  • GcmAes256
  • GcmAesXpn128
  • GcmAesXpn256

Die vorgeschlagene bewährte Methode besteht darin, die Verschlüsselung mit xpn-Verschlüsselungsverfahren einzurichten, um sporadische Sitzungsfehler zu verhindern, die bei Verbindungen mit hoher Geschwindigkeit ohne xpn-Verschlüsselungsverfahren auftreten.

  1. Legen Sie MACsec-Geheimnisse und -Verschlüsselungsverfahren fest, und verknüpfen Sie die Benutzeridentität mit dem Port, sodass der ExpressRoute-Verwaltungscode bei Bedarf die MACsec-Geheimnisse abrufen kann.

    $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. (Optional) Wenn die Ports den Status „Administrative Down“ aufweisen, können Sie die folgenden Befehle ausführen, um die Ports wieder zu aktivieren.

    $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 ist jetzt an den ExpressRoute Direct-Ports auf der Microsoft-Seite aktiviert. Wenn Sie dies auf Ihren Edgegeräten noch nicht konfiguriert haben, können Sie diese anschließend mit denselben MACsec-Geheimnissen und -Verschlüsselungsverfahren konfigurieren.

  3. (Optional) Führen Sie die folgenden Befehle aus, um die Ports mit dem Status „Administrative Down“ zu aktivieren:

    $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 ist jetzt an den ExpressRoute Direct-Ports aktiviert.

So deaktivieren Sie MACsec

Um MACsec in Ihrer ExpressRoute Direct-Instanz zu deaktivieren, führen Sie die folgenden Befehle aus:

$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 ist jetzt an den ExpressRoute Direct-Ports auf der Microsoft-Seite deaktiviert.

Testen der Konnektivität

Sobald Sie MACsec (einschließlich MACsec-Schlüsselaktualisierung) an Ihren ExpressRoute Direct-Ports konfiguriert haben, überprüfen Sie den Status der BGP-Sitzungen der Verbindungen. Wenn Sie noch keine Verbindung mit den Ports erstellt haben, müssen Sie dies zuerst tun und das private Azure-Peering bzw. das Microsoft-Peering für die Verbindung einrichten. Wenn MACsec falsch konfiguriert worden ist, z. B. wenn die MACsec-Schlüssel Ihrer Netzwerkgeräte nicht mit den Schlüsseln der Netzwerkgeräte von Microsoft übereinstimmen, werden die ARP-Auflösung auf Ebene 2 oder die BGP-Einrichtung auf Ebene 3 nicht angezeigt. Wenn alle Einstellungen ordnungsgemäß konfiguriert worden ist, sehen Sie, dass die BGP-Routen ordnungsgemäß in beiden Richtungen angekündigt werden und Ihre Daten entsprechend über ExpressRoute fließen.

Nächste Schritte