如何用AWS Config和CloudTrail监控EC2公网IP变更及Transit Gateway连接
私有EC2实例两类风险的监控配置方案
针对你提到的两类风险,以下是基于AWS Config和CloudTrail的具体监控配置细节:
一、监控EC2实例被修改为带公网IP的风险
AWS Config检查项
- 内置规则:直接启用
ec2-instance-no-public-ip规则,该规则会自动检测EC2实例是否分配了公网IP,当私有实例被修改为带公网IP状态时,会触发非合规告警。 - 自定义规则(可选):如果需要限定监控范围(比如仅针对标记为
Private:True的实例),可以创建自定义规则,逻辑为:检查实例networkInterfaces[].association.publicIp是否存在,同时匹配指定标签,避免误报允许有公网IP的实例。
CloudTrail需监控的事件与参数
追踪所有可能给私有EC2实例添加公网IP的操作:
- 事件名称:
AssociateAddress:给实例绑定弹性公网IP的核心操作ModifyInstanceAttribute:修改实例网络接口属性(可能添加带公网IP的网卡)RunInstances:新启动实例时如果指定了associatePublicIpAddress=true(针对私有实例池的违规启动)
- 关键参数过滤:
- 对
AssociateAddress:过滤instanceId属于私有实例池的范围,同时检查publicIp或allocationId是否存在(确认绑定了公网IP) - 对
RunInstances:检查networkInterfaces[].associatePublicIpAddress是否为true,且目标实例属于私有实例池 - 对
ModifyInstanceAttribute:检查attributeName为networkInterfaces时,是否新增了带公网IP的网卡配置
- 对
二、监控Transit Gateway与EC2实例关联的风险
AWS Config检查项
由于没有直接的内置规则,需创建自定义规则实现监控:
- 规则逻辑1:检查EC2实例所在VPC是否与Transit Gateway(TGW)关联。通过调用
describe-transit-gateway-vpc-attachmentsAPI获取所有关联TGW的VPC列表,对比实例的vpcId是否在列表中,匹配则触发非合规。 - 规则逻辑2:更细粒度监控,检查实例所在子网是否属于已关联TGW的VPC子网,避免VPC部分子网关联TGW的场景遗漏。
CloudTrail需监控的事件与参数
追踪TGW创建及VPC关联操作(EC2实例所在VPC关联TGW后即存在风险):
- 事件名称:
CreateTransitGateway:未授权创建TGW的操作CreateTransitGatewayVpcAttachment:将VPC与TGW关联的核心操作AcceptTransitGatewayVpcAttachment:跨账号场景下的TGW关联接受操作
- 关键参数过滤:
- 对
CreateTransitGatewayVpcAttachment:过滤vpcId属于私有EC2实例所在的VPC范围,同时检查transitGatewayId(确认关联了TGW) - 对
CreateTransitGateway:监控所有未在预授权列表中的TGW创建操作
- 对
三、告警与通知配置
- AWS Config告警:在规则配置中绑定SNS主题,当实例触发非合规状态时,自动推送告警通知到指定邮箱/消息终端。
- CloudTrail告警:将CloudTrail日志导入CloudWatch Logs,创建CloudWatch告警,匹配上述指定的事件名称和参数过滤条件,触发时通过SNS发送通知。
- 补充权限审计:额外监控IAM权限变更事件(如
PutUserPolicy、AttachRolePolicy),防范用户被授予ec2:AssociateAddress、ec2:CreateTransitGateway等敏感权限的违规操作。
内容的提问来源于stack exchange,提问作者TechQuest
相关产品推荐
相关产品推荐

