Hızlı Başlangıç: Test makinesiyle Linux için Azure güvenlik temelini denetleme

uyumluluk raporu ekran parçacığını

Bu kılavuzda, Linux için Azure güvenlik temeline göre bir test Sanal Makinesini (VM) denetlemek için Azure İlkesi'ni kullanacaksınız.

Özellikle şunları yapacaksınız:

  1. Boş kaynak grubu oluşturma
  2. Denetim ilkesini boş kaynak grubuna atayın
  3. Kaynak grubunda VM oluşturma ve denetim sonuçlarını gözlemleme

Bahşiş

Önkoşullar

Bu makaledeki adımları denemeden önce:

  1. Kaynak grubu, ilke ataması ve sanal makine oluşturmak için bir Azure hesabına ihtiyacınız olacaktır. Azure hesabınız yoksa ücretsiz deneme sürümü oluşturabilirsiniz.

  2. Azure ortamınıza nasıl erişeceğinizi seçin, örneğin:

    1. KOLAY: Azure Cloud Shell https://shell.azure.com
    2. VEYA: Azure CLI yüklü ve oturum açmış olarak kendi iş istasyonunuzu ve kabuk ortamınızı kullanın
    3. VEYA: Azure portalını şu adreste kullanın: https://portal.azure.com
  3. İstediğiniz Azure test ortamında oturum açtığınızdan emin olun

    • Azure CLI
    • Azure portal

    Geçerli bağlamınızı görmek için az account show kullanabilirsiniz. Oturum açmak veya bağlamları değiştirmek için az account loginkullanın.


1. Adım: Kaynak grubu oluşturma

Bahşiş

Bu makale boyunca örnek konum olarak "Doğu ABD" (eastus) kullanımı rastgeledir. Kullanılabilir herhangi bir Azure konumunu seçebilirsiniz.

  • Azure CLI
  • Azure portal
az group create --name my-demo-rg --location eastus

2. Adım: İlkeyi boş test kaynak grubunuza atayın

  • Azure CLI
  • Azure portal
# Note this example is from a bash shell. Other shells may require different handling of special characters and variables
RG_ID=$(az group show --resource-group my-demo-rg --query id --output tsv)
az policy assignment create --policy "fc9b3da7-8347-4380-8e70-0a0361d8dedd" --display-name "Linux machines should meet requirements for the Azure compute security baseline" --scope "$RG_ID"

3. Adım: Bir test VM'si oluşturun ve Makine Yapılandırması için hazırlayın

  • Azure CLI
  • Azure portal
  1. Sistem tarafından atanan kimlikle Linux VM oluşturma

    az vm create --name my-demo-vm-01 --resource-group my-demo-rg --image Ubuntu2204 --assign-identity [system] --size Standard_B2s
    

    Bahşiş

    "Henüz erişim verilmedi..." gibi bir uyarı almak normaldir. Azure Makine Yapılandırması, belirli bir kaynak erişimi değil, yalnızca makine yönetilen kimlik gerektirir.

  2. Makine Yapılandırma aracısını Azure VM uzantısı olarak yükleme

    az vm extension set --resource-group my-demo-rg --vm-name my-demo-vm-01 --name ConfigurationForLinux --publisher Microsoft.GuestConfiguration --enable-auto-upgrade
    

Bahşiş

Beklemeyi azaltmak ve bağlam değişikliklerini azaltmak için bu kılavuzda yönetilen kimlik ve Makine Yapılandırması uzantısı adımları el ile gerçekleştirildi. Büyük ölçekte bunlar, sanal makinelerde yerleşik ilke girişimi üzerinde Konuk Yapılandırma ilkelerini etkinleştirmek için Dağıtma önkoşulları kullanılarak karşılanabilir.

4. Adım: Devam etmeden önce bir mola verin

Birkaç adım otomatik olarak gerçekleştirilir. Bu adımların her biri birkaç dakika sürebilir. Buna uygun olarak, devam etmeden önce lütfen en az 15 dakika bekleyin.

5. Adım: Sonuçları gözlemleyin

Aşağıdaki örneklerde nasıl edineceğiniz gösterilmektedir:

  1. Uyumluluk durumuna göre makine sayısı (binlerce makineye sahip olabileceğiniz üretim ölçeklerinde kullanışlıdır)
  2. Her biri için uyumluluk durumuna sahip makinelerin listesi
  3. Her biri için uyumluluk durumu ve kanıt içeren temel kuralların ayrıntılı listesi (Nedenlerolarak da bilinir)

Bahşiş

Kırmızı uyumlu olmayan aşağıdaki sonuçları görmeyi bekleyin. Yalnızca denetim kullanım örneği, mevcut sistemler ile Azure güvenlik temeli arasındaki farkı keşfetmektir.

  • Azure CLI
  • Azure portal

Aşağıdaki Azure CLI örnekleri bash ortamından alınıyor. Başka bir kabuk ortamı kullanmak için satır sonu davranışı, tırnak kuralları, karakter kaçışı vb. örnekleri ayarlamanız gerekebilir.

  1. Uyumluluk durumuna göre makine sayısı:

    QUERY='
    // Returns one record per observed compliance status bucket, with machine counts for each
    guestconfigurationresources
    | where name contains "AzureLinuxBaseline"
    | extend ["> ComplianceStatus"] = tostring(properties.complianceStatus)
    | summarize MachineCount = count() by ["> ComplianceStatus"]'
    az graph query --graph-query "$QUERY" --query data --output yamlc
    
  2. Her biri için uyumluluk durumuna sahip makinelerin listesi:

    QUERY='
    // returns one record per machine, with status
    guestconfigurationresources
    | where name contains "AzureLinuxBaseline"
    | project ["> Machine"] = split(properties.targetResourceId,"/")[-1],
      ComplianceStatus = properties.complianceStatus,
      LastComplianceCheck = properties.lastComplianceStatusChecked'
    az graph query --graph-query "$QUERY" --query data --output yamlc
    
  3. Her biri için uyumluluk durumu ve kanıt içeren temel kuralların ayrıntılı listesi (Nedenlerolarak da bilinir):

    QUERY='
    // Returns one record per baseline rule (around 200 per machine) with status for each
    GuestConfigurationResources
    | where name contains "AzureLinuxBaseline"
    | project Report = properties.latestAssignmentReport,
      Machine = split(properties.targetResourceId,"/")[-1],
      LastComplianceCheck=properties.lastComplianceStatusChecked
    | mv-expand Report.resources
    | project ["> Machine"] = Machine,
      ["> Rule"] = Report_resources.resourceId,
      RuleComplianceStatus = Report_resources.complianceStatus,
      RuleComplianceReason = Report_resources.reasons[0].phrase,
      LastComplianceCheck'
    
    az graph query --graph-query "$QUERY" --query data --output yamlc
    

Video, genel bir iş akışı hissi vermek için dahil edilmiştir. Sorgu ayrıntıları için bu makaledeki metne güvenin.

İsteğe bağlı: Ölçeklendirme deneyimi için daha fazla test makinesi ekleyin

Bu makalede, ilke başlangıçta boş olan ve ardından bir VM kazanan bir kaynak grubuna atanmıştır. Bu, sistemin uçtan uca çalıştığını gösterse de, makine listeleri vb. ile ölçekli operasyonlar hakkında bir fikir vermez.

El ile veya otomasyon aracılığıyla kaynak grubuna daha fazla test makinesi eklemeyi göz önünde bulundurun. Bu makineler Azure VM'leri veya Arc özellikli makineler olabilir. Bu makinelerin uyumlu hale geldiğini (hatta başarısız olduğunu) gördüğünüzde, Azure güvenlik temelini büyük ölçekte kullanıma hazır hale getirme konusunda daha keskin bir anlayış elde edebilirsiniz.

Kaynakları temizleme

Devam eden ücretlerden kaçınmak için bu makalede kullanılan kaynak grubunu silmeyi göz önünde bulundurun. Örneğin, Azure CLI komutu az group delete --name "my-demo-rg"olacaktır.