Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Dieser Artikel enthält Anleitungen zum Konfigurieren von MACsec, einem Sicherheitsprotokoll, das die Kommunikation zwischen Ihren Edgeroutern und den Edgeroutern von Microsoft schützt, mithilfe von PowerShell-Befehlen.
Voraussetzungen
Bevor Sie mit der Konfiguration von MACsec beginnen, stellen Sie sicher, dass die folgenden Voraussetzungen erfüllt sind:
- Sie haben sich mit den ExpressRoute Direct-Bereitstellungsworkflowsvertraut gemacht.
- Sie haben eine ExpressRoute Direct-Portressource entsprechend den Anleitungen erstellt.
- Sie haben die neueste Version von Azure PowerShell auf Ihrem Computer installiert, wenn Sie PowerShell lokal ausführen möchten.
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 aktuelle 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:
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 Sie das Abonnement aus, 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
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 Informationen zu 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
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 Ihrer Key Vault-Instanz vorläufiges Löschen 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.
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 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
oderGet-AzUserAssignedIdentity
von PowerShell nicht als gültige Cmdlets erkannt werden. Führen Sie anschließend den Befehl erneut aus.Install-Module -Name Az.ManagedServiceIdentity
Erstellen Sie einen CAK (Connectivity Association Key) und einen CKN (Connectivity Association Key Name), und speichern Sie diese in 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
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 Verschlüsselungsverfahren.
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 Key Vault erhalten.
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 ExpressRoute Direct funktioniert.
Hinweis
Sie können Nicht-XPN-Verschlüsselungen für 10 Gbit/s ExpressRoute-Ports konfigurieren:
- GcmAes128
- GcmAes256
Sie können entweder Nicht-XPN- oder XPN-Chiffre für 40 Gbit/s und größere ExpressRoute-Ports konfigurieren:
- GcmAes128
- GcmAes256
- GcmAesXpn128
- GcmAesXpn256
Die vorgeschlagene bewährte Methode besteht darin, die Verschlüsselung mit xpn-Verschlüsselungen einzurichten, um sporadische Sitzungsfehler zu verhindern, die mit nicht xpn-Chiffre für Verbindungen mit 40 Gbit/s oder höherer Bandbreite auftreten.
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
(Optional) Wenn die Ports den Status „Verwaltung inaktiv“ 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.
(Optional) Führen Sie die folgenden Befehle aus, um die Ports mit dem Status „Verwaltung inaktiv“ 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.
Deaktivieren von 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 Leitungen. 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 sind, sehen Sie, dass die BGP-Routen ordnungsgemäß in beiden Richtungen angekündigt werden und Ihre Daten entsprechend über ExpressRoute fließen.
Nächste Schritte
- Erstellen einer ExpressRoute-Leitung in ExpressRoute Direct
- Verknüpfen eines virtuellen Netzwerks mit einer ExpressRoute-Leitung
- Überprüfen der ExpressRoute-Konnektivität