你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用 PowerShell 自动加入 Microsoft Defender for Cloud

可以使用 Microsoft Defender for Cloud PowerShell 模块以编程方式保护 Azure 工作负荷。 借助 PowerShell,可以自动执行任务,并可避免手动任务中固有的人为错误。 对于涉及几十个资源且具有数百乃至数千种资源的大规模部署,这一方法尤为有用,所有这些必须从一开始就受到保护。

通过 PowerShell 加入 Microsoft Defender for Cloud,你可以以编程方式自动加入 Azure 资源并对其进行管理,以及添加必要的安全控件。

本文提供了一个示例 PowerShell 脚本,该脚本可在你的环境中进行修改和使用,以跨订阅推出 Defender for Cloud。

在此示例中,通过启用可提供高级威胁防护和检测功能的 Microsoft Defender for Cloud 增强安全功能,我们将对 ID 为 <Subscription ID> 的订阅启用 Defender for Cloud,并应用提供高级别保护的建议设置:

  1. 启用 Microsoft Defender for Cloud 中的增强安全性

  2. 将 Log Analytics 工作区设置为 Log Analytics 代理将发送其在与订阅关联的 VM 上收集的数据位置,在此示例中,是现有用户定义的工作区 (myWorkspace)。

  3. 激活用于部署 Log Analytics 代理的 Defender for Cloud 自动代理预配。

  4. 将组织的 CISO 设置为 Defender for Cloud 警报和重要事件的安全联系人

  5. 分配 Defender for Cloud 的默认安全策略

先决条件

以下步骤应在运行 Defender for Cloud cmdlet 前执行:

  1. 以管理员身份运行 PowerShell。

  2. 在 PowerShell 中运行以下命令:

    Set-ExecutionPolicy -ExecutionPolicy AllSigned
    
    Install-Module -Name Az.Security -Force
    

使用 PowerShell 加入 Defender for Cloud

  1. 将你的订阅注册到 Defender for Cloud 资源提供程序:

    Set-AzContext -Subscription "<Subscription ID>"
    
    Register-AzResourceProvider -ProviderNamespace 'Microsoft.Security'
    
  2. 可选:设置订阅的覆盖级别(打开/关闭 Microsoft Defender for Cloud 的增强安全功能)。 这些功能在未定义的情况下处于关闭状态:

    Set-AzContext -Subscription "<Subscription ID>"
    
    Set-AzSecurityPricing -Name "VirtualMachines" -PricingTier "Standard"
    
  3. 配置代理将报告的 Log Analytics 工作区。 必须具有一个已创建的 Log Analytics 工作区,订阅的虚拟机将向其报告。 你可以定义向同一工作区报告的多个订阅。 如未定义,则将使用默认工作区。

    Set-AzSecurityWorkspaceSetting -Name "default" -Scope "/subscriptions/<Subscription ID>" -WorkspaceId "/subscriptions/<Subscription ID>/resourceGroups/myRg/providers/Microsoft.OperationalInsights/workspaces/myWorkspace"
    
  4. 在 Azure VM 上自动预配安装 Log Analytics 代理:

    Set-AzContext -Subscription "<Subscription ID>"
    
    Set-AzSecurityAutoProvisioningSetting -Name "default" -EnableAutoProvision
    

    注意

    建议启用自动预配,以确保 Azure 虚拟机自动受到 Microsoft Defender for Cloud 的保护。
    作为 Defender for Cloud 更新策略的一部分,Defender for Servers 产品/服务不再需要 Azure Monitor 代理 (AMA)。 但是,对于计算机上的 Defender for SQL Server,它仍是必需的。 因此,可以通过 Defender for Cloud 门户使用新的部署策略为计算机上的 SQL Server 部署 Azure Monitor 代理 (AMA)。 详细了解如何迁移到面向 SQL Server 的 Azure Monitoring Agent (AMA) 的自动预配流程

  5. 可选:强烈建议阅读为你加入的订阅定义安全联系人详细信息,该联系人将被用作接收 Defender for Cloud 所生成的警报和通知的收件人:

    Set-AzSecurityContact -Name "default1" -Email "CISO@my-org.com" -AlertAdmin -NotifyOnAlert
    
  6. 分配默认的 Defender for Cloud 策略计划:

    Register-AzResourceProvider -ProviderNamespace 'Microsoft.PolicyInsights'
    
    $Policy = Get-AzPolicySetDefinition | where {$_.Properties.displayName -EQ 'Microsoft cloud security benchmark'} 
    
    New-AzPolicyAssignment -Name 'Microsoft cloud security benchmark' -PolicySetDefinition $Policy -Scope '/subscriptions/$($Subscription.Id)'
    

你已成功地使用 PowerShell 加入 Microsoft Defender for Cloud。

现在可以将这些 PowerShell cmdlet 与自动化脚本结合使用,从而以编程方式循环访问订阅和资源。 这可节省时间并减少人为错误的可能性。 你可以使用此示例脚本作为参考。

另请参阅

若要详细了解如何通过 PowerShell 来自动加入 Defender for Cloud,请参阅以下文章:

若要详细了解 Defender for Cloud,请参阅以下文章: