AWS Macie 敏感数据发现实战:S3 隐私数据自动扫描与 30 天免费试用全解(2026 单价与避坑)

📅 · ChengziCloud - 一站式云端服务

Meta Description: AWS Macie 实战教程:S3 敏感数据(PII/凭证/金融信息/PHI)自动发现怎么开通、定向发现作业 CLI 怎么写、2026 真实单价与 30 天免费试用额度、组织级多账号部署、7 大坑与省钱 5 招,附支持格式与配额全表。

> 关键词:AWS Macie、S3 敏感数据、数据安全、PII 扫描、AWS 免费套餐、AWS 单价对比、数据合规

前言:先想清楚你要的是"清单"还是"内容",再开通 Macie

Amazon Macie 只干一件事:看你 S3 里到底有没有敏感数据,以及这些桶的权限设置是不是在漏数据。它不做威胁检测、不做流量分析、不扫数据库表——定位很窄,但在"数据合规"这条线上,它是 AWS 官方唯一的原生工具。

> 决策口诀:桶多先开清单与安全评估(按桶收费,极便宜);不知道敏感数据在哪就用自动发现(按 GB 抽样);只关心某几个前缀或某几种数据类型就用定向作业(按 GB 全量,最贵但也最准)。

本文只讲一件事:怎么用 Macie 把 S3 里的敏感数据找出来,以及怎么不被它的按 GB 计费烧掉预算。和本站已有文章的边界如下:

| 既有文章 | 它解决的问题 | 与本文的关系 | |---|---|---| | S3 + CloudFront 静态站托管 | 对象存储与全球加速 | 本文的被检测对象,不重复 | | IAM 权限实战 | 谁有权限访问资源 | 本文的配套项:Macie 需要最小权限才能扫 | | KMS 密钥管理实战 | 静态加密与密钥轮换 | 加密解决"读不到",Macie 解决"到底有没有",互补 | | Textract 文档识别 | 图片/PDF 转结构化文本 | 图片里的敏感信息必须先过 Textract,否则 Macie 看不到 | | Trusted Advisor + Compute Optimizer 成本体检 | 全站浪费发现 | 本文只做 Macie 单服务成本测算,不做全站体检 |

一、Macie 提供三块能力,边界比能力更重要

1.1 三块能力分别解决什么问题

| 能力 | 它做什么 | 计费口径 | 触发方式 | |---|---|---|---| | S3 桶清单 + 安全与访问控制评估 | 列出所有桶的名称、大小、对象数、加密状态、访问控制、区域;对权限配置问题生成 policy 类发现 | $0.10/桶/月 + $0.01/每 10 万对象 | 启用后持续运行,最多 1 万个桶 | | 自动敏感数据发现(ASDD) | 按桶名、文件类型、前缀聚类后抽样扫描,持续给出"哪个桶大概有多少敏感数据" | $1/GB(每月 1 GB 免费额度) | 启用后每日持续 | | 定向敏感数据发现作业 | 你指定桶/前缀,一次性或按计划全量扫描,产出带定位的逐条发现 | $1/GB | 手动提交或用 CLI/API 编排 |

三块的定位差异一句话说完:清单便宜到可以无脑开,自动发现用来"找方向",定向作业用来"出结论"。绝大多数团队的预算失控,都是把第三块当第一块用——上来就对几个 TB 的桶跑全量定向作业。

1.2 三条硬边界:不知道自己撞了哪条,就会得出"Macie 没发现问题 = 我很安全"的错误结论

1. 只分析 S3 通用桶(general purpose bucket)。 S3 目录桶(directory bucket)里的对象完全不在分析范围内。 2. 不分析图片、音频、视频。 扫描件、身份证照片、聊天截图这类内容,Macie 直接跳过——这是它最容易被误解的一点。 3. 只分析受支持的存储类与文件格式。 归档类存储和二进制格式会被当作"不可分类对象"跳过,作业不会报错,只会静默略过。

第 2 条和第 3 条合起来构成一个真实风险场景:你把合同扫描件放在 S3,以为 Macie 会兜底,实际它什么都没看。正确做法是先用 Textract 之类的 OCR 把图片/扫描件转成文本再落回 S3,然后才轮到 Macie 出手。

1.3 支持与不支持的存储类、文件格式

存储类方面,官方文档明确列出支持的只有以下六类:

| 存储类 | 是否被 Macie 分析 | |---|---| | S3 Standard | ✅ 支持 | | S3 Standard-IA(标准不频繁访问) | ✅ 支持 | | S3 One Zone-IA(单区不频繁访问) | ✅ 支持 | | S3 Intelligent-Tiering | ✅ 支持 | | S3 Glacier Instant Retrieval | ✅ 支持 | | Reduced Redundancy(RRS) | ✅ 支持 | | S3 Glacier Deep Archive | ❌ 不分析 | | S3 Express One Zone | ❌ 不分析 | | S3 目录桶(directory bucket)中的对象 | ❌ 不分析 |

文件格式方面,Macie 会把文件解开后再逐层分析(压缩包最多解 100 万个文件、最多 10 层嵌套),支持的类别如下:

| 类别 | 具体格式 | 单文件大小上限 | |---|---|---| | 大数据 | Apache Avro、Apache Parquet | 8 GB | | 压缩/归档 | .gz / .gzip、.tar、.zip | .gz 8 GB、.zip 8 GB、.tar 20 GB | | 文档 | .pdf、.doc/.docx、.xls/.xlsx | PDF 1,024 MB、Word/Excel 512 MB | | 邮件 | .eml(符合 RFC 2822) | 按非二进制文本口径 | | 文本 | .csv、.tsv、.txt、.json、.jsonl、.xml、.html、.yaml/.yml | 非二进制文本 20 GB |

两个容易被忽略的数字:JSON/JSONL 的结构化数据嵌套最多 256 层,压缩包解压后的总体积上限是 10 GB——超过就停止分析,只为已处理部分产出结果。所以"把整个数据仓库打包成一个 zip 丢进 S3 让 Macie 扫"这条路,通常在解压阶段就被截断了,正确姿势是先导出成 Parquet 分片。

1.4 Macie 到底能识别什么数据

Macie 用两类标识符来判定"这是敏感数据":

- 托管数据标识符(managed data identifiers):官方预置的规则集,覆盖四大类——凭证类(如私钥、AWS Secret Access Key)、金融信息(如信用卡号、银行账号)、个人健康信息 PHI(如医疗保险号、医疗识别号)、个人身份信息 PII(如驾驶证号、护照号)。每个标识符都有唯一的 ID,且按国家/地区分别提供——也就是说,"某个国家的身份证号"和"另一个国家的身份证号"是两条不同的标识符。 - 自定义数据标识符(custom data identifiers):用正则 + 关键词 + 忽略词自己定义,比如公司内部的员工工号格式、订单号格式。配额是每账号每区域 10,000 个,但单个作业最多只能带 30 个。这是实战中最容易被撞到的一堵墙:标识符库可以很大,作业能用的就那么几十个,因此要按业务分组建多个作业,而不是指望一个"万能作业"。

另外还有一个经常被浪费的机制:允许清单(allow lists)。当你的测试数据、示例数据里天然存在真格式的假数据(比如文档里的示例卡号 4111-1111-1111-1111),它们会持续污染发现结果,让安全团队陷入"狼来了"。允许清单就是用来豁免这些固定字符串或正则的,每账号最多 10 个清单(指定预定义文本的 1–5 个 + 指定正则的 1–5 个,预定义文本清单最多 10 万条、且清单存储不超过 35 MB)。

一句话记住取舍:托管标识符省事但覆盖范围按国家/地区写死;自定义标识符灵活但要在 30 个/作业的上限内做减法。

二、从 0 到第一份发现结果:控制台六步 + CLI 全流程

2.1 控制台六步(第一次开通建议走这里,因为有引导)

1. 进入 Macie 控制台,选择目标区域。Macie 是区域级服务,在每个区域要单独启用、单独计费——不存在"开一次扫全球"。 2. 首次进入会看到 30 天免费试用提示,点击启用(Get startedEnable Macie)。 3. 在 S3 bucket inventory 页确认桶清单已经建起来:桶名、大小、对象数、公开访问状态一览。这一步不花钱的错觉最危险——清单本身按桶和对象数计费,只是很便宜。 4. 打开 Automated discovery,确认自动敏感数据发现的状态。默认会对符合条件的对象抽样分析,这一步开始按 GB 计费。 5. 在 Jobs 页创建你的第一个定向作业(建议只选一个非生产桶、只选一个前缀、抽样比例先设 10%–20%)。 6. 在 Findings 页查看结果,并按"敏感数据类型 / 桶 / 严重度"分组浏览。发现结果也可以配置发布到 EventBridge,做自动化工单。

> 生产账号的第一条纪律:先在测试桶验证作业参数,再碰生产桶。一次全量误扫 5 TB,账单就是 5,000 美元级别。

2.2 CLI 全流程(可直接复制)

先确认环境与权限。Macie 通过服务关联角色(AWSServiceRoleForAmazonMacie)读取 S3 对象,所以执行 CLI 的调用者需要有 macie2:* 权限,而被扫的桶不需要对任何人开放:

`bash // 开启 Macie,并设置发现结果的发布频率(可选 FIFTEEN_MINUTES / ONE_HOUR / SIX_HOURS) aws macie2 enable-macie --finding-publishing-frequency ONE_HOUR

// 查看当前状态:启用状态、发布频率、服务关联角色、创建时间 aws macie2 get-macie-session

// 桶清单总览:先看清有多少桶、多少对象,再决定扫多少 aws macie2 get-bucket-statistics --account-id 123456789012

// 本月用量与费用口径(桶数、对象数、已检查字节数分别计费) aws macie2 get-usage-totals

// 自动敏感数据发现的当前配置 aws macie2 get-automated-discovery-configuration

// 需要开启/关闭时(--status 为 ENABLED 或 DISABLED) aws macie2 update-automated-discovery-configuration --status ENABLED `

桶级别的明细查询建议用骨架生成参数模板,避免手抄参数出错:

`bash // 生成 describe-buckets 的完整参数骨架(支持按桶名、标签、共享状态等条件过滤) aws macie2 describe-buckets --generate-cli-skeleton input > buckets.json

// 按需要改好 buckets.json 后执行 aws macie2 describe-buckets --cli-input-json file://buckets.json `

2.3 写一份金额可控的定向发现作业

作业定义用 JSON 文件传参最稳妥(create-classification-job 的三个必填项是 --job-type--name--s3-job-definition):

`json { "jobType": "ONE_TIME", "name": "audit-pii-uploads-prefix", "s3JobDefinition": { "bucketDefinitions": [ { "accountId": "123456789012", "buckets": ["my-app-data-bucket"] } ], "scoping": { "includes": { "and": [ { "simpleScopeTerm": { "comparator": "STARTS_WITH", "key": "OBJECT_KEY", "values": ["uploads/2026/"] } } ] } } }, "managedDataIdentifierSelector": "ALL", "samplingPercentage": 20, "initialRun": true } `

提交并跟踪:

`bash // 提交作业(--job-type 可选 ONE_TIME 或 SCHEDULED,按计划跑还要带 --schedule-frequency) aws macie2 create-classification-job --cli-input-json file://job.json

// 列出作业与查看单个作业详情 aws macie2 list-classification-jobs --output table aws macie2 describe-classification-job --job-id <JOB_ID> `

scoping 段是控制成本的关键:simpleScopeTerm 支持按 OBJECT_KEY(前缀)、OBJECT_EXTENSION(扩展名)、OBJECT_SIZE(大小)、OBJECT_LAST_MODIFIED_DATE(修改时间)四类条件过滤,tagScopeTerm 则按对象标签过滤;比较符支持 EQ / GT / GTE / LT / LTE / NE / CONTAINS / STARTS_WITH把"只扫 90 天内变更过的 .csv 和 .json,排除 .zip"写成条件,账单往往能直接砍掉一半以上。

读取结果分两步——先拿 ID,再拿详情:

`bash // 第一步:拿发现结果的 ID 列表(分页用 --max-items / --starting-token 控制) aws macie2 list-findings --max-items 50

// 第二步:按 ID 取详情,只挑你关心的字段 aws macie2 get-findings --finding-ids <FINDING_ID_1> <FINDING_ID_2>

aws macie2 get-findings --finding-ids <FINDING_ID> \ --query 'findings[0].{category:category,severity:severity.description,bucket:resourcesAffected.s3Bucket.name,key:resourcesAffected.s3Object.key}' `

2.4 把发现结果变成工单:不要靠人盯控制台

update-macie-session 里把发布频率设成 FIFTEEN_MINUTES,发现结果就会持续发布到 EventBridge。典型编排是:

`text Macie 发现结果 → EventBridge 规则(按 severity / 类型过滤) ├─ → Lambda:写工单系统 / 打标签 / 通知责任人 ├─ → Lambda:对严重级别的桶自动收紧 Bucket Policy └─ → Security Hub:聚合成合规评分 `

这里有一个必须注意的方向性问题:Macie 的 policy 类发现是针对"桶权限配置"的,数据类发现是针对"对象内容"的。前者的修复动作是改策略(可以自动化),后者的修复动作通常是"挪走数据 / 删除 / 加密",自动闭环风险很大,建议只做通知与工单,不要自动删除对象

三、组织级多账号部署:一次开通,全组织可见

单账号试点跑通后,多账号的正确姿势是委派管理员(Macie administrator,旧称 master account),而不是在几十个账号里各开一遍:

`bash // 在管理账号里,把某个成员账号指定为 Macie 委派管理员 aws macie2 enable-organization-admin-account --admin-account-id 111122223333

// 在委派管理员账号里,打开"新账号自动启用",避免漏开 aws macie2 update-organization-configuration --auto-enable

// 确认组织配置生效 aws macie2 describe-organization-configuration aws macie2 list-organization-admin-accounts `

成员账号的两种纳管方式要分清:通过 AWS Organizations 自动纳管(推荐,配额高)与通过邀请纳管create-invitations / accept-invitation,适合不加入组织的账号)。批量统一开自动发现,用 batch-update-automated-discovery-accounts

一个必须提醒的细节:官方文档里成员账号配额存在两处口径——服务端点与配额页写"通过 Organizations 纳管 5,000 个",用户指南的配额章节写"10,000 个",而"邀请方式"两处都是 1,000 个。做容量规划时以控制台 Service Quotas 页显示的实际值为准,别照抄网上的旧数字。

另一个组织级注意点与免费额度有关:账号一旦加入 AWS Organizations,或建立 Control Tower landing zone,免费额度会立即失效并自动转为付费计划。所以正确顺序是:先在独立账号把 30 天试用跑完、把作业参数调好,再纳管进组织——反过来做,等于白丢一个账号的试用额度。

四、价格:三行单价 + 四个官方算例

Macie 的计费只由三项构成,全部按区域独立计算:

| 计费项 | 单价(美国东部,官方原文口径) | 说明 | |---|---|---| | S3 桶清单与安全评估 | $0.10/桶/月(最多 1 万个桶) | 桶为空也收费,按天折算 | | S3 对象监控 | $0.01/每 10 万对象 | 与桶数分开计,随对象数增长 | | 自动敏感数据发现(ASDD) | $1/GB,每月含 1 GB 免费额度 | 按实际检查的字节数计费 | | 定向敏感数据发现作业 | $1/GB | 按实际检查的字节数计费,仅分析支持的格式 |

官方给出的四个算例(美国东部区域价格,改写为对照表):

| 算例 | 桶数 | 对象数 | 自动发现检查 | 定向作业检查 | 月费用 | |---|---|---|---|---|---| | 例 1 | 15 | 0 | 0 GB | — | $1.50 | | 例 2 | 15 | 1,000 万 | 150 GB | — | $151.50 | | 例 3 | 15 | 1,000 万 | 150 GB | 200 GB | $351.50 | | 例 4 | 15 | 1,000 万 | 150 GB | 500 GB | $651.50 |

例 4 最能说明问题:那个桶估算存储是 600 GB,但 Macie 只算了 500 GB,差额 100 GB 正是图片文件——官方算例用这个例子明确告诉你"图片不计费,因为压根不分析"。这也再次印证了第 1.2 节的边界:扫描件放在 S3 里,Macie 是看不见的

把单价换算成更好记的口径:

- 每 TB 数据 = 1,024 × $1 = $1,024。这就是为什么"先全量扫一遍再说"是极其昂贵的习惯。 - 桶清单部分可以忽略不计:15 个桶 + 1,000 万对象 = $1.50 + $1.00 = $2.50/月,只占上表总价的 1.6%。 - 成本杠杆全在"检查了多少 GB",而它由三件事决定:扫哪些桶、扫哪些前缀/格式/时间范围、抽样比例设多少。这三件事都在你自己手里。

4.1 两个"示意算例"(本文自算,非官方报价)

| 场景 | 计算 | 结果 | |---|---|---| | 对 2 TB 日志桶做一次全量定向扫描 | 2,048 GB × $1 | 约 $2,048 | | 只扫其中 90 天内变更的 .csv/.json 关键前缀,命中 200 GB | 200 GB × $1 | 约 $200 | | 同一桶改为 20% 抽样、只做趋势摸底 | 按被选中对象的检查字节数计费 | 成本约为全量的 1/5 量级 |

> 上表为按官方单价自行折算的示意算例,用于说明量级差异,不是报价;实际以控制台用量页与控制台结算页为准。

4.2 与替代方案的能力/成本对照

| 方案 | 能发现什么 | 成本口径 | 什么时候该选它 | |---|---|---|---| | Macie 自动发现 | S3 内 PII/凭证/金融/PHI 的存在与分布 | $1/GB + 桶清单费 | 想持续知道"敏感数据大概在哪" | | Macie 定向作业 | 指定桶/前缀的逐条定位与取证 | $1/GB,默认 5 TB/月配额 | 要出审计结论、要定位到具体对象 | | 自建(Lambda + 正则/开源分类器) | 完全取决于你写的规则 | 只有 S3 请求费与 Lambda 计算费 | 格式极其固定、数据量极大、且不想为 $1/GB 付费 | | 第三方 SaaS DLP | 通常覆盖 S3 之外的多数据源 | 多为询价制,不公开档位单价 | 需要跨云、跨端统一治理 | | S3 自身能力(加密、阻止公开访问、访问日志) | 只解决"被读到 / 被公开",不判断内容 | 存储与请求费 | 与 Macie 并用,不是替代关系 |

第三方 DLP 的价格本文不写具体数字——这类产品普遍不公开档位单价,凭旧文章的数字做预算比留空更糟,请以厂商商务报价为准。

五、30 天免费试用:怎么把它用满,以及它到底覆盖什么

Macie 自身提供一次 30 天免费试用,这是它最实在的"免费额度":

| 免费试用包含 | 免费试用不包含 | |---|---| | 30 天自动敏感数据发现,最多检查 150 GB | 定向敏感数据发现作业(一运行就按 $1/GB 计费) | | 30 天 S3 桶清单与安全/访问控制评估(含对象监控) | 超出 150 GB 的自动发现检查量 | | 每个启用 Macie 的新账号各有一份(多账号配置下也是每账号一份) | S3 请求费、以及顺带产生的其他服务费用 |

试用期内,Macie 控制台的 Usage 页会实时估算你的用量——这是唯一一个能在不产生费用的情况下把参数调准的窗口期。官方特别提示:数据量超过 150 TB 的账号,试用期估算值可能偏低,需要联系 AWS 支持。

需要和另一套"免费计划"区分开:自 2025 年 7 月 15 日起,AWS 新账号的免费计划是最长 6 个月 + 最高 $200 额度(注册赠 $100 + 完成入门操作最多再 $100),且额度必须在 12 个月内用完;Macie 并不在 Always Free 服务清单里,它的"免费"就是上面这 30 天。两者的关系是:30 天试用结束后,如果账号还有 $200 额度未用完,可以用额度抵扣 Macie 的按量费用

5.1 五步把试用期用满(按顺序做)

1. 第 1 天:在主力区域开启 Macie,只开桶清单与安全评估,先看清单页有什么。 2. 第 2–3 天:开启自动敏感数据发现,记录 Usage 页给出的"预估月费用"。这是你未来预算的基线。 3. 第 4–7 天:在非生产桶上跑一次小范围定向作业(只选一个前缀、抽样 20%),把 JSON 定义与 scoping 条件调通——这部分要花钱,但花几十美元换来正确的作业模板,比在生产桶上试错便宜得多。 4. 第 8–25 天:用允许清单压制假阳性,把托管标识符按国家/地区筛到你真正需要的那几条(例如只关心 PII 与凭证类)。 5. 第 26–30 天:导出并留存一份基线报告(哪些桶有哪类敏感数据),再决定试用结束后是继续付费、只保留桶清单、还是直接停用。

六、省钱 5 招

1. 清单先行,扫描按需。 桶清单与安全评估只花 $0.10/桶/月,先把它开满;$1/GB 的扫描能力再按需求开。绝大多数账号真正需要的第一次扫描,只需要覆盖"对外可写 + 存用户上传"的那几个桶。 2. scoping 条件把扫描面收敛到最小。 前缀(OBJECT_KEY)、扩展名(OBJECT_EXTENSION)、大小(OBJECT_SIZE)、修改时间(OBJECT_LAST_MODIFIED_DATE)四类条件组合起来用,"只扫 90 天内的 .csv/.json、排除 .zip"这类条件往往能砍掉一半以上费用。 3. 抽样比例起步。 先用 samplingPercentage 10%–20% 做趋势摸底,确认敏感数据集中在哪些前缀后,再对那一个前缀做全量定向作业。先全量、后定位,是账单失控的最常见写法。 4. 把 5 TB/月的默认配额当刹车阀,不要急着提额。 定向作业达到月配额后会被暂停,并同时通过 Macie 控制台与 AWS Personal Health Dashboard 通知你,下个自然月自动恢复。这个"上限即预算上限"的机制是官方故意设计的,提额前先问自己是否真的需要在一个月内扫几个 TB。 5. 用允许清单压掉假阳性,避免为了"把告警清零"而反复重扫。 测试数据、示例数据、文档中的假卡号会持续产出发现结果;把它们写进允许清单(每账号最多 10 个),比每周重跑一次全量作业便宜得多。

另外提醒一个反向省钱点:不要为了扫归档数据而先把 Glacier Deep Archive 恢复到标准类——那是两笔费用。归档桶在设计上就不该期待被持续内容扫描,需要合规检查时走"导出→转存→扫描→清理"的一次性流程。

七、7 大坑

1. 以为 Macie 会扫描件和身份证照片。 图片、音频、视频一律不分析。要覆盖这类内容,必须先经 Textract 等 OCR 转成文本再回写 S3。 2. 以为归档桶也在被持续监控。 Glacier Deep Archive、S3 Express One Zone、目录桶中的对象都不在分析范围,作业不会报错,只会当作"不可分类对象"静默跳过。 3. 把试用期的"零成本"当成常态。 30 天试用只覆盖自动发现与桶清单,定向作业从头到尾都收费——很多人在试用期建了作业并设成按日调度,试用一结束就收到一笔持续性账单。调度型作业务必在试用到期前复查一遍。 4. 桶数超过 1 万个后出现静默盲区。 官方口径是:超出配额后,Macie 只对最近创建或被修改的 10,000 个桶提供完整监控,其余桶的安全评估、policy 发现与完整清单数据都会缺失。用标签 + 多账号拆分来控制单账号桶数。 5. 把发现结果当成"完整清单"。 单次作业的发现数上限是 100,000 + 超出部分剩余量的 5%,每条敏感数据发现最多给 15 个定位。对超大桶要按前缀或按时间切片做多次作业,否则你看到的只是"前 10 万条"。 6. 只在一个区域开通。 Macie 是区域级服务,"我在美国东部开了 Macie"并不代表香港、新加坡、法兰克福的桶有人看。多区域要么逐区域开通,要么在组织层面用委派管理员批量纳管。 7. 把它当成实时防线。 自动发现是每天运行、桶评估也是周期性执行,发现结果还有发布频率(15 分钟 / 1 小时 / 6 小时)这一层延迟。它擅长"事后发现与合规留痕",挡不住正在发生的泄露——实时拦截要靠 S3 的阻止公开访问、Bucket Policy、WAF 与访问日志告警。

常见问题 FAQ

Q: Macie 和 GuardDuty 有什么区别?会不会功能重复? A: 不重复,看的层次完全不同。GuardDuty 看的是"行为"——谁在异常地调用 API、有没有凭据被盗用、有没有可疑的挖矿或横向移动;Macie 看的是"内容"——对象里到底有没有 PII、凭证号、卡号。同一个 S3 桶被异常账号大量读取,是 GuardDuty 的事;桶里存了 10 万条带身份证号的 CSV,是 Macie 的事。生产账号两者都要开。

Q: 能不能用它扫 RDS、DynamoDB 或者 EFS 里的数据? A: 不能,Macie 只分析 S3 通用桶。官方给的变通做法是:把数据先落到 S3 再扫——例如把 RDS/Aurora 快照导出到 S3(建议 Parquet 格式),或把 DynamoDB 表导出到 S3,然后对导出的对象建定向作业。这条路径顺带解决了另一个问题:导出文件是 Parquet 分片,刚好绕开压缩包 10 GB 解压上限。

Q: 我只想确认某个桶里有没有身份证号,怎么最省钱? A: 三步收窄——① 创建一条自定义数据标识符(正则 + 关键词,专指你要的那种号码格式);② 作业的 scoping 只选那个桶的特定前缀、排除 .zip/.pdf 之类你不需要的格式;③ samplingPercentage 先从 10% 起步看有没有命中。另外把托管标识符选择器设为 INCLUDE 并用 --managed-data-identifier-ids 只带 PII 那几条,避免把凭证、金融类也一起算进去白白扩大扫描面。

Q: Macie 支持哪些区域?中国大陆区域能用吗? A: 官方端点表列出的商业区域共 22 个,包括香港(ap-east-1)、东京、大阪、首尔、新加坡、悉尼、孟买、法兰克福、爱尔兰、伦敦、巴黎、斯德哥尔摩、米兰、开普敦、巴林、特拉维夫、圣保罗、加拿大中部以及美国四个区域。中国大陆区域(北京 / 宁夏)不在该清单内,需要在境外区域使用。注意 Macie 是区域级服务,桶在哪个区域就要在哪个区域开通。

Q: 中文数据能识别吗? A: 托管数据标识符是按国家/地区逐项提供的(例如某国的身份证号、护照号分别是独立标识符),具体覆盖范围以官方标识符清单为准。工程上的建议是:凡是官方清单没明确覆盖的号码格式,一律用自定义数据标识符(正则 + 关键词 + 忽略词)兜底,并在上线前用人造样本做一次命中验证。

Q: 一个作业最多能扫多少?有没有硬上限? A: 有几个硬边界要记住:单个定向作业最多指定 1,000 个桶(用运行时条件选桶则不受此限);自定义数据标识符每个作业最多 30 个;定向作业默认每月每账号 5 TB 分析配额,达到即暂停并在下月自动恢复(配额可提升,官方文档中"可提至 25 TB / 可提至 1,000 TB(1 PB)"两种表述并存,请以控制台 Service Quotas 的实际可调范围为准)。文件级上限见本文第 1.3 节的表格。

Q: 30 天试用到期后会自动扣费吗?不想付费怎么彻底停掉? A: 试用到期即转为按量计费,不会另行通知,也不会"自动续费"——只要你还在用(桶清单持续在跑、自动发现在跑),就会持续产生费用。彻底停止的方式是停用 Macie:aws macie2 disable-macie。停用前请先把需要留档的发现结果导出到 S3,因为停用后不会有新的发现结果产生,持续监控也随之中断。

Q: 发现结果里能直接看到敏感数据的原文吗? A: 能看到的是定位与样本,不是整份文件。每条敏感数据发现最多提供 15 个定位(位置信息),需要查看具体样本要用"取回并展示敏感数据样本"的接口,它有两个限制:每天最多 100 次请求(24 小时重置),且不同格式有大小上限(.csv 255 MB、.zip 355 MB、.json/.jsonl 25 MB、.xlsx 20 MB、.parquet 100 MB、文本 100 MB 等)。设计审核流程时要把这两个限制算进去,否则大批量复核会在配额上卡住。

Q: 只有十几个桶、几乎没有敏感数据,一个月大概多少钱? A: 官方算例 1 就是这种情形:15 个空桶、0 GB 检查量,月费用 $1.50。如果桶里有 1,000 万对象、自动发现检查 150 GB,则约 $151.50/月(官方算例 2)。也就是说,桶清单部分几乎可以忽略,钱主要花在"检查了多少 GB"上。你可以先只开清单与安全评估,用不到一美元的月成本先把可见性建立起来,再决定要不要开启扫描。

相关阅读

- AWS S3 + CloudFront 搭建全球加速静态网站 —— 本文被检测对象的基础结构 - AWS IAM 权限实战 —— 给 Macie 与自动化 Lambda 配最小权限 - AWS Textract 文档智能识别实战 —— 把图片/扫描件变成 Macie 能读的文本 - AWS KMS 密钥管理实战 —— 加密与内容检查的分工 - AWS 成本体检:Trusted Advisor + Compute Optimizer —— 把本文的单服务测算接进全站成本治理

> ⚠️ 文中价格为 2026 年 9 月采集的公开官网参考价,实际费用随区域与官方调价变动,请以 AWS 官网为准。免责声明:本文单价、配额与官方算例均取自 AWS 官方定价页与产品文档,不构成报价;除特别注明外金额单位为美元(USD)。第三方 DLP 产品未逐一核实,请以厂商官方报价为准。

> 🚀 需要 AWS 国际版账号?通过 3.chengzicloud.cloud 获取最新注册教程与专属优惠,助你轻松上云。

> 本文由 3.chengzicloud.cloud 提供,点击访问首页了解更多