Mengonfigurasi MACsec pada port ExpressRoute Direct

Artikel ini menyediakan panduan tentang cara mengonfigurasi MACsec, protokol keamanan yang melindungi komunikasi antara router tepi Anda dan router tepi Microsoft, menggunakan perintah PowerShell.

Sebelum Anda mulai

Sebelum Anda mulai mengonfigurasi MACsec, pastikan Anda memenuhi prasyarat berikut:

  • Anda membiasakan diri dengan alur kerja provisi ExpressRoute Direct.
  • Anda membuat sumber daya port ExpressRoute Direct sesuai instruksi.
  • Anda menginstal versi terbaru Azure PowerShell di komputer Jika Anda berniat menjalankan PowerShell secara lokal.

Bekerja dengan Azure PowerShell

Langkah-langkah dan contoh dalam artikel ini menggunakan modul Az Azure PowerShell. Untuk memasang modul Az secara lokal di komputer Anda, lihat Memasang Azure PowerShell. Untuk mempelajari selengkapnya tentang modul Az baru, lihat Memperkenalkan modul Az Azure PowerShell baru. Cmdlet PowerShell sering diperbarui. Jika Anda tidak menjalankan versi terbaru, nilai yang ditetapkan dalam instruksi mungkin gagal. Untuk menemukan versi PowerShell yang diinstal di sistem Anda, gunakan cmdlet Get-Module -ListAvailable Az.

Anda dapat menggunakan Azure Cloud Shell untuk menjalankan sebagian besar perintah cmdlet PowerShell dan CLI, ketimbang menginstal Azure PowerShell atau CLI secara lokal. Azure Cloud Shell adalah shell interaktif gratis yang memiliki alat Azure umum yang telah diinstal sebelumnya dan dikonfigurasi untuk digunakan dengan akun Anda. Untuk menjalankan segala kode yang terkandung dalam artikel ini di Azure Cloud Shell, buka sesi Cloud Shell, gunakan tombol Salin pada blok kode untuk menyalin kode, dan menempelkannya ke sesi Cloud Shell dengan Ctrl+Shift+V di Windows dan Linux, atau Cmd+Shift+V di macOS. Teks yang ditempelkan tidak dijalankan secara otomatis, tekan Enter untuk menjalankan kode.

Ada beberapa cara untuk membuka Cloud Shell:

Opsi Tautan
Pilih Coba di sudut kanan atas blok kode. Cloud Shell in this article
Buka Cloud Shell di browser Anda. https://shell.azure.com/powershell
Pilih tombol Cloud Shell pada menu pada bagian kanan atas di portal Microsoft Azure. Cloud Shell in the portal

Masuk dan pilih langganan yang tepat

Ikuti langkah-langkah berikut untuk memulai konfigurasi:

  • Masuk ke akun Azure Anda menggunakan kredensial Anda.

  • Pilih langganan yang ingin Anda gunakan untuk konfigurasi ini.

    Jika Anda menggunakan Azure Cloud Shell, Anda masuk ke akun Azure Anda secara otomatis setelah mengklik 'Coba'. Untuk masuk secara lokal, buka konsol PowerShell Anda dengan hak istimewa yang lebih tinggi dan jalankan cmdlet untuk terhubung.

    Connect-AzAccount
    

    Jika Anda memiliki lebih dari satu langganan, dapatkan daftar langganan Azure Anda.

    Get-AzSubscription
    

    Tentukan langganan yang ingin Anda gunakan.

    Select-AzSubscription -SubscriptionName "Name of subscription"
    

Membuat Azure Key Vault, rahasia MACsec, dan identitas pengguna

  1. Untuk menyimpan rahasia MACsec dengan aman, Anda perlu membuat instans Key Vault di grup sumber daya baru. Key Vault adalah layanan yang memungkinkan Anda mengelola dan melindungi kunci kriptografi, sertifikat, dan rahasia di Azure. Untuk informasi selengkapnya, lihat Apa itu 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
    

    Anda dapat menggunakan kembali Key Vault atau grup sumber daya yang ada untuk konfigurasi ini. Namun, Anda harus memastikan bahwa [fitur penghapusan sementara] diaktifkan di Key Vault Anda. Fitur ini memungkinkan Anda memulihkan kunci, rahasia, dan sertifikat yang dihapus dalam periode retensi. Jika Key Vault Anda tidak mengaktifkan penghapusan sementara, jalankan perintah berikut untuk mengaktifkannya:

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

    Catatan

    • ExpressRoute adalah layanan tepercaya dalam Azure yang mendukung kebijakan Keamanan Jaringan dalam Azure Key Vault. Untuk informasi selengkapnya, lihat Mengonfigurasi Azure Key Vault Firewall dan Virtual Networks.
    • Anda tidak boleh menempatkan Azure Key Vault di belakang titik akhir privat, karena ini akan mencegah komunikasi dengan bidang manajemen ExpressRoute. Bidang manajemen ExpressRoute bertanggung jawab untuk mengelola kunci dan parameter MACsec untuk koneksi Anda.
  2. Untuk membuat identitas pengguna baru, Anda perlu menggunakan New-AzUserAssignedIdentity cmdlet. Cmdlet ini membuat identitas terkelola yang ditetapkan pengguna di ID Microsoft Entra dan mendaftarkannya dengan langganan dan grup sumber daya yang ditentukan. Identitas terkelola yang ditetapkan pengguna adalah sumber daya Azure mandiri yang dapat ditetapkan ke layanan Azure apa pun yang mendukung identitas terkelola. Anda dapat menggunakan identitas ini untuk mengautentikasi dan mengotorisasi akses ke sumber daya Azure tanpa menyimpan kredensial apa pun dalam kode atau file konfigurasi Anda. Untuk informasi selengkapnya, lihat Apa identitas terkelola untuk sumber daya Azure?

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

    Untuk menggunakan identitas pengguna yang sudah ada, jalankan perintah berikut:

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

    Instal modul berikut dalam mode Administrator jika PowerShell tidak mengenali New-AzUserAssignedIdentity atau Get-AzUserAssignedIdentity sebagai cmdlet yang valid. Kemudian, jalankan perintah di atas lagi.

    Install-Module -Name Az.ManagedServiceIdentity
    
  3. Buat kunci asosiasi konektivitas (CAK) dan nama kunci asosiasi konektivitas (CKN) dan simpan di 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
    

    Catatan

    • CKN harus berupa string dengan panjang genap hingga 64 digit heksadesimal (0-9, A-F).
    • Panjang CAK tergantung pada cipher suite yang ditentukan:
      • Untuk GcmAes128 dan GcmAesXpn128, CAK harus berupa string panjang genap dengan 32 digit heksadesimal (0-9, A-F).
      • Untuk GcmAes256 dan GcmAesXpn256, CAK harus berupa string dengan panjang genap dengan 64 digit heksadesimal (0-9, A-F).
    • Untuk CAK, panjang penuh kunci harus digunakan. Jika kunci lebih pendek dari panjang yang diperlukan, maka 0's akan ditambahkan ke akhir kunci untuk memenuhi persyaratan panjang. Misalnya, CAK dari 1234 akan menjadi 12340000... untuk 128-bit dan 256-bit berdasarkan cipher.
  4. Berikan identitas pengguna otorisasi untuk melakukan GET operasi.

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

    Identitas pengguna memperoleh akses untuk mengambil rahasia, seperti CAK dan CKN, dari Key Vault.

  5. Konfigurasikan identitas pengguna sebagai perwakilan layanan yang ditunjuk untuk ExpressRoute.

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

Mengonfigurasi MACsec pada port ExpressRoute Direct

Cara mengaktifkan MACsec

Setiap instans ExpressRoute Direct terdiri dari dua port fisik. Anda dapat mengaktifkan MACsec pada kedua port secara bersamaan atau pada satu port satu per satu. Opsi terakhir memungkinkan Anda mengalihkan lalu lintas ke port yang berfungsi sambil mempertahankan port lain, yang dapat mengurangi gangguan jika ExpressRoute Direct Anda beroperasi.

Catatan

Anda dapat mengonfigurasi baik xpN maupun non-XPN dengan sandi:

  • GcmAes128
  • GcmAes256
  • GcmAesXpn128
  • GcmAesXpn256

Praktik terbaik yang disarankan adalah menyiapkan enkripsi dengan cipher xpn untuk mencegah kegagalan sesi sporadis yang terjadi dengan cipher non-xpn pada tautan kecepatan tinggi.

  1. Buat rahasia dan sandi MACsec dan tautkan identitas pengguna dengan port untuk mengaktifkan kode manajemen ExpressRoute untuk mengambil rahasia MACsec jika diperlukan.

    $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. (Opsional) Jika port berada dalam status Administratif Tidak Berfungsi, Anda dapat menjalankan perintah berikut untuk memunculkan port.

    $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 sekarang diaktifkan di port ExpressRoute Direct di sisi Microsoft. Jika Anda tidak mengonfigurasinya di perangkat edge, Anda dapat melanjutkan untuk mengonfigurasinya dengan rahasia dan sandi MACsec yang sama.

  3. (Opsional) Untuk mengaktifkan port yang dalam status Tidak Berfungsi Administratif, jalankan perintah berikut:

    $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 sekarang diaktifkan pada port ExpressRoute Direct.

Cara menonaktifkan MACsec

Untuk menonaktifkan MACsec pada instans ExpressRoute Direct Anda, jalankan perintah berikut:

$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 sekarang dinonaktifkan pada port ExpressRoute Direct di sisi Microsoft.

Uji konektivitas

Setelah Anda menyiapkan MACsec (termasuk pembaruan kunci MACsec) pada port ExpressRoute Direct Anda, verifikasi status sesi BGP sirkuit. Jika Anda belum membuat sirkuit pada port, lakukan terlebih dahulu dan buat Azure Private Peering atau Microsoft Peering sirkuit. Konfigurasi MACsec yang salah, seperti ketidakcocokan kunci MACsec antara perangkat jaringan Anda dan perangkat jaringan Microsoft, mencegah Anda mengamati resolusi ARP pada lapisan 2 atau pembentukan BGP pada lapisan 3. Jika semuanya dikonfigurasi dengan benar, Anda akan melihat rute BGP yang diiklankan dengan benar di kedua arah dan aliran data aplikasi Anda yang sesuai melalui ExpressRoute.

Langkah berikutnya