AWS账号实名代过 AWS亚马逊云内网安全防护

亚马逊aws / 2026-04-17 16:50:15

你有没有过这种错觉——把服务器扔进AWS,点几下鼠标,选个‘默认VPC’,再随手开个安全组放行22端口,就等于‘上云成功’了?恭喜你,已成功解锁‘云上裸奔’成就。

别急着截图发朋友圈配文‘架构已上线’。现实很快就会给你发一封匿名邮件:‘您账户下3台EC2实例正在疯狂扫描10.0.0.0/8网段……疑似横向移动。’(注:这封邮件其实不会真发,但GuardDuty会默默记小本本。)

一、VPC:不是‘默认’就等于‘安全’,它只是个‘画圈圈’的起手式

AWS的VPC(Virtual Private Cloud),翻译成人话就是:给你一块专属乐高底盘,上面你想搭城堡、挖护城河、还是建空中走廊,全凭你手速和脑速。但问题来了——很多团队第一件事是点‘Launch VPC Wizard’,一路Next,最后喜提一个‘Default VPC’。它像房东送的精装房:墙刷好了、灯装上了、连窗帘都配齐了……可窗帘是半透明的,门锁是挂锁款,阳台还直通隔壁老王家花园。

Default VPC默认开启‘公网可达’模式:子网自动关联路由表,指向Internet Gateway;安全组默认放行所有入站流量(对,你没看错,是‘所有’);就连NAT Gateway都贴心地帮你省略了——反正你都‘默认’了,何必费劲?

所以,真正的第一步不是建实例,而是‘毁掉默认’:删掉Default VPC,自己动手建一个‘素颜VPC’——不勾选‘Auto-assign public IPv4’,不绑IGW,不设默认路由。让它先当个‘社恐青年’:谁都不理,谁也别想理它。

二、安全组 vs 网络ACL:保安队长和小区门禁卡的职场恩怨

安全组(Security Group)是实例级的‘贴身保镖’,状态感知、只进不出、规则按优先级执行(但其实它根本不管优先级,只认‘允许’或‘拒绝’,且拒绝永远不生效——它压根不处理拒绝规则,只放行你明确写的允许项)。一句话总结:它记性差,但很专一,只管自己罩着的那几台机器。

网络ACL(Network ACL)是子网级的‘小区门禁系统’,无状态、进出分列、规则按数字序号严格匹配(100放行SSH,200拒绝全部,那200之后的规则统统作废)。它像那个每天站在岗亭里核对登记本的老保安,翻页慢,但较真。

常见翻车现场:
• 给RDS加了个安全组,允许3306端口从App Server来——结果App Server在另一个VPC,走的是VPC Peering,而Peering默认不传递安全组规则;
• 在NACL里写了‘拒绝所有’兜底,却忘了‘允许响应流量’——TCP三次握手直接卡死在SYN_SENT;
• 把安全组当成防火墙用,给每台机器配20条规则,最后自己都记不清哪条管Redis哪条管Elasticsearch。

实操建议:安全组做‘精准授权’(只放最小必要端口+源IP段),NACL做‘兜底防护’(比如整个子网禁止访问0.0.0.0/0的HTTP/HTTPS,防误配置外泄)。二者不是互斥,是双保险——就像你家防盗门配指纹锁(安全组)+ 小区大门刷脸闸机(NACL)。

AWS账号实名代过 三、私有子网:不是‘没公网IP’就叫私有,是‘连NAT都不给你见’

很多人以为:‘我这台EC2没配EIP,也没分配公有IP,它就是私有的!’醒醒,朋友。没有公网IP ≠ 没有上网能力。只要它所在的子网路由表里有指向NAT Gateway或NAT Instance的0.0.0.0/0路由,它就能偷偷摸摸连外网——还能被你自己的Jump Box反向SSH进来。

真正的私有子网,要满足三个条件:
① 子网属性:Disable Auto-assign Public IP ✔️
② 路由表:没有指向IGW或NAT的默认路由(0.0.0.0/0),只有本地VPC路由(10.0.0.0/8)✔️
③ 出口路径:如需出网,必须经由VPC Endpoint(S3/DynamoDB)、Transit Gateway,或通过PrivateLink对接其他服务——绝不用NAT。

举个栗子:数据库层、缓存层、内部API网关,全扔进纯私有子网。它们可以互相通信(靠安全组控制),但对外‘失联’。哪怕你运维同事半夜手抖敲错命令,也最多删掉自己库里的表,绝不可能顺网线爬去删掉隔壁项目的S3桶。

四、Flow Logs + GuardDuty:你的云上‘天网摄像头’和‘片儿警’

VPC Flow Logs不是日志,是‘网络行为快照’:谁(源IP)、啥时候(时间戳)、连谁(目标IP+端口)、用了啥协议(TCP/UDP)、结果如何(ACCEPT/REJECT)。它不告诉你‘为什么连’,但能告诉你‘连得有点勤’。

搭配GuardDuty,就升级成‘AI片儿警’:它会盯着Flow Logs、CloudTrail、DNS日志,自动识别异常模式——比如某台EC2凌晨3点突然高频访问100+个内网IP的22端口(疑似暴力扫雷),或某个IAM用户突然从尼日利亚登录后下载了全部S3对象(疑似数据外泄)。它不拦你,但会发告警:‘您账户下出现可疑横向移动行为,建议立即检查ec2-i-0a1b2c3d4e5f67890的安全组配置。’

重点来了:GuardDuty免费试用30天,之后每月$0.20/百万条事件——比你请个兼职安全工程师便宜多了。而且它不卖硬件、不装Agent、不改你代码,纯靠日志分析。建议上线第一天就启用,把它当成你的‘云上夜班保安’。

五、Bonus:三个反直觉但救命的小习惯

① 别信‘内网可信’,信‘零信任’:AWS内网不是铁板一块。VPC Peering、Transit Gateway、PrivateLink这些连接方式,本质是‘打通两堵墙’,而不是‘合并成一堵更厚的墙’。一旦A VPC被攻破,攻击者可能顺着Peering直接跳进B VPC——所以每个VPC都要独立设防,别指望‘反正都在内网,随便通’。

② 安全组ID命名要有‘人话’:别叫sg-0abcdef1234567890,叫‘sg-app-to-db-mysql-3306’。下次排查时,你不会对着控制台喃喃自语:‘这个sg-开头的到底管谁?’

③ 定期跑‘网络拓扑压力测试’:用AWS CLI写个脚本,遍历所有安全组,查‘0.0.0.0/0’规则;扫描所有子网路由表,找‘igw-’或‘nat-’开头的默认路由;再用VPC Reachability Analyzer模拟从Jump Box到DB的连通性——每月一次,比团建还重要。

最后说句掏心窝的:云安全不是买一堆服务堆出来的,是每次创建资源时多问一句‘它真需要这个权限吗?’,是删掉第10个‘临时开放8080端口’的安全组规则时没手抖,是在生产环境禁用root密钥前,先给自己泡了杯茶,深呼吸三次。

毕竟,最坚固的内网防护,不在控制台里,而在你按下‘Create’键前,那一秒的犹豫。

下载.png
Telegram售前客服
客服ID
@cloudcup
联系
Telegram售后客服
客服ID
@yanhuacloud
联系