{"schema_version":"1.0","service":"Publicasta","type":"article","id":391,"slug":"leaked_aws_keys_quarantine_cloud_security_checklist_2026","title":"泄露的 AWS 密钥只要还能认证，就仍然是有效访问","excerpt":"Truffle Security 重新验证了数千个已经出现在公开资料中的 AWS 密钥。真正危险的不只是泄露本身，而是许多密钥多年后仍然可用，其中包括 root 和 AdministratorAccess。","language":"zh","default_language":"en","canonical_url":"https://publicasta.com/cybersecurity/leaked_aws_keys_quarantine_cloud_security_checklist_2026?lang=zh","image":{"url":"https://publicasta.com/storage/projects/9/pages/391/2026/08/ea74d13c-c357-428a-a970-c2bec00446cc.webp","alt":"抽象云控制台、暴露的访问密钥、隔离胶带和轮换清单"},"publisher":{"id":9,"slug":"cybersecurity","name":"Cybersecurity Without Panic","url":"https://publicasta.com/cybersecurity"},"author":{"name":"Anton R"},"published_at":"2026-08-23T17:27:45+00:00","updated_at":"2026-08-23T17:27:45+00:00","content_markdown":"泄露的云密钥不是已经结束的事件。只要它还能认证，它就是一个有效入口，直到有人轮换、删除并检查它曾经能访问什么。Truffle Security 在 2026 年 8 月的研究说明了这个问题：危险不只是 AWS credentials 被公开，而是很多组织让这些密钥在公开后继续存活多年。\n\n ![抽象云控制台、暴露的访问密钥、隔离胶带和轮换清单](https://publicasta.com/storage/projects/9/pages/391/2026/08/ea74d13c-c357-428a-a970-c2bec00446cc.webp)\n\n Truffle Security 表示，它收集了 431,875 个已验证 AWS secret findings，去重后得到 64,024 个唯一 access keys，涉及 50,654 个账户。随后研究人员重新验证了 10,616 对完整密钥，这些密钥在 2022 年 8 月到 2026 年 8 月之间公开出现过。结果是 88% 仍然可以认证。9,308 个活跃密钥中，817 个与企业相关，其中 768 个拥有完整账户控制权：526 个 root keys，242 个 IAM users 带有 AdministratorAccess。\n\n BleepingComputer、The Register、TNW 等媒体跟进报道。Corey Quinn 在 The Register 中把重点放在 AWSCompromisedKeyQuarantineV3。AWS 官方说明中，这项托管策略用于限制部分与欺诈相关的损害，同时不影响现有资源。关键问题在于：quarantine 不是 remediation。它能减少某些明显滥用，但不能代表账户已经安全。\n\n 这正适合“没有恐慌的网络安全”角度。答案并不神秘：root access keys 几乎不应该存在；长期 IAM access keys 必须有负责人、寿命和轮换计划；进入 Git history、Docker image、CI log、notebook 或 dataset 的 secret 应被视为永久公开；quarantine policy 是 incident response 的开始，不是结束。\n\n ## 研究发现了什么\n\n 431,875 这个大数字包含许多重复项，例如 forks、mirrors、logs、images 和 datasets。更重要的是去重后的 64,024 个唯一密钥，以及 2026 年 8 月 10 日重新验证的 10,616 对完整密钥。其中 9,308 个仍然有效。\n\n 企业相关部分规模较小，但风险更高。817 个活跃密钥与企业相关，768 个有完整管理员控制权。130 个 live root keys 位于 organization management accounts。这样的密钥不是普通开发者忘记删除的测试凭据，而可能是整个云组织的总钥匙。\n\n 密钥年龄也很重要。Truffle Security 报告称，仍然有效的泄露密钥年龄中位数为 1,831 天。也就是说，很多 credentials 公开多年仍然有效。只有 13.7% 的情况有更新密钥与泄露密钥并存，这不像完成了轮换，更像是旧访问被继续使用。\n\n Hugging Face 在研究中是公开 datasets 中暴露密钥的重要来源。这不应被写成新的 Hugging Face breach。更准确的说法是：ML datasets、notebooks、model repositories 和 training corpora 继承了软件仓库的老问题，公开 artefacts 里有时会带着 credentials。\n\n ## 为什么 root key 更危险\n\n IAM key 可能很危险。Root access key 更危险。Root user 代表 AWS account 本身。AWS 文档建议保护 root credentials，避免日常使用 root，并优先使用 IAM Identity Center、roles 和 temporary credentials。\n\n 区别在于范围。普通 IAM identity 可以通过 permissions、conditions、boundaries 和 organization policies 限制。Root 位于许多控制之上。root key 泄露涉及 billing、account settings、recovery paths，有时还涉及 organization management account。\n\n Root keys 也会活得比负责人更久。工程师离职，承包商离开，个人账户变成公司账户，老自动化继续使用 2021 年能跑的 key。没人敢碰，因为怕生产系统中断。但这正是风险：没人负责的 credential 仍然能被攻击者使用。\n\n 成熟的云安全程序应该随时回答：是否存在 root access keys？谁批准？何时删除？如果答案是不知道，就没有真正控制。\n\n ## 删除一行代码不够\n\n secret scanning 的基本规则仍然常被忽视：credential 一旦进入公开 artefact，就应假设已被复制。从最新 Git commit 删除它，不会清理 Git history。关闭仓库，不会删除 forks、mirrors、package caches、Docker layers、CI logs、notebooks、search indexes 或 datasets。\n\n 因此，泄露的 AWS key 应像公开密码一样处理：rotate or delete，调查使用情况，确认依赖它的 workloads，检查活动记录。若是 root 或 AdministratorAccess，还需要 CloudTrail、billing、secret inventory，以及 persistence or privilege escalation 检查。\n\n 开发者常以为“我删掉了那一行”。正确结论是：“那一行暴露了一个必须替换的 credential”。这是清理文件和关闭访问之间的区别。\n\n Docker images 和 ML datasets 让问题更复杂。密钥可能留在旧 image layer、notebook output、debug log、benchmark corpus 或 ZIP 中。现代 secret management 不能只扫描主代码仓库。\n\n ## AWS quarantine 代表什么\n\n AWSCompromisedKeyQuarantineV3 是 AWS managed policy。官方文档称，它用于 compromised or publicly exposed IAM credentials，拒绝某些操作，以限制 fraud-related damage，同时不影响 existing resources。\n\n 最后这句话很关键。它是 harm reduction，不是完整修复。quarantined key 是 incident signal，不是安全证书。如果 policy 设计目标是不破坏 existing resources，那么某些现有路径可能继续工作。\n\n Corey Quinn 批评的是 residual risk，例如 database operations、systems-management sessions、AssumeRole、audit-log disruption、messaging abuse、secret reads、backups 和 infrastructure changes。防守方不需要攻击步骤，也能理解结论：quarantine is a temporary guardrail, not incident closure。\n\n 这里确实有取舍。AWS 若自动关闭每个公开 key，可能打断客户生产。若继续允许认证，则避免 outage 但保留 exposure。因此组织必须有自己的快速轮换 playbook。\n\n ## 今天该检查什么\n\n 先检查 root。每个 AWS account 都要确认是否存在 root access keys。如果存在，确认 business reason、owner、last used 和 removal date。多数组织的目标状态应是 no root access keys。root user 应启用强 MFA，只用于极少数真正需要 root 的任务。\n\n 盘点 IAM access keys。按 age、last-used date、owner、workload 和 permission level 排序。AdministratorAccess、wildcard permissions、no owner、no recent use 或 no rotation date 都是高优先级。\n\n 查找 AWSCompromisedKeyQuarantine policy attachments。如果 AWS 加了 quarantine，把它当成 incident signal。找到 credential，轮换，删除旧 key，检查 CloudTrail、billing、budget anomalies 和 role assumption paths。\n\n 扫描范围要超过代码。包括 Git history、forks、public registries、container images、build logs、CI variables、notebooks、support bundles、public datasets 和 model repositories。Truffle Security 的研究提醒我们，secrets 越来越常存在于 data and ML artifacts。\n\n 尽量替换 static credentials。CI/CD 应使用 OIDC federation 和 short-lived role assumption，而不是 long-lived AWS keys in pipeline variables。人类用户使用 IAM Identity Center 或 federated access。workloads 使用 scoped roles。legacy static keys 应有 owner、expiration 和 monitoring。\n\n ## 如何不打断生产地轮换\n\n 很多泄露 key 存活多年，是因为团队害怕 outage。这种担心合理：直接删除未知 key 可能打断 build system、backup job、data pipeline 或老服务。但答案不是永远保留，而是 evidence-based rotation。\n\n 先识别 principal 和 last-used services。CloudTrail、IAM last-accessed data、application logs 和 cost anomalies 能帮助定位用途。然后找到 owner，创建权限更小的 replacement path，带监控部署，最后删除旧 key。若不能立刻删除，必须有 time-boxed exception、expiry date 和 named owner。\n\n 对于 root 或 AdministratorAccess，应假设可能已经被他人使用。检查 recent API activity、secret access、role assumptions、security-group changes、bucket policies、backup operations、IAM changes 和 unusual spend。启用 budget alerts 和 cost anomaly detection。\n\n 目标是在紧急情况前练习轮换。知道 owner 和替换模式的团队，可以在数小时内响应。无法识别 owner 的团队，会和一个 compromised key 周旋数周。\n\n ## 冷静结论\n\n 这项研究不意味着每个 AWS account 都已被攻破，也不意味着 AWS quarantine 没用，更不意味着应该随机删除 key。恐慌会打断生产；否认会制造 breach。\n\n 合适的反应是：把所有公开 credential 视为 compromised；删除 root keys；用 roles and federation 替代 long-lived IAM keys；扫描真实 artefacts；对 quarantine 做 incident response；练习 rotation；保持 billing alarms。\n\n 最不舒服的部分是：cloud access 常常是静默失效。key 泄露，scanner 报警，provider 限制部分动作，有人删除一行，大家继续工作。但 credential 仍然能认证。要修复的是 ownership、inventory、short-lived credentials 和 operational discipline。","available_translations":[{"language":"ar","title":"مفتاح AWS المسرّب يبقى وصولاً فعلياً حتى يُدار ويُحذف","html_url":"https://publicasta.com/cybersecurity/leaked_aws_keys_quarantine_cloud_security_checklist_2026?lang=ar","markdown_url":"https://publicasta.com/cybersecurity/leaked_aws_keys_quarantine_cloud_security_checklist_2026.md?lang=ar","json_url":"https://publicasta.com/cybersecurity/leaked_aws_keys_quarantine_cloud_security_checklist_2026.json?lang=ar","api_url":"https://publicasta.com/api/public/v1/channels/cybersecurity/articles/leaked_aws_keys_quarantine_cloud_security_checklist_2026?lang=ar"},{"language":"de","title":"Ein geleakter AWS-Schlüssel bleibt Zugriff, bis er rotiert und gelöscht ist","html_url":"https://publicasta.com/cybersecurity/leaked_aws_keys_quarantine_cloud_security_checklist_2026?lang=de","markdown_url":"https://publicasta.com/cybersecurity/leaked_aws_keys_quarantine_cloud_security_checklist_2026.md?lang=de","json_url":"https://publicasta.com/cybersecurity/leaked_aws_keys_quarantine_cloud_security_checklist_2026.json?lang=de","api_url":"https://publicasta.com/api/public/v1/channels/cybersecurity/articles/leaked_aws_keys_quarantine_cloud_security_checklist_2026?lang=de"},{"language":"en","title":"Leaked AWS keys are still working because rotation is the missing control","html_url":"https://publicasta.com/cybersecurity/leaked_aws_keys_quarantine_cloud_security_checklist_2026?lang=en","markdown_url":"https://publicasta.com/cybersecurity/leaked_aws_keys_quarantine_cloud_security_checklist_2026.md?lang=en","json_url":"https://publicasta.com/cybersecurity/leaked_aws_keys_quarantine_cloud_security_checklist_2026.json?lang=en","api_url":"https://publicasta.com/api/public/v1/channels/cybersecurity/articles/leaked_aws_keys_quarantine_cloud_security_checklist_2026?lang=en"},{"language":"es","title":"Una clave AWS filtrada sigue siendo acceso hasta que se rota y se borra","html_url":"https://publicasta.com/cybersecurity/leaked_aws_keys_quarantine_cloud_security_checklist_2026?lang=es","markdown_url":"https://publicasta.com/cybersecurity/leaked_aws_keys_quarantine_cloud_security_checklist_2026.md?lang=es","json_url":"https://publicasta.com/cybersecurity/leaked_aws_keys_quarantine_cloud_security_checklist_2026.json?lang=es","api_url":"https://publicasta.com/api/public/v1/channels/cybersecurity/articles/leaked_aws_keys_quarantine_cloud_security_checklist_2026?lang=es"},{"language":"fr","title":"Une clé AWS exposée reste un accès tant qu’elle n’est pas supprimée","html_url":"https://publicasta.com/cybersecurity/leaked_aws_keys_quarantine_cloud_security_checklist_2026?lang=fr","markdown_url":"https://publicasta.com/cybersecurity/leaked_aws_keys_quarantine_cloud_security_checklist_2026.md?lang=fr","json_url":"https://publicasta.com/cybersecurity/leaked_aws_keys_quarantine_cloud_security_checklist_2026.json?lang=fr","api_url":"https://publicasta.com/api/public/v1/channels/cybersecurity/articles/leaked_aws_keys_quarantine_cloud_security_checklist_2026?lang=fr"},{"language":"pl","title":"Wyciekły klucz AWS to aktywny dostęp, dopóki go nie usuniesz","html_url":"https://publicasta.com/cybersecurity/leaked_aws_keys_quarantine_cloud_security_checklist_2026?lang=pl","markdown_url":"https://publicasta.com/cybersecurity/leaked_aws_keys_quarantine_cloud_security_checklist_2026.md?lang=pl","json_url":"https://publicasta.com/cybersecurity/leaked_aws_keys_quarantine_cloud_security_checklist_2026.json?lang=pl","api_url":"https://publicasta.com/api/public/v1/channels/cybersecurity/articles/leaked_aws_keys_quarantine_cloud_security_checklist_2026?lang=pl"},{"language":"ru","title":"Утёкший AWS-ключ — это действующий доступ, пока его не удалили","html_url":"https://publicasta.com/cybersecurity/leaked_aws_keys_quarantine_cloud_security_checklist_2026?lang=ru","markdown_url":"https://publicasta.com/cybersecurity/leaked_aws_keys_quarantine_cloud_security_checklist_2026.md?lang=ru","json_url":"https://publicasta.com/cybersecurity/leaked_aws_keys_quarantine_cloud_security_checklist_2026.json?lang=ru","api_url":"https://publicasta.com/api/public/v1/channels/cybersecurity/articles/leaked_aws_keys_quarantine_cloud_security_checklist_2026?lang=ru"},{"language":"zh","title":"泄露的 AWS 密钥只要还能认证，就仍然是有效访问","html_url":"https://publicasta.com/cybersecurity/leaked_aws_keys_quarantine_cloud_security_checklist_2026?lang=zh","markdown_url":"https://publicasta.com/cybersecurity/leaked_aws_keys_quarantine_cloud_security_checklist_2026.md?lang=zh","json_url":"https://publicasta.com/cybersecurity/leaked_aws_keys_quarantine_cloud_security_checklist_2026.json?lang=zh","api_url":"https://publicasta.com/api/public/v1/channels/cybersecurity/articles/leaked_aws_keys_quarantine_cloud_security_checklist_2026?lang=zh"}],"_links":{"self":"https://publicasta.com/cybersecurity/leaked_aws_keys_quarantine_cloud_security_checklist_2026.json?lang=zh","api":"https://publicasta.com/api/public/v1/channels/cybersecurity/articles/leaked_aws_keys_quarantine_cloud_security_checklist_2026?lang=zh","html":"https://publicasta.com/cybersecurity/leaked_aws_keys_quarantine_cloud_security_checklist_2026?lang=zh","canonical":"https://publicasta.com/cybersecurity/leaked_aws_keys_quarantine_cloud_security_checklist_2026?lang=zh","markdown":"https://publicasta.com/cybersecurity/leaked_aws_keys_quarantine_cloud_security_checklist_2026.md?lang=zh","json":"https://publicasta.com/cybersecurity/leaked_aws_keys_quarantine_cloud_security_checklist_2026.json?lang=zh","channel":"https://publicasta.com/api/public/v1/channels/cybersecurity","channel_articles":"https://publicasta.com/api/public/v1/channels/cybersecurity/articles","search":"https://publicasta.com/api/public/v1/search","documentation":"https://publicasta.com/api-docs#reading-publicasta","openapi":"https://publicasta.com/api-docs/openapi.json","llms":"https://publicasta.com/llms.txt"}}