你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Microsoft Defender for Cloud 成本计算器是一个有用的工具,用于估算与云安全需求相关的潜在成本。 它允许你配置不同的计划和环境,并提供详细的成本明细,包括适用的折扣。
访问成本计算器
若要开始使用 Defender for Cloud 成本计算器,请导航到 Microsoft Defender for Cloud 的“环境设置”部分。 选择位于界面上部的“成本计算器”按钮。
配置 Defender for Cloud 计划和环境
在计算器的第一页上,选择“添加资产”按钮,开始向成本计算添加资产。 你有三种方法可添加资产:
- 使用脚本添加资产:下载并执行脚本以自动添加现有资产。
- 从加入的环境添加资产:从已加入到 Defender for Cloud 的环境添加资产。
- 添加自定义资产:在不使用自动化的情况下手动添加资产。
注意
不考虑适用于 Defender for Cloud 的预留计划 (P3)。
使用脚本添加资产
选择环境类型(Azure、AWS 或 GCP),并将脚本复制到新的 *.ps1 文件。
注意
该脚本仅收集运行它的用户有权访问的信息。
使用特权用户帐户在 PowerShell 7.X 环境中运行该脚本。 该脚本收集有关计费资产的信息并创建一个 CSV 文件。 它分两个步骤收集信息。 首先,它收集通常保持不变的当前计费资产数。 其次,它收集有关计费资产的信息,这些信息在当月可能会发生很大变化。 对于这些资产,它检查过去 30 天内的使用量以评估成本。 可以在第一步后停止脚本,这需要几秒钟时间。 或者,可以继续收集动态资产过去 30 天的使用量,这对于大型帐户可能需要更长的时间。
将此 CSV 文件上传到下载脚本的向导中。
选择所需的 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 标识(用户或角色)成功运行此脚本所需的权限的概述。 该脚本枚举资源(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 资源中工作的最简单方法。
密钥服务和所需权限:
如果需要一个使用自定义 IAM 策略的更精细的方法,以下是你必须允许的服务和权限:
- 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)
此外,如果需要列出脚本中未显示的其他资源,或者计划扩展脚本的功能,请确保根据需要授予相应的“描述*”、“列出*”和“获取*”操作。
汇总:
- 最直接的方法是附加 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 配置集项目选择的相同项目)为你的用户或服务帐户授予“角色/查看者”角色。
“角色/查看者”角色包括对该项目内大多数 GCP 服务的只读访问权限,包括以下项必要的权限:
- 计算引擎(列出 VM 实例、实例模板、计算机类型等)。
- 云 SQL(列出 SQL 实例)。
- Kubernetes 引擎(列出群集、节点池等)。
- 云存储(列出存储桶)。
按服务划分的精细权限(如果创建自定义角色):
如果你更喜欢更精细的方法,可以创建一个自定义 IAM 角色或一组角色(这些角色共同仅授予对每个服务的所需“读取-列出-描述”操作):
- 计算引擎(用于 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 身份验证登录)。
- 列出 VM 实例、计算机类型、实例组管理器等。
- 列出云 SQL 实例。
- 列出/描述 GKE 群集和节点池。
- 列出 GCS 存储桶。
此读取级访问权限允许枚举资源计数和收集元数据,而无需修改或创建任何资源。
分配加入的资产
从已加入 Defender for Cloud 的 Azure 环境列表中选择要包含在成本计算中的环境。
注意
我们仅包含我们在加入期间收到了其权限的资源。
选择计划。 计算器根据所选内容和任何现有折扣估算成本。
分配自定义资产
- 选择自定义环境的名称。
- 指定计划以及每个计划的计费资产数。
- 选择要包含在成本计算中的资产类型。
- 计算器根据输入和任何现有折扣估算成本。
注意
不考虑适用于 Defender for Cloud 的预留计划。
调整报表
生成报表后,可以调整计划以及计费资产数:
- 通过选择“编辑”(铅笔)图标,选择要修改的环境。
- 随即显示一个配置页,使你可以调整计划、计费资产数和每月平均小时数。
- 选择“重新计算”按钮以更新成本估算。
导出报表
对报表感到满意后,可以将其导出为 CSV 文件:
- 选择位于右侧”摘要”面板底部的“导出为 CSV”按钮。
- 成本信息下载为一个 CSV 文件。
常见问题解答
什么是成本计算器?
成本计算器是一种工具,旨在简化估算安全保护需求成本的过程。 定义所需计划和环境的范围时,计算器提供潜在费用的详细明细,包括任何适用的折扣。
成本计算器的工作原理是什么?
利用计算器,可以选择想要启用的环境和计划。 它随后会执行发现过程,自动填充每个环境中每个计划的计费单位数。 你也可以手动调整单位数量和折扣级别。
什么是发现过程?
发现过程会生成所选环境的报表,包括各种 Defender for Cloud 计划的计费资产清单。 此过程基于发现时的用户权限和环境状态。 对于大型环境,此过程可能需要大约 30-60 分钟,因为也会对动态资产进行采样。
是否需要授予成本计算器任何特殊权限以执行发现过程?
成本计算器使用用户的现有权限来运行脚本并自动执行发现,确保它收集必要的数据,而无需进一步的访问权限。 若要查看用户运行脚本所需的权限,请参阅脚本所需的权限一节。
估算是否准确预测了我的成本?
计算器根据执行脚本时可用的信息提供一个估算。 各种因素都可能会影响最终成本,因此应将其视为近似计算。
什么是计费单位?
计划的成本基于其保护的单位。 每个计划针对不同的单位类型收费,这可在“Microsoft Defender for Cloud 设置”页上找到。
是否可以手动调整估算?
是,成本计算器允许自动数据收集和手动调整。 可以修改单位数量和折扣级别,以更好地反映特定需求,并了解这些更改如何影响总体成本。
计算器是否支持多个云提供商?
是,它提供多云支持,确保无论云提供商如何,你都能获得准确的成本估算。
如何共享成本估算?
生成成本估算后,可以轻松导出并共享它进行预算规划和审批。 此功能确保所有利益干系人都有权访问必要的信息。
如果我有疑问,可以在哪里获取帮助?
我们的支持团队随时准备帮助你解决你可能提出的任何问题或疑虑。 请随时联系我们寻求帮助。
如何试用成本计算器?
我们邀请你试用新的成本计算器,亲身体验它的优势。 访问该工具,并开始定义你的保护需求范围以开始使用。 若要使用 Defender for Cloud 成本计算器,请转到“Microsoft Defender for Cloud 设置”,然后选择上半部分中的“成本计算器”按钮。