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

使用 Microsoft Defender for Cloud 成本计算器估算成本

Microsoft Defender for Cloud 成本计算器是一个有用的工具,用于估算与云安全需求相关的潜在成本。 它允许你配置不同的计划和环境,并提供详细的成本明细,包括适用的折扣。

访问成本计算器

若要使用 Defender for Cloud 成本计算器,请转到 Microsoft Defender for Cloud 的环境 设置 部分。 选择位于界面上部的“成本计算器”按钮

“环境设置”中“成本计算器”按钮的屏幕截图。

配置 Defender for Cloud 计划和环境

在计算器的第一页上,选择“添加资产”按钮,开始向成本计算添加资产。 你有三种方法可添加资产:

  • 从已载入的环境添加资产推荐的项目:从已载入到 Defender for Cloud 的环境添加资产。 此方法涵盖 Azure 的所有计划,其工作效率比脚本选项更高。
  • 使用脚本添加资产:下载并执行脚本以自动添加现有资产。 建议用于尚未载入到 Azure 的环境(如 AWS 或 GCP 项目)。
  • 添加自定义资产:在不使用自动化的情况下手动添加资产。

如何在成本计算器中添加资产的屏幕截图。

注意

成本计算器不考虑 Defender for Cloud 的预留计划。

从已载入环境添加资产

小窍门

建议对 Azure 环境使用此方法,该方法涵盖所有计划,并提供比使用脚本更高效的结果。

  1. 从已加入 Defender for Cloud 的 Azure 环境列表中选择要包含在成本计算中的环境。

    注意

    计算器可发现你拥有权限的资源。

  2. 选择计划。 计算器根据所选内容和任何现有折扣估算成本。

如何分配加入的资产的屏幕截图。

使用脚本添加资产

注意

建议将此方法用于尚未载入到 Azure 的环境,例如 AWS 或 GCP 项目。

  1. 选择环境类型(Azure、AWS 或 GCP),并将脚本复制到新的 *.ps1 文件。

    注意

    该脚本仅收集运行它的用户有权访问的信息。

  2. 使用特权用户帐户在 PowerShell 7.X 环境中运行该脚本。 该脚本收集关于计费资产的信息并创建一个 CSV 文件。 它分两个步骤收集信息。 首先,它收集通常保持不变的当前计费资产数。 其次,就其收集的计费资产相关信息而言,这些信息在当月可能会发生很大变化。 对于这些资产,它检查过去 30 天内的使用量以评估成本。 可以在第一步后停止脚本,这需要几秒钟时间。 或者,可以继续收集动态资产过去 30 天的使用量,这对于大型帐户可能需要更长的时间。

  3. 将此 CSV 文件上传到下载脚本的向导中。

  4. 选择所需的 Defender for Cloud 计划。 计算器根据所选内容和任何现有折扣估算成本。

注意

  • 不考虑适用于 Defender for Cloud 的预留计划。
  • 对于 Defender for API:根据过去 30 天内的 API 调用数计算成本时,我们自动为你选择最佳的 Defender for API 计划。 如果过去 30 天内没有 API 调用,我们自动禁用该计划以进行计算。

如何使用脚本添加资产的屏幕截图。

脚本所需的权限

本节概述了为每个云提供商运行脚本所需的权限。

Azure

若要为每个订阅成功运行此脚本,所使用的帐户需要允许它执行以下操作的权限:

  • 发现并列出资源(包括虚拟机、存储帐户、APIM 服务、Cosmos DB 帐户和其他资源等)

  • 查询 Resource Graph(通过 Search-AzGraph)

  • 读取指标(通过 Get-AzMetric 和 Azure Monitor/Insights API)

推荐的内置角色

在大多数情况下,订阅范围内的“读取者”角色已足够。 “读取者”角色提供此脚本所需的以下关键功能:

  • 读取所有资源类型(使你可以列出并分析存储帐户、VM、Cosmos DB 和 APIM 等内容)
  • 读取指标 (Microsoft.Insights/metrics/read),使得对 Get-AzMetric 或直接 Azure Monitor REST 查询的调用成功
  • 只要对订阅中的这些资源至少拥有读取访问权限,Resource Graph 查询就可以正常执行

注意

如果希望确定你拥有必要的指标权限,你也可以使用“监视读取者”角色;但是,标准“读取者”角色已包括对指标的读取访问权限,通常你只需要该角色

如果已有“参与者”或“所有者”角色

  • 对订阅的“参与者”或“所有者”角色已经绰绰有余(这些角色的特权高于“读取者”)
  • 该脚本不执行资源的创建或删除。 因此,从最小特权的角度来看,仅出于数据收集目的而授予高级角色(如参与者/所有者)可能有些大材小用。

汇总

通过向用户或服务主体授予对要查询的每个订阅的“读取者”角色(或任何更高权限的角色),可确保脚本可以:

  • 检索订阅列表。
  • 枚举并读取所有相关资源信息(通过 REST 或 Az PowerShell)。
  • 提取必要的指标(APIM 的请求、Cosmos DB 的 RU 使用量、存储帐户流入量等)。
  • 在没有问题的情况下,运行 Resource Graph 查询。
AWS

AWS 脚本支持两个发现流:

  • 单一帐户发现 - 在单个 AWS 帐户中发现资源
  • 组织发现 - 跨 AWS 组织中的所有成员帐户发现资源
单一帐户发现

对于单一帐户发现,以下概述说明了 AWS 标识(用户或角色)成功运行此脚本所需的权限。 该脚本枚举资源(EC2、RDS、EKS、S3 等),并提取这些资源的元数据。 该脚本不创建、修改或删除资源,因此在大多数情况下仅需只读访问权限

AWS 托管策略:ReadOnlyAccess 或 ViewOnlyAccess:

最简单的方法是将 AWS 的内置只读策略之一附加到运行此脚本的标识和访问管理 (IAM) 主体(用户或角色)。 示例包括:

  • arn:aws:iam::aws:policy/ReadOnlyAccess
  • arn:aws:iam::aws:policy/job-function/ViewOnlyAccess

其中任一策略都涵盖对大多数 AWS 服务的“描述”和“列出”权限。 如果环境的安全策略允许它,ReadOnlyAccess 是确保脚本在它枚举的所有 AWS 资源中工作的最简单方法

密钥服务和所需权限

如果需要一个使用自定义标识和访问管理策略的更精细的方法,以下是必要的服务和权限

  • EC2
    • ec2:DescribeInstances
    • ec2:DescribeRegions
    • ec2:DescribeInstanceTypes (用于检索 vCPU/核心信息)
  • RDS
    • rds:DescribeDBInstances
  • EKS
    • eks:ListClusters
    • eks:DescribeCluster
    • eks:ListNodegroups
    • eks:DescribeNodegroup
  • 自动缩放(用于 EKS 节点组基础实例)
    • autoscaling:DescribeAutoScalingGroups
  • S3
    • s3:ListAllMyBuckets
  • STS
    • sts:GetCallerIdentity (用于检索 AWS 帐户 ID)

此外,如果需要列出脚本中未显示的其他资源,或者计划扩展脚本的功能,请确保根据需要授予相应的“描述*”、“列出*”和“获取*”操作。

组织发现

对于组织范围内的发现,需要的权限如下:

  • 在管理帐户中:需要列出组织中所有帐户的权限

    • organizations:ListAccounts
  • 在所有成员帐户中:需要的角色权限与单一帐户发现的权限(ReadOnlyAccess 或上面列出的自定义权限)相同

设置组织发现:

  1. 在具有所需读取权限的每个成员帐户中创建标识和访问管理角色(如单一帐户发现中所述)
  2. 配置角色,以便运行发现脚本的主体获得信任
  3. 确保运行脚本的主体具有:
    • 在每个成员帐户中担任角色的权限
    • 在管理帐户中的 organizations:ListAccounts 权限

注意

组织发现流会自动循环访问已配置角色有权访问的所有成员帐户。

汇总

  • 最简单的方法是附加 AWS 的内置 ReadOnlyAccess 策略,该策略已包括列出和描述 EC2、RDS、EKS、S3、自动缩放资源以及调用 STS 以获取帐户信息所需的所有操作
  • 如果只想授予正好够用的特权,请为 EC2、RDS、EKS、自动缩放、S3 和 STS 创建一个具有上述“描述*”、“列出*”和“获取*”操作的自定义只读策略。

任一方法都授予脚本足够的权限来执行以下操作:

  • 列出区域。
  • 检索 EC2 实例元数据。
  • 检索 RDS 实例。
  • 列出并描述 EKS 群集和节点组(以及基础自动缩放组)。
  • 列出 S3 存储桶。
  • 通过 STS 获取 AWS 帐户 ID。

这一权限集确保脚本可以发现资源并提取相关元数据,而无需创建、修改或删除任何内容。

GCP

以下的概述说明了 GCP 用户或服务帐户成功运行此脚本所需的权限。 根据用户的选择,可以使用脚本在单个项目或多个项目中发现资源。 若要估算多个项目的成本,请确保帐户在要包括的每个项目中具有所需的权限。 该脚本列出并描述所有选定项目中的 VM 实例、云 SQL 数据库、GKE 群集和 GCS 存储桶等资源。

确保对所有这些资源进行只读访问的最简单方法是在项目级别(通过 gcloud config set project 选择的相同项目)为你的用户或服务帐户授予“角色/查看者”角色

“角色/查看者”角色包括对该项目内大多数 GCP 服务的只读访问权限,包括以下项必要的权限

  • 计算引擎(列出 VM 实例、实例模板、计算机类型等)
  • 云 SQL(列出 SQL 实例)
  • Kubernetes 引擎(列出群集、节点池等)
  • 云存储(列出存储桶)

按服务划分的精细权限(如果创建自定义角色)

如果偏好更精细的方法,可以创建一个自定义标识和访问管理角色或一组角色(这些角色共同授予每个服务所需的最小读取-列出-描述操作权限)

  • 计算引擎(用于 VM 实例、区域、实例模板、实例组管理器)
    • compute.instances.list
    • compute.regions.list
    • compute.machineTypes.list
    • compute.instanceTemplates.get
    • compute.instanceGroupManagers.get
    • compute.instanceGroups.get
  • Cloud SQL
    • cloudsql.instances.list
  • Google Kubernetes 引擎
    • container.clusters.list
    • container.clusters.get(描述群集时需要)
    • container.nodePools.list
    • container.nodePools.get
  • 云存储
    • storage.buckets.list

该脚本不会创建或修改任何资源,因此它不需要“更新”或“删除”权限,仅需要“列出”、“获取”或“描述”类型权限。

汇总

  • 在项目级别使用“角色/查看者”是授予足够权限以使此脚本成功的最快速且最直接的方法
  • 如果需要最严格的最小特权方法,请创建或组合自定义角色,这些角色仅包括计算引擎、云 SQL、GKE 和云存储的相关“列出、描述和获取”操作权限。

使用这些权限,脚本可以实现以下功能:

  • 身份验证gcloud auth login)。
  • 列出 VM 实例、计算机类型、实例组管理器和类似资源。
  • 列出云 SQL 实例
  • 列出和描述 GKE 群集和节点池
  • 列出 GCS 存储桶

此读取级访问权限允许枚举资源计数和收集元数据,而无需修改或创建任何资源。

分配加入的资产

  1. 从已加入 Defender for Cloud 的 Azure 环境列表中选择要包含在成本计算中的环境。

    注意

    计算器可发现你拥有权限的资源。

  2. 选择计划。 计算器根据所选内容和任何现有折扣估算成本。

如何分配加入的资产的屏幕截图。

分配自定义资产

  1. 选择自定义环境的名称。
  2. 指定计划以及每个计划的计费资产数。
  3. 选择要包含在成本计算中的资产类型。
  4. 计算器根据输入和任何现有折扣估算成本。

注意

计算器不考虑 Defender for Cloud 的预留计划。

如何添加自定义环境的屏幕截图。

调整报表

生成报表后,可以调整计划以及计费资产数:

  1. 通过选择“编辑”(铅笔)图标,选择要修改的环境
  2. 随即显示一个配置页,在该页面可以调整计划、计费资产数和每月平均小时数。
  3. 选择“重新计算”以更新成本估算。

导出报表

获得满意的报表后,可以将其导出为 CSV 文件:

  1. 选择右侧“摘要”面板底部的“导出到 CSV”。
  2. 成本信息下载为一个 CSV 文件。

常见问题

什么是成本计算器?

成本计算器是一种工具,可简化安全保护需求的成本估算。 定义所需计划和环境的范围时,计算器提供潜在费用的详细明细,包括任何适用的折扣。

成本计算器的工作原理是什么?

首先选择要启用的环境和计划。 计算器随即会执行发现过程,自动填充每个环境中每个计划的计费单位数。 你也可以手动调整单位数量和折扣级别。

什么是发现过程?

发现过程会生成所选环境的报表,包括各种 Defender for Cloud 计划的计费资产清单。 此过程依赖于发现时的用户权限和环境状态。 对于大型环境,此过程可能需要大约 30-60 分钟,因为也会对动态资产进行采样。

是否需要授予成本计算器任何特殊权限以执行发现过程?

成本计算器使用现有权限运行脚本并自动执行发现。 该工具仅收集必要的数据,而无需更多访问权限。 若要查看用户运行脚本所需的权限,请参阅脚本所需的权限一节。

估算是否准确预测了我的成本?

计算器根据脚本运行时可用的信息提供成本估算值。 各种因素都可能会影响最终成本,因此应将其视为近似计算。

什么是计费单位?

计划的成本取决于其保护的单位数。 每个计划针对不同的单位类型收费,可在 Microsoft Defender for Cloud Environment 设置页上查看这些费用。

是否可以手动调整估算?

是,成本计算器支持自动数据收集和手动调整。 可以修改单位数量和折扣级别,以更好地反映特定需求,并了解这些更改如何影响总体成本。

计算器是否支持多个云提供商?

是,它提供多云支持,确保无论云提供商如何,你都能获得准确的成本估算。

如何共享成本估算?

生成成本估算后,可以轻松导出并共享估算结果进行预算规划和审批。 此功能确保所有利益干系人都有权访问必要的信息。

如果我有疑问,可以在哪里获取帮助?

我们的支持团队随时准备帮助你解决你可能提出的任何问题或疑虑。 请随时联系我们寻求帮助。

如何试用成本计算器?

试用新的成本计算器,了解体验其优势。 访问该工具,并开始定义你的保护需求范围。 若要使用 Defender for Cloud 成本计算器,请转到“Microsoft Defender for Cloud Environment 设置”,然后选择“成本计算器”按钮