Mengaktifkan enkripsi disk untuk node kluster yang dikelola oleh Service Fabric

Kluster yang dikelola Service Fabric mendukung dua opsi enkripsi disk untuk membantu melindungi data Anda untuk memenuhi komitmen keamanan dan kepatuhan organisasi Anda. Opsi yang disarankan adalah Enkripsi di host, tetapi juga mendukung Azure Disk Encryption. Tinjau opsi enkripsi disk dan pastikan opsi yang dipilih memenuhi kebutuhan Anda.

Aktifkan enkripsi di host

Metode enkripsi ini meningkatkan Azure Disk Encryption dengan mendukung semua jenis dan gambar OS, termasuk gambar kustom, untuk VM Anda dengan mengenkripsi data di layanan Azure Storage. Metode ini tidak menggunakan CPU VM Anda juga tidak memengaruhi kinerja VM Anda yang memungkinkan beban kerja untuk menggunakan semua sumber daya SKU VM yang tersedia.

Catatan

Anda tidak dapat mengaktifkan tipe node yang ada. Anda harus menyediakan tipe node baru dan memigrasikan beban kerja Anda.

Catatan

Status enkripsi disk Azure Security Center akan ditampilkan sebagai Tidak Sehat saat menggunakan Enkripsi di Host

Ikuti langkah-langkah ini dan referensi templat sampel ini untuk menyebarkan cluster Service Fabric terkelola baru dengan enkripsi host diaktifkan.

  1. Tinjau pembatasan berikut untuk memvalidasi mereka memenuhi kebutuhan Anda.

  2. Siapkan prasyarat yang diperlukan sebelum pengerahan klaster.

  3. Konfigurasikan properti enableEncryptionAtHost di templat kluster terkelola untuk setiap enkripsi disk jenis node diperlukan. Sampel sudah dikonfigurasi sebelumnya.

    • ApiVersion sumber daya kluster terkelola Service Fabric harus 2021-11-01-pratinjau atau yang lebih baru.
         {
                "apiVersion": "[variables('sfApiVersion')]",
                "type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
                "name": "[concat(parameters('clusterName'), '/', parameters('nodeTypeName'))]",
                "location": "[resourcegroup().location]",
                "properties": {
                    "enableEncryptionAtHost": true
                    ...
                }
        }
    
  4. Menyebarkan dan memverifikasi

    Sebarkan klaster terkelola anda yang dikonfigurasi dengan Enkripsi Host diaktifkan.

    $clusterName = "<clustername>" 
    $resourceGroupName = "<rg-name>"
    
    New-AzResourceGroupDeployment -Name $resourceGroupName -ResourceGroupName $resourceGroupName -TemplateFile .\azuredeploy.json -TemplateParameterFile .\azuredeploy.parameters.json -Debug -Verbose 
    

    Anda dapat memeriksa status enkripsi disk pada set skala dasar tipe node menggunakan perintah Get-AzVmss. Pertama Anda harus menemukan nama grup sumber daya pendukung klaster terkelola Anda (berisi jaringan virtual yang mendasarinya, penyeimbang beban, IP publik, NSG, set skala, dan akun penyimpanan). Pastikan untuk memodifikasi NodeTypeNAme ke nama jenis node kluster apa pun yang ingin Anda periksa (seperti yang ditentukan dalam templat penyebaran Anda).

    $NodeTypeName = "NT2"
    $clustername = <clustername>
    $resourceGroupName = "<rg-name>"
    $supportResourceGroupName = "SFC_" + (Get-AzServiceFabricManagedCluster -ResourceGroupName $resourceGroupName -Name $clustername).ClusterId
    $VMSS = Get-AzVmss -ResourceGroupName $supportResourceGroupName -Name $NodeTypeName
    $VMSS.VirtualMachineProfile.SecurityProfile.EncryptionAtHost
    

    Output kembalian akan tampak seperti ini:

    $VMSS.VirtualMachineProfile.SecurityProfile.EncryptionAtHost
    True
    

Aktifkan Azure Disk Encryption

Azure Disk Encryption menyediakan enkripsi volume untuk OS dan disk data komputer virtual Azure (VM) dengan menggunakan fitur DM-Crypt di Linux atau fitur BitLocker dari Windows. ADE terintegrasi dengan Azure Key Vault untuk membantu Anda mengontrol dan mengelola kunci dan rahasia enkripsi disk.

Dalam panduan ini, Anda akan mempelajari cara mengaktifkan enkripsi disk pada node kluster yang dikelola Service Fabric di Windows menggunakan kemampuan Azure Disk Encryption untuk set skala komputer virtual melalui templat Azure Resource Manager (ARM).

  1. Mendaftar Azure Disk Encryption

    Pratinjau enkripsi disk untuk set skala komputer virtual memerlukan registrasi mandiri. Jalankan perintah berikut:

    Register-AzProviderFeature -FeatureName "UnifiedDiskEncryption" -ProviderNamespace "Microsoft.Compute"
    

    Periksa status pendaftaran dengan menjalankan:

    Get-AzProviderFeature -ProviderNamespace "Microsoft.Compute" -FeatureName "UnifiedDiskEncryption"
    

    Setelah status berubah menjadi Terdaftar, Anda siap untuk melanjutkan.

  2. Menyediakan Key Vault untuk enkripsi disk

    Azure Disk Encryption menggunakan Azure Key Vault untuk mengontrol dan mengelola kunci dan rahasia enkripsi disk. Key Vault dan kluster yang dikelola Service Fabric Anda harus berada di wilayah Azure dan langganan yang sama. Selama persyaratan ini terpenuhi, Anda dapat menggunakan Key Vault baru atau yang sudah ada dengan mengaktifkannya untuk enkripsi disk.

  3. Buat Key Vault dengan enkripsi disk diaktifkan

    Jalankan perintah berikut untuk membuat Key Vault baru untuk enkripsi disk. Pastikan wilayah Key Vault Anda berada di wilayah yang sama dengan kluster Anda.

    $resourceGroupName = "<rg-name>" 
    $keyvaultName = "<kv-name>" 
    
    New-AzResourceGroup -Name $resourceGroupName -Location eastus2 
    New-AzKeyVault -ResourceGroupName $resourceGroupName -Name $keyvaultName -Location eastus2 -EnabledForDiskEncryption
    

  1. Perbarui Key Vault yang ada untuk memfungsikan enkripsi disk

    Jalankan perintah berikut untuk mengaktifkan enkripsi disk untuk Key Vault yang ada.

    Set-AzKeyVaultAccessPolicy -ResourceGroupName $resourceGroupName -VaultName $keyvaultName -EnabledForDiskEncryption
    

Memperbarui file templat dan parameter untuk enkripsi disk

Langkah berikut ini akan memandu Anda melalui perubahan templat yang diperlukan untuk mengaktifkan enkripsi disk pada kluster terkelola yang ada. Secara bergantian, Anda dapat menyebarkan kluster yang dikelola Service Fabric baru dengan enkripsi disk yang diaktifkan dengan template ini: https://github.com/Azure-Samples/service-fabric-cluster-templates/tree/master/SF-Managed-Standard-SKU-1-NT-DiskEncryption

  1. Tambahkan parameter berikut ke templat, dengan mensubstitusi langganan, nama grup sumber daya, dan nama vault Anda sendiri pada keyVaultResourceId:

    "parameters": {
     "keyVaultResourceId": { 
       "type": "string", 
       "defaultValue": "/subscriptions/########-####-####-####-############/resourceGroups/<rg-name>/providers/Microsoft.KeyVault/vaults/<kv-name>", 
       "metadata": { 
       "description": "Full resource id of the Key Vault used for disk encryption." 
    } 
     },
     "volumeType": { 
      "type": "string", 
      "defaultValue": "All", 
      "metadata": { 
       "description": "Type of the volume OS or Data to perform encryption operation" 
    }
    }
    }, 
    
  2. Selanjutnya, tambahkan ekstensi AzureDiskEncryption VM ke jenis node kluster terkelola dalam templat:

    "properties": { 
    "vmExtensions": [ 
    { 
    "name": "AzureDiskEncryption", 
    "properties": { 
      "publisher": "Microsoft.Azure.Security", 
      "type": "AzureDiskEncryption", 
      "typeHandlerVersion": "2.2", 
      "autoUpgradeMinorVersion": true, 
      "settings": {      
            "EncryptionOperation": "EnableEncryption", 
            "KeyVaultURL": "[reference(parameters('keyVaultResourceId'),'2016-10-01').vaultUri]", 
         "KeyVaultResourceId": "[parameters('keyVaultResourceID')]",
         "VolumeType": "[parameters('volumeType')]" 
         } 
       } 
    } 
    ] 
    } 
    
  3. Terakhir, perbarui file parameter, dengan mensubstituasi langganan, grup sumber daya, dan nama kubah utama Anda sendiri di keyVaultResourceId:

    "parameters": { 
    ...
     "keyVaultResourceId": { 
      "value": "/subscriptions/########-####-####-####-############/resourceGroups/<rg-name>/providers/Microsoft.KeyVault/vaults/<kv-name>" 
     },   
     "volumeType": { 
      "value": "All" 
     }    
    } 
    
  4. Menyebarkan dan memverifikasi perubahan

    Setelah Anda siap, sebarkan perubahan untuk mengaktifkan enkripsi disk pada kluster yang Anda kelola.

    $clusterName = "<clustername>" 
    
    New-AzResourceGroupDeployment -Name $resourceGroupName -ResourceGroupName $resourceGroupName .\azuredeploy.json -TemplateParameterFile .\azuredeploy.parameters.json -Debug -Verbose 
    

    Anda dapat memeriksa status enkripsi disk pada set skala dasar tipe node menggunakan perintah Get-AzVmssDiskEncryption. Pertama, Anda harus menemukan nama grup sumber daya pendukung kluster yang Anda kelola (berisi jaringan virtual yang mendasarinya, penyeimbang muatan, IP publik, NSG, set skala, dan akun penyimpanan). Pastikan untuk memodifikasi VmssName ke nama jenis node kluster apa pun yang ingin Anda periksa (seperti yang ditentukan dalam templat penyebaran Anda).

    $VmssName = "NT1"
    $clustername = <clustername>
    $supportResourceGroupName = "SFC_" + (Get-AzServiceFabricManagedCluster -ResourceGroupName $resourceGroupName -Name $clustername).ClusterId
    Get-AzVmssDiskEncryption -ResourceGroupName $supportResourceGroupName -VMScaleSetName $VmssName
    

    Output akan tampak mirip dengan ini:

    ResourceGroupName            : SFC_########-####-####-####-############
    VmScaleSetName               : NT1
    EncryptionEnabled            : True
    EncryptionExtensionInstalled : True
    

Langkah berikutnya

Contoh: Kluster terkelola Fabric Service SKU Standar, satu jenis node dengan enkripsi disk diaktifkan

Azure Disk Encryption for Windows VM

Mengenkripsi set skala komputer virtual dengan Azure Resource Manager