AWS Firewall Manager 统一部署 Network Firewall 分布式架构:多账号网络安全管理实践

本文基于亚马逊云科技官博最新技术文章,详细介绍如何使用 AWS Firewall Manager 在 Organizations 多账号环境下统一部署和管理 AWS Network Firewall 的分布式架构。

亚马逊云科技官博(3/30)发了一篇实操文章:用 AWS Firewall Manager 集中管理多账号下的 AWS Network Firewall,一次配好规则自动下发到所有账号。分布式架构,每个 VPC 有自己的防火墙端点,流量不用绕路。

这个方案解决了多账号网络安全管理的几个核心痛点。

先搞清楚两个服务

AWS Network Firewall

有状态的网络防火墙,部署在 VPC 级别。能做的事:

  • 状态化包过滤:TCP/UDP/ICMP 连接追踪
  • 域名过滤:按域名允许/拒绝出站流量(不是 IP,是域名)
  • IPS/IDS:入侵检测和防护,支持 Suricata 规则
  • TLS 检测:解密 HTTPS 流量做深度检测
# Network Firewall 规则示例
# 只允许出站访问特定域名
pass tls $HOME_NET any -> $EXTERNAL_NET any (tls.sni; content:"amazonaws.com"; endswith; sid:1; rev:1;)
pass tls $HOME_NET any -> $EXTERNAL_NET any (tls.sni; content:"github.com"; endswith; sid:2; rev:1;)
drop tls $HOME_NET any -> $EXTERNAL_NET any (sid:3; rev:1;)

AWS Firewall Manager

集中管理工具。在 Organizations 管理账号里配一次策略,自动应用到指定的成员账号和 VPC。

管理账号(Firewall Manager)
  ↓ 策略下发
├── 账号 A → VPC-1 → Network Firewall 端点
├── 账号 B → VPC-2 → Network Firewall 端点
├── 账号 C → VPC-3 → Network Firewall 端点
└── 新账号 → 自动创建 Network Firewall 端点

分布式 vs 集中式

Network Firewall 的部署有两种模式:

对比项 分布式 集中式
防火墙位置 每个 VPC 有自己的端点 统一在检查 VPC
流量路径 VPC 内部,不绕路 流量要先到检查 VPC
延迟 低(本地处理) 高(多一跳)
成本 每个端点单独计费 集中端点,但 Transit Gateway 流量费
管理复杂度 端点多,靠 Firewall Manager 管 端点少,但路由复杂

官博这篇重点讲分布式部署。适用场景:VPC 数量多、对延迟敏感、各团队有自己的 VPC。

实施步骤

1. 前提条件

# 需要开启 AWS Organizations
# 管理账号中需要:
# - 指定 Firewall Manager 管理员账号
# - 确保 AWS Config 在所有成员账号中开启

2. 创建防火墙策略

在 Firewall Manager 管理员账号中创建策略:

import boto3

fms = boto3.client('fms')

# 创建 Network Firewall 策略
response = fms.put_policy(
    Policy={
        'PolicyName': 'org-network-firewall-policy',
        'SecurityServicePolicyData': {
            'Type': 'NETWORK_FIREWALL',
            'ManagedServiceData': json.dumps({
                'type': 'NETWORK_FIREWALL',
                'networkFirewallStatelessRuleGroupReferences': [],
                'networkFirewallStatefulRuleGroupReferences': [
                    {
                        'resourceARN': 'arn:aws:network-firewall:ap-northeast-1:123456789:stateful-rulegroup/block-malicious-domains'
                    }
                ],
                'networkFirewallStatelessDefaultActions': ['aws:forward_to_sfe'],
                'networkFirewallStatelessFragmentDefaultActions': ['aws:forward_to_sfe']
            })
        },
        'ResourceType': 'AWS::EC2::VPC',
        'ResourceTags': [
            {'Key': 'FirewallManaged', 'Value': 'true'}
        ],
        'ExcludeResourceTags': False,
        'RemediationEnabled': True,
        'IncludeMap': {
            'ACCOUNT': ['111111111111', '222222222222', '333333333333']
        }
    }
)

RemediationEnabled=True 意味着 Firewall Manager 会自动在目标 VPC 中创建 Network Firewall 端点和必要的路由。

3. 定义规则组

nfw = boto3.client('network-firewall')

# 有状态规则组:域名过滤
nfw.create_rule_group(
    RuleGroupName='allow-aws-services',
    Type='STATEFUL',
    Capacity=100,
    RuleGroup={
        'RulesSource': {
            'RulesSourceList': {
                'Targets': [
                    '.amazonaws.com',
                    '.aws.amazon.com',
                    '.github.com'
                ],
                'TargetTypes': ['TLS_SNI', 'HTTP_HOST'],
                'GeneratedRulesType': 'ALLOWLIST'
            }
        }
    }
)

# 有状态规则组:IPS 规则
nfw.create_rule_group(
    RuleGroupName='ips-rules',
    Type='STATEFUL',
    Capacity=200,
    RuleGroup={
        'RulesSource': {
            'StatefulRules': [
                {
                    'Action': 'DROP',
                    'Header': {
                        'Protocol': 'TCP',
                        'Source': '$HOME_NET',
                        'SourcePort': 'ANY',
                        'Direction': 'ANY',
                        'Destination': '$EXTERNAL_NET',
                        'DestinationPort': '23'
                    },
                    'RuleOptions': [
                        {'Keyword': 'sid', 'Settings': ['100']},
                        {'Keyword': 'msg', 'Settings': ['"Block Telnet"']}
                    ]
                }
            ]
        }
    }
)

4. 自动化路由

Firewall Manager 创建 Network Firewall 端点后,还需要配置路由表把流量导过去。分布式模式下:

子网路由表:
  0.0.0.0/0 → Network Firewall 端点

Firewall 子网路由表:
  0.0.0.0/0 → Internet Gateway

IGW 路由表(Ingress Routing):
  VPC CIDR → Network Firewall 端点

Firewall Manager 可以自动创建这些路由(设置 RemediationEnabled: True),也可以手动配。

新账号自动部署

这是 Firewall Manager 的杀手锏功能:新账号加入 Organization 后,如果符合策略的范围定义(按 OU 或标签),Firewall Manager 会自动在新账号的 VPC 中部署 Network Firewall。

# 按 OU 定义策略范围
policy['ResourceTypeList'] = ['AWS::EC2::VPC']
policy['IncludeMap'] = {
    'ORGUNIT': ['ou-xxxx-production', 'ou-xxxx-staging']
}

新团队创建了 VPC、打上 FirewallManaged=true 标签,防火墙自动就位。安全团队不用每次手动配。

合规审计

Firewall Manager 会检查每个账号的合规状态:

# 查看合规状态
response = fms.list_compliance_status(
    PolicyId='policy-id-123'
)

for status in response['PolicyComplianceStatusList']:
    print(f"账号 {status['MemberAccount']}: "
          f"{'合规' if status['ComplianceStatus'] == 'COMPLIANT' else '不合规'}")

不合规的账号会自动触发修复(如果开了 auto-remediation),或者发通知给安全团队。

成本考量

分布式部署的成本主要由三部分组成:Firewall Manager 策略费、Network Firewall 端点费、流量处理费。VPC 越多端点越多,但相比手动管理多个防火墙的人力成本和安全事件的潜在损失,这个投入通常值得。具体价格见亚马逊云科技官网定价页。

和 OpenClaw 的结合

用 OpenClaw Agent 监控 Firewall Manager 的合规状态:

# OpenClaw Skill:防火墙合规监控
# 1. 定期查 Firewall Manager 合规状态
# 2. 不合规 → 通知安全团队 + 自动触发修复
# 3. 新规则变更 → 验证下发到所有账号
# 4. 异常流量 → 结合 CloudWatch 告警自动分析

多账号环境的安全运维,自动化程度决定了安全团队能管多大规模。

落地建议

  1. 先在 2-3 个账号试:验证策略规则、路由配置、日志输出
  2. 从 ALLOWLIST 开始:先允许已知域名,再逐步收紧
  3. 开 Flow Logs:Network Firewall 的 Flow Logs 对调试很重要
  4. 和现有安全工具集成:日志发到 Security Hub、SIEM 做关联分析

亚马逊云科技官博原文:https://aws.amazon.com/cn/blogs/china/using-aws-firewall-manager-for-unified-network-firewall-deployment-part-1-distributed-architecture/
AWS Firewall Manager:https://aws.amazon.com/cn/firewall-manager/
AWS Network Firewall:https://aws.amazon.com/cn/network-firewall/
OpenClaw:https://github.com/openclaw/openclaw

posted @ 2026-04-01 21:57  亚马逊云开发者  阅读(2)  评论(0)    收藏  举报