返回列表

AWS企业资质代办 AWS 亚马逊云账号云端加固方案

亚马逊aws / 2026-04-21 18:39:24

别再让根账号裸奔了:AWS账号加固不是选修课,是生存必修

想象一下:你刚在AWS控制台点完‘创建EC2实例’,顺手记下根账号密码,还把它存在Mac备忘录里——恭喜,你已成功解锁《云上社死初阶教程》第一章。这不是段子,是真实发生在我同事身上的事。他第二天就收到AWS账单预警:$17,432.68,全是被挖矿脚本跑满的p3.16xlarge实例。根源?根账号密钥泄露+没开MFA+没设密码策略。

AWS账号加固,不是等红蓝对抗时才翻文档的‘事后补丁’,而是每个新账号诞生后头三小时必须干完的‘云上洗手消毒’。它不炫技,不烧钱,但能让你半夜三点不被短信炸醒,老板问‘为啥数据库被删了’时,你能淡定回一句:‘查了CloudTrail,是某实习生用root密钥调的DeleteDBInstance,我们上周已禁用该密钥并启用了SCP策略。’——这话一出口,升职加薪未必,但至少不用写检讨。

第一步:给根账号套上铅封,钥匙扔进保险柜

根账号(Root Account)不是管理员,它是AWS世界的创世神+核按钮+ATM机三位一体。AWS官方文档第7页第3行白纸黑字写着:‘Never use root credentials for daily tasks.’——翻译过来就是:‘求你了,别用!’

实操三板斧:

  1. 立即停用根账号的访问密钥aws iam delete-access-key --user-name root --access-key-id AKIA...(先用aws iam list-access-keys --user-name root查出来);
  2. 强制开启MFA:不是‘建议’,是‘否则不准进控制台’。推荐使用硬件YubiKey或Google Authenticator,别用SMS——去年有客户因SIM卡劫持丢了整个S3桶;
  3. 改掉默认邮箱密码:根账号邮箱密码≠AWS密码!务必单独设置强密码(16位+大小写数字符号),且绝不复用其他平台密码。

做完这三步,根账号就变成‘只读档案馆’——只用于创建IAM用户、重置MFA、查看账单总览。日常运维?交给IAM角色去扛。

第二步:IAM不是‘人名缩写’,是权限的精密手术刀

很多团队的IAM策略长这样:{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Action":"*","Resource":"*"}]}……这哪是策略?这是给黑客发的VIP通行证。

真正靠谱的IAM实践,得学做裁缝:量体裁衣,寸寸计较。

  • 最小权限原则落地口诀:‘先拒绝,再允许;先资源,再动作;先标签,再ARN’。比如开发人员只需部署ECS任务?那就只允许ecs:RunTask,且Resource限定在arn:aws:ecs:us-east-1:123456789012:cluster/dev-cluster,再加个Condition要求必须带Environment=dev标签;
  • 禁止‘星号通配符’滥用"Action": "s3:*"不如拆成"s3:GetObject""s3:PutObject",再用"Resource": "arn:aws:s3:::my-bucket/logs/*"精准锁定路径;
  • 用角色(Role)代替用户(User):EC2实例要访问S3?给实例配置IAM角色,而非在代码里硬编码AccessKey。Lambda函数同理——AWS会自动轮换临时凭证,比你手动三年不换密钥安全一万倍。

第三步:日志不是摆设,是你的云上行车记录仪

没开CloudTrail?等于开车不装黑匣子。等出事再查,早成灰烬。

必须开启的三大日志组合拳:

  1. CloudTrail 多区域跟踪:不止记录us-east-1,所有区域操作全捕获。目标S3桶需开启版本控制+对象锁定(Object Lock),防篡改;
  2. AWS企业资质代办 CloudWatch Logs 实时告警:配置过滤器,对eventName=ConsoleLoginerrorMessage非空的事件触发SNS通知——凌晨3点有人登录?马上微信弹窗;
  3. Config 合规快照:每2小时扫描一次EC2是否开启加密、S3桶是否公开、RDS是否启用备份。用AWS提供的AWSSecurityBestPractices规则包,一键启用,省心又专业。

小技巧:把CloudTrail日志接入Elasticsearch或OpenSearch,用Kibana画个‘异常登录热力图’,运维晨会直接展示——比Excel表格直观十倍。

第四步:网络层加固:安全组不是‘防火墙’,是门禁系统

很多人以为开了WAF就高枕无忧?错。WAF拦的是HTTP层攻击,而SSH爆破、RDP暴力破解、Redis未授权访问,全在传输层横冲直撞。

安全组实操铁律:

  • 默认拒绝所有入站:新建安全组第一件事,删掉‘0.0.0.0/0’;
  • SSH/RDP仅限跳板机IP:用aws ec2 authorize-security-group-ingress精确到/32,配合堡垒机Session Manager,彻底告别密码明文;
  • 数据库端口绝不暴露公网:RDS、ElastiCache一律VPC内网访问,外网应用走API Gateway + Lambda代理,多一层封装,少一分风险。

额外彩蛋:用Network ACL做‘第二道门禁’,比如在子网ACL中拒绝常见恶意IP段(可订阅Aliyun威胁情报或FireHOL IP列表),成本几乎为零,防御效果肉眼可见。

第五步:最后防线——用SCP管住所有账号的‘手脚’

就算IAM策略写得再细,只要某个子账号有iam:CreatePolicy权限,就能自己给自己造个‘上帝权限’。这时候,Service Control Policies(SCP)就是企业级刹车片。

在Organizations中为OU(如‘Production-Accounts’)绑定SCP:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "DenyRootAccess",
      "Effect": "Deny",
      "Principal": {"AWS": ["arn:aws:iam::*:root"]},
      "Action": "*",
      "Resource": "*"
    },
    {
      "Sid": "DenyEC2RegionLock",
      "Effect": "Deny",
      "Action": "ec2:*",
      "Resource": "*",
      "Condition": {"StringNotEquals": {"aws:RequestedRegion": ["us-east-1", "ap-northeast-1"]}}
    }
  ]
}

这段策略干了两件事:1)根账号在所有子账号里彻底失权;2)生产账号只能在东京/美东建EC2,防止误操作跑出天价账单。SCP不授予权限,只设天花板——这才是真正的‘权限熔断’。

结语:加固不是终点,是每日晨会的第一项议程

写完这篇,我顺手检查了自己三个AWS账号:一个根账号MFA已启用,访问密钥清零;两个生产账号的SCP已生效,CloudTrail日志桶开启对象锁定;就连CI/CD用的IAM角色,也刚删掉了多余的s3:ListAllMyBuckets权限。

云安全没有银弹,但有笨办法:每周五下午花15分钟,运行一遍aws iam list-users --query 'Users[?PasswordLastUsed==`null`].UserName',揪出半年没登录的僵尸账号;每月初导出一次IAM凭证报告,看谁还在用AccessKey而不是角色;每季度让新人跑一遍‘权限最小化挑战赛’——谁能用最少的权限完成部署,奖励星巴克券。

记住:最贵的安全方案,不是买一堆监控大屏,而是让每个工程师养成‘动前先查策略,上线必过审计’的肌肉记忆。当你某天发现,连实习生都能对着CloudTrail日志反向追踪到某次误删操作的完整链路时——恭喜,你的AWS账号,终于活成了它该有的样子:低调、坚韧、且沉默地扛住一切风暴。

Telegram售前客服
客服ID
@cloudcup
联系
Telegram售后客服
客服ID
@yanhuacloud
联系