Share via


ExpressRoute Direct bağlantı noktalarında MACsec’i yapılandırma

Bu makalede, PowerShell komutlarını kullanarak uç yönlendiricilerinizle Microsoft'un uç yönlendiricileri arasındaki iletişimi koruyan bir güvenlik protokolü olan MACsec'i yapılandırma hakkında yönergeler sağlanmaktadır.

Başlamadan önce

MACsec'i yapılandırmaya başlamadan önce aşağıdaki önkoşulları karşıladığınızdan emin olun:

  • ExpressRoute Direct sağlama iş akışları hakkında bilgi edinmişsinizdir.
  • Yönergelere göre bir ExpressRoute Direct bağlantı noktası kaynağı oluşturdunuz.
  • PowerShell'i yerel olarak çalıştırmak istiyorsanız bilgisayarınızda Azure PowerShell'in en son sürümünü yüklemişsinizdir.

Azure PowerShell ile çalışma

Bu makaledeki adımlar ve örnekler Azure PowerShell Az modüllerini kullanır. Az modüllerini bilgisayarınıza yerel olarak yüklemek için bkz . Azure PowerShell'i yükleme. Yeni Az modülü hakkında daha fazla bilgi edinmek için bkz . Yeni Azure PowerShell Az modülüne giriş. PowerShell cmdlet'leri sık sık güncelleştirilir. En son sürümü çalıştırmıyorsanız, yönergelerde belirtilen değerler başarısız olabilir. Sisteminizde Yüklü PowerShell sürümlerini bulmak için cmdlet'ini Get-Module -ListAvailable Az kullanın.

Azure Cloud Shell'i kullanarak Azure PowerShell veya CLI'yı yerel olarak yüklemek yerine çoğu PowerShell cmdlet'ini ve CLI komutunu çalıştırabilirsiniz. Azure Cloud Shell, yaygın Azure araçlarının önceden yüklenmiş olduğu ve hesabınızla birlikte kullanılacak şekilde yapılandırılmış ücretsiz bir etkileşimli kabukdur. Bu makalede yer alan tüm kodları Azure Cloud Shell'de çalıştırmak için bir Cloud Shell oturumu açın, kodu kopyalamak için kod bloğundaki Kopyala düğmesini kullanın ve Windows ve Linux'ta Ctrl+Shift+V veya macOS üzerinde Cmd+Shift+V ile Cloud Shell oturumuna yapıştırın. Yapıştırılan metin otomatik olarak yürütülmedi, kodu çalıştırmak için Enter tuşuna basın.

Cloud Shell’i başlatmanın birkaç yolu vardır:

Seçenek Bağlantı
Kod bloğunun sağ üst köşesindeki Deneyin’e tıklayın. Cloud Shell in this article
Cloud Shell’i tarayıcınızda açın. https://shell.azure.com/powershell
Azure portalının sağ üst kısmındaki menüde yer alan Cloud Shell düğmesine tıklayın. Cloud Shell in the portal

Oturum açın ve doğru aboneliği seçin

Yapılandırmayı başlatmak için şu adımları izleyin:

  • Kimlik bilgilerinizi kullanarak Azure hesabınızda oturum açın.

  • Bu yapılandırma için kullanmak istediğiniz aboneliği seçin.

    Azure Cloud Shell kullanıyorsanız , 'Deneyin' seçeneğine tıkladıktan sonra Azure hesabınızda otomatik olarak oturum açarsınız. Yerel olarak oturum açmak için PowerShell konsolunuzu yükseltilmiş ayrıcalıklarla açın ve bağlanmak için cmdlet'ini çalıştırın.

    Connect-AzAccount
    

    Birden fazla aboneliğiniz varsa Azure aboneliklerinizin listesini alın.

    Get-AzSubscription
    

    Kullanmak istediğiniz aboneliği belirtin.

    Select-AzSubscription -SubscriptionName "Name of subscription"
    

Azure Key Vault, MACsec gizli dizileri ve kullanıcı kimliği oluşturma

  1. MACsec gizli dizilerini güvenli bir şekilde depolamak için yeni bir kaynak grubunda bir Key Vault örneği oluşturmanız gerekir. Key Vault, Azure'da şifreleme anahtarlarını, sertifikalarını ve gizli dizilerini yönetmenize ve korumanıza olanak tanıyan bir hizmettir. Daha fazla bilgi için bkz . Azure Key Vault nedir?.

    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
    

    Bu yapılandırma için mevcut bir Key Vault veya kaynak grubunu yeniden kullanabilirsiniz. Ancak Key Vault'unuzda [geçici silme özelliği] özelliğinin etkinleştirildiğinden emin olmanız gerekir. Bu özellik silinen anahtarları, gizli dizileri ve sertifikaları saklama süresi içinde kurtarmanıza olanak tanır. Key Vault'unuzda geçici silme etkin değilse etkinleştirmek için aşağıdaki komutları çalıştırın:

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

    Not

    • ExpressRoute, Azure Key Vault'ta Ağ Güvenliği ilkelerini destekleyen, Azure'da güvenilen bir hizmettir. Daha fazla bilgi için bkz. Azure Key Vault Güvenlik Duvarı ve Sanal Ağ yapılandırma.
    • ExpressRoute yönetim düzlemi ile iletişimi engellediği için Azure Key Vault'u özel bir uç noktanın arkasına yerleştirmemelisiniz. ExpressRoute yönetim düzlemi, bağlantınızın MACsec anahtarlarını ve parametrelerini yönetmekten sorumludur.
  2. Yeni bir kullanıcı kimliği oluşturmak için cmdlet'ini New-AzUserAssignedIdentity kullanmanız gerekir. Bu cmdlet, Microsoft Entra Id'de kullanıcı tarafından atanan bir yönetilen kimlik oluşturur ve bunu belirtilen abonelik ve kaynak grubuna kaydeder. Kullanıcı tarafından atanan yönetilen kimlik, yönetilen kimlikleri destekleyen herhangi bir Azure hizmetine atanabilen tek başına bir Azure kaynağıdır. Kodunuzda veya yapılandırma dosyalarınızda hiçbir kimlik bilgisi depolamadan Azure kaynaklarına erişimi doğrulamak ve yetkilendirmek için bu kimliği kullanabilirsiniz. Daha fazla bilgi için bkz . Azure kaynakları için yönetilen kimlikler nedir?.

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

    Mevcut bir kullanıcı kimliğini kullanmak için aşağıdaki komutu çalıştırın:

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

    PowerShell geçerli cmdlet'leri tanımıyorsa veya Get-AzUserAssignedIdentity geçerli cmdlet'ler olarak tanımıyorsa New-AzUserAssignedIdentity aşağıdaki modülü Yönetici istrator modunda yükleyin. Ardından yukarıdaki komutu yeniden yürütür.

    Install-Module -Name Az.ManagedServiceIdentity
    
  3. Bağlantı ilişkilendirme anahtarı (CAK) ve bağlantı ilişkilendirme anahtarı adı (CKN) oluşturun ve bunları Key Vault'ta depolayın.

    $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
    

    Not

    • CKN, 64 onaltılık basamağı (0-9, A-F) kadar çift uzunlukta bir dize olmalıdır.
    • CAK uzunluğu, belirtilen şifreleme paketine bağlıdır:
      • GcmAes128 ve GcmAesXpn128 için CAK, 32 onaltılık basamağı (0-9, A-F) içeren çift uzunlukta bir dize olmalıdır.
      • GcmAes256 ve GcmAesXpn256 için CAK, 64 onaltılık basamağı (0-9, A-F) içeren çift uzunlukta bir dize olmalıdır.
    • CAK için anahtarın tam uzunluğu kullanılmalıdır. Anahtar gerekli uzunluktan 0's kısaysa, uzunluk gereksinimini karşılamak için anahtarın sonuna eklenir. Örneğin, 1234'ün CAK'ı 12340000... hem 128 bit hem de şifreyi temel alan 256 bit için.
  4. Kullanıcı kimliğine işlemi gerçekleştirme yetkisi verin GET .

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

    Kullanıcı kimliği, Key Vault'tan CAK ve CKN gibi gizli dizileri almak için erişim elde etti.

  5. Kullanıcı kimliğini ExpressRoute için belirlenen hizmet sorumlusu olarak yapılandırın.

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

ExpressRoute Direct bağlantı noktalarında MACsec’i yapılandırma

MACsec'i etkinleştirme

Her ExpressRoute Direct örneği iki fiziksel bağlantı noktası oluşturur. MACsec'i her iki bağlantı noktasında aynı anda veya tek tek bir bağlantı noktasında etkinleştirebilirsiniz. İkinci seçenek, diğer bağlantı noktasını korurken trafiği çalışır durumdaki bir bağlantı noktasına yönlendirmenize olanak tanır ve bu da ExpressRoute Direct'iniz çalışır durumdaysa kesintiyi azaltabilir.

Not

Hem XPN hem de XPN dışı şifrelemeleri yapılandırabilirsiniz:

  • GcmAes128
  • GcmAes256
  • GcmAesXpn128
  • GcmAesXpn256

Önerilen en iyi yöntem, yüksek hızlı bağlantılarda xpn olmayan şifrelemelerle oluşan düzensiz oturum hatalarını önlemek için xpn şifreleriyle şifreleme ayarlamaktır.

  1. Gerektiğinde MACsec gizli dizilerini almak için ExpressRoute yönetim kodunu etkinleştirmek için MACsec gizli dizilerini ve şifrelemesini oluşturun ve kullanıcı kimliğini bağlantı noktasına bağlayın.

    $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. (İsteğe bağlı) Bağlantı noktaları Yönetici istrative Down durumundaysa, bağlantı noktalarını getirmek için aşağıdaki komutları çalıştırabilirsiniz.

    $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 artık Microsoft tarafındaki ExpressRoute Direct bağlantı noktalarında etkinleştirilmiştir. Edge cihazlarınızda yapılandırmadıysanız, bunları aynı MACsec gizli dizileri ve şifreleme ile yapılandırmaya devam edebilirsiniz.

  3. (İsteğe bağlı) Yönetici istrative Down durumundaki bağlantı noktalarını etkinleştirmek için aşağıdaki komutları çalıştırın:

    $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 artık ExpressRoute Direct bağlantı noktalarında etkinleştirilmiştir.

MACsec'i devre dışı bırakma

ExpressRoute Direct örneğinizde MACsec'i devre dışı bırakmak için aşağıdaki komutları çalıştırın:

$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 artık Microsoft tarafındaki ExpressRoute Direct bağlantı noktalarında devre dışı bırakılmıştır.

Bağlantıyı test etme

ExpressRoute Direct bağlantı noktalarınızda MACsec'i (MACsec anahtar güncelleştirmesi dahil) ayarladıktan sonra, devrelerin BGP oturumlarının durumunu doğrulayın. Bağlantı noktalarında henüz bir bağlantı hattı oluşturmadıysanız, önce bunu yapın ve bağlantı hattı için Azure Özel Eşleme veya Microsoft Eşlemesi oluşturun. Ağ cihazlarınızla Microsoft'un ağ cihazları arasındaki MACsec anahtarı uyuşmazlığı gibi yanlış MACsec yapılandırması, katman 2'de ARP çözünürlüğünü veya katman 3'te BGP'nin kurulmasını gözlemlemenizi önler. Her şey doğru yapılandırıldıysa BGP yollarının her iki yönde de doğru şekilde tanıtıldığını ve uygulama verilerinizin ExpressRoute üzerinden uygun şekilde aktığını görürsünüz.

Sonraki adımlar