亚马逊云官方代理 亚马逊云 AWS 账号安全防护设置
别让 AWS 账号变成露天停车场——你的云上资产正在裸奔
朋友,你有没有想过:当你在 AWS 控制台点下「Launch Instance」那一刻,其实已经把自家保险柜的钥匙,随手塞进了写字楼电梯口那个没锁的快递柜?不是危言耸听——据 AWS 官方统计,超 83% 的云安全事件,源头不是黑客多厉害,而是账号本身太松垮:MFA 没开、根账号天天登录、Access Key 长期不换、IAM 用户权限大得能管整片银河系……说白了,不是云不安全,是你把云当成了免费 WiFi,连密码都懒得设。
第一步:给根账号「物理封印」——它不该有指纹,只该有封条
AWS 根账号(就是你注册邮箱+密码登录的那个)是上帝权限。它能删 S3 桶、关 RDS 实例、清空 CloudTrail 日志——还能关掉所有 MFA。所以第一件事,不是配置,是「禁用」。对,你没看错:登录一次,做完两件事就退出,永不登录。
封印操作三步走:
- 立即启用根账号 MFA:必须用硬件设备(如 YubiKey)或 Google Authenticator,短信 MFA 已被证明可被 SIM 卡劫持;
- 删除所有根账号的 Access Key:AWS 控制台右上角 →「My Security Credentials」→ 找到「Root user access keys」→ 点「Delete」,别犹豫;
- 关闭根账号的「密码登录」选项(可选但强烈建议):进 IAM →「Account Settings」→ 勾选「Disable password-based sign-in for the root user」——从此它只能靠 MFA + 邮箱重置流程复活,慢,但稳。
记住:根账号不是日常工具,是应急启动密钥。你家地下室的灭火器,难道天天拿出来浇花?
第二步:用 IAM「分身术」代替「一人全干」
别再用一个 IAM 用户干所有事了。工程师要部署 EC2,财务要看账单,运维要调 CloudWatch,客服要查支持案例——每人需求不同,权限必须像订制西装一样合身。
最小权限不是口号,是数学题:
比如给 DevOps 同学建用户,别甩一句「给他 AdminAccess」完事。正确姿势是:先写 Policy,精准到资源 ARN:{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Action":["ec2:RunInstances","ec2:TerminateInstances"],"Resource":["arn:aws:ec2:us-east-1:123456789012:instance/*","arn:aws:ec2:us-east-1:123456789012:subnet/subnet-abcdef01"]}]}
然后绑定策略,再开 MFA。顺手把「密码重置」权限也收走——防止他误点「Forgot Password」把自己锁门外。
第三步:MFA 不是装饰品,是每道门的指纹锁
AWS 支持三种 MFA:虚拟(Google Authenticator)、U2F(YubiKey)、SMS。别选 SMS。2023 年某跨境电商就被钓鱼短信骗走 200 万美金账单——攻击者伪基站劫持验证码,30 秒内完成转账。我们只认前两者。
实操贴士:
- 给每个 IAM 用户强制开启 MFA(控制台 → IAM → Users → 选人 →「Security credentials」→「Manage MFA device」);
- 用
aws configure配 CLI 时,别图省事输 Access Key。改用aws sts get-session-token拿临时凭证,有效期 1 小时,过期自动失效; - 手机丢了?提前导出 MFA 备份代码(10 个),打印后锁进抽屉——别存在 iCloud 或微信文件传输助手里。
第四步:Access Key?半年一换,像换牙刷一样自然
Access Key 是 AWS 的「长期身份证」,一旦泄露,等于交出整座云城堡的图纸。但我们常犯两个错:一是 Key 长期不用轮换,二是硬编码在 GitHub 里。
破局方案:
- 用 AWS Secrets Manager 存 Key,Lambda 函数运行时动态拉取;
- 设置 CloudWatch Events 规则,每月 1 号触发 Lambda 自动检测 Key 使用年龄,超 180 天的发 Slack 告警;
- 在 CI/CD 流水线里加一道扫描:用 TruffleHog 扫 Git 提交记录,发现 Key 立刻阻断合并并邮件通知负责人。
第五步:日志不是摆设,是 24 小时保安录像
CloudTrail 默认只记录管理事件(谁删了 S3),但你要开「数据事件」——记录谁读了敏感 S3 对象、谁执行了 Lambda 函数。虽然贵点(每百万请求 $0.1),但比起一次数据泄露的公关费,这钱花得比早餐还便宜。
关键配置:
- 创建 Trail 时勾选「Log all regions」,避免攻击者故意去 us-west-2 搞事,你却在 us-east-1 查日志;
- 日志存到专用 S3 桶(
aws-logs-account-id-central),桶策略禁止 public-read,且开启版本控制+对象锁定(Object Lock)防篡改; - 用 Athena 查询日志:比如查「过去 24 小时所有 root 登录行为」,SQL 一行搞定:
SELECT eventname, username, sourceipaddress FROM cloudtrail_logs WHERE eventname = 'ConsoleLogin' AND username = 'Root'。
第六步:组织级防御——用 AWS Organizations 把子公司管成纪律部队
如果你管着 5 个业务线、12 个开发团队,手动配 IAM 就是慢性自杀。上 Organizations,一键施政:
- 创建 OU(Organizational Unit):dev / prod / finance;
- 亚马逊云官方代理 绑 SCP(Service Control Policy):比如 prod OU 下禁止创建 EC2 实例(
ec2:RunInstances拒绝),但允许启动 Reserved Instance; - 开 Consolidated Billing:所有账号账单汇总到主账号,方便财务统一审计,还能拿更大折扣。
顺便提一句:SCP 不是 IAM 策略,它像宪法——IAM 再怎么授权,SCP 说不行,就不行。
第七步:自动化告警——让系统比你更早发现异常
别等收到 AWS Abuse 邮件才醒。配置这些告警,今晚就能睡踏实:
- CloudTrail + EventBridge:检测「CreateBucket」事件,若来自非白名单 IP 段,立刻发邮件+钉钉;
- GuardDuty:免费开启,它会分析 VPC 流量、DNS 请求、API 调用模式,发现加密货币挖矿、端口扫描自动标红;
- Config Rules:自定义规则检查「S3 桶是否启用服务器端加密」「RDS 是否开启自动备份」,不合规项实时推送到 SNS。
最后送你一句真话:安全不是功能按钮,是肌肉记忆
所有设置做完,不代表高枕无忧。真正的防护,藏在你每次新建 IAM 用户时多问一句「他真的需要这个权限吗?」;藏在你写 Terraform 时主动加 lifecycle { ignore_changes = [tags] } 防止误删;藏在你团队晨会时说「上周谁的 Access Key 过期了?举手,我请咖啡」。安全不是一次性装修,是每天擦灰、换滤网、检查烟雾报警器电池——它枯燥,但保命。现在,放下手机,打开 AWS 控制台,就从封印根账号开始吧。你的云,值得被认真对待。

