首页 AWS 安全策略清单 — 从 SCP 到 Config Rule 的完整落地指南
文章
取消

AWS 安全策略清单 — 从 SCP 到 Config Rule 的完整落地指南

一、优先级总览

AWS 安全策略落地可以按 Critical → High → Medium → Low 四级优先级推进。每级的分界如下:

优先级含义落地建议
Critical安全基线必备,不配等于裸奔上线前必须启用
High重要加固项,大部分环境应启用上线初期完成
Medium最佳实践增强持续迭代补齐
Low合规兜底或次要检测项有余力时覆盖

二、Critical — 安全基线

组织与账号管理

SCP 层面首先要锁定组织边界:

  • Guardrail-Deny-Leave-Organization — 禁止成员账号退出组织或关闭账号,挂 Root OU
  • Deny Root User Actions — 禁止 Root 执行除恢复/计费/支持外的操作,需 BreakGlass OU 豁免
  • Deny Root User Access Keys — 禁止为 Root 创建访问密钥

这三条 SCP 是所有 AWS 组织的第一道防线。Root 密钥泄露是最高级别的安全事故,必须从一开始就杜绝。

审计与日志保护

审计日志的完整性比日志本身更重要——攻击者进来第一件事往往是删日志。

  • Guardrail-Deny-Audit-Services-Tampering — 禁止停止/删除/修改 CloudTrail(无豁免)、Config/GuardDuty/SecurityHub/Inspector(豁免 Terraform 角色)
  • Guardrail-Protect-Security-Audit-Storage — 保护审计 S3 桶和 CloudWatch 日志组不被删除或篡改
  • CT Managed SCPs — CT 自动维护的 Guardrail,禁止修改 CT 管理的 CloudTrail/Config/日志组等资源
  • Detect CloudTrail/CloudTrail Lake Enabled — 检测性 Guardrail,发现未启用 CloudTrail 的账号
  • Detect Log Archive S3 Public Access — 发现审计桶被公开

存储与数据保护

数据保护在 AWS 安全中覆盖面最广,从 S3 到 EBS 到 RDS 都需要兜底策略:

SCP 层面

  • Guardrail-Deny-Insecure-Data-Creation — 强制 S3 加密、拒绝公开 ACL/策略、强制 EBS/RDS 加密、拒绝公开 EBS 快照

账号配置层面

  • S3 Bucket Default Encryption — 所有 S3 桶开启默认加密(桶级兜底,防止未加密写入)
  • S3 Bucket Versioning — 启用版本控制(防止误删/覆盖)
  • S3 Account Level Block Public Access — 账号级别封闭所有 S3 桶公开访问(四项全开)

CT 预防性 Guardrail

  • Require S3 HTTPS
  • Restrict S3 Access to Organization
  • Require EBS Volume Encryption
  • Require EBS Snapshot Encryption
  • Deny EBS Snapshot Public Access

IAM 与访问控制

  • Guardrail-Data-Perimeter-ResourceOrgID — 使用 aws:ResourceOrgID 条件限制跨组织资源访问,使用 StringNotEqualsIfExists 避免影响服务写入
  • Guardrail-Deny-All-Regions-Except-Allowed — 只允许指定区域操作,全局服务豁免

CT 预防性 Guardrail

  • Restrict Secrets Manager / SQS / STS / AppSync / Lambda 到组织或账号内

网络安全

  • Guardrail-Deny-Org-Sharing-Discovery-Tampering — 禁止禁用 RAM 组织共享和删除 Resource Explorer 索引/视图

三、High — 重要加固

EC2 安全加固(CT Preventives)

  • Deny EC2 Direct APIs / VM Import/Export / Deprecated Spot APIs
  • Deny EBS Snapshot Public Sharing / AMI Public Sharing
  • Disable EC2 Serial Console

KMS 安全加固

  • Restrict KMS Grant to AWS Services 和 Require Minimum KMS RSA Key Length

审计桶保护

  • Disallow Audit Bucket Policy Changes / Require Audit Bucket Retention Policy / Enable Audit Bucket Logging

IAM 与访问控制

  • Guardrail-Deny-IAM-Access-Key-Creation — 禁止创建 IAM 用户访问密钥,强制使用 SSO
  • Mandate Permission Boundary — 强制 IAM Role/User 绑定 Permission Boundary(挂 Workloads/Prod OU)

Config 检测规则(Detective)

以下 Config Rules 建议在核心账号启用:

  • ROOT_ACCOUNT_MFA_ENABLED — Root 是否启用 MFA
  • INCOMING_SSH_DISABLED — 安全组是否允许 0.0.0.0/0 SSH
  • RESTRICTED_INCOMING_TRAFFIC — 安全组是否允许 0.0.0.0/0 RDP
  • RDS_INSTANCE_PUBLIC_ACCESS_CHECK — RDS 是否公开
  • RDS_SNAPSHOTS_PUBLIC_PROHIBITED — RDS 快照是否公开
  • RDS_STORAGE_ENCRYPTED — RDS 是否加密
  • ENCRYPTED_VOLUMES — EBS 是否加密
  • S3_BUCKET_PUBLIC_READ_PROHIBITED / S3_BUCKET_PUBLIC_WRITE_PROHIBITED — S3 桶公开读写
  • EC2_VOLUME_INUSE_CHECK — 未挂载 EBS 卷
  • CLOUD_TRAIL_VALIDATION_ENABLED — CloudTrail 日志完整性校验

四、Medium — 最佳实践增强

存储与数据保护(Config Rules)

  • S3_BUCKET_SERVER_ACCESS_LOGGING_ENABLED — S3 桶启用服务端访问日志
  • KMS_KEY_ROTATION_ENABLED — KMS 密钥自动轮转

审计与日志保护

  • VPC_FLOW_LOGS_ENABLED — VPC 子网 Flow Logs
  • RDS_DELETION_PROTECTION_ENABLED — RDS 删除保护
  • IAM Access Analyzer — 组织级启用,检测外部实体访问
  • Config All Resource Types / Enable All Regions — Config 全面录制
  • Security Hub — 启用并集成 Config/GuardDuty

Detective(Config Rules)

  • 公开端点检测 — 检测公开 Redshift / EKS / EC2 公网 IP / 子网公网 IP / IGW 路由
  • 服务公开检测 — 检测 OpenSearch VPC / Lambda 公开 / SSM 公开 / DMS 公开 / EMR 公开 / SageMaker 公网

RCP(Resource Control Policies)

RCP 是较新的策略类型,用于限制成员账号内的资源访问主体。建议逐步引入:

  • S3 Data Perimeter / KMS Data Perimeter / SQS Data Perimeter
  • Secrets Manager Data Perimeter / STS Trust Boundary

注意:RCP 需测试 SSO 兼容性,部分场景下可能误杀 IAM Identity Center 的正常调用。


五、Low — 合规兜底

  • VPC_DEFAULT_SG_RESTRICTED — 默认安全组无规则
  • EC2_INSTANCE_NO_PUBLIC_IP — EC2 绑定公网 IP
  • EC2_DETAILED_MONITORING_ENABLED — EC2 详细监控
  • IAM Password Policy — IAM 用户密码策略(仅在仍有 IAM 用户时需要)

六、Data Perimeter 覆盖范围

核心 SCP Guardrail-Data-Perimeter-ResourceOrgID 建议覆盖以下跨组织操作:

服务应限制的操作
S3GetObject, PutObject, DeleteObject, GetBucketPolicy, PutBucketPolicy
KMSDecrypt, Encrypt, ReEncrypt*, GenerateDataKey*, CreateGrant, DescribeKey
EC2CopySnapshot, CreateSnapshots, ModifySnapshotAttribute
RDSCopyDBSnapshot, CopyDBClusterSnapshot, ModifyDBSnapshotAttribute, ModifyDBClusterSnapshotAttribute, RestoreDBInstanceFromDBSnapshot, RestoreDBClusterFromSnapshot
SQSSendMessage, ReceiveMessage, DeleteMessage
SNSPublish, Subscribe
Secrets ManagerGetSecretValue, PutSecretValue, CreateSecret
LambdaInvokeFunction, InvokeFunctionUrl

七、不推荐的策略(避坑指南)

策略原因
s3_sse_kms_required要求 PutObject 带 KMS Key ID,与 CloudTrail 日志写入冲突
s3_auth_header_required要求 authType=REST-HEADER,S3 控制台浏览被拦截
audit_bucket_encryption_enabled与 CloudTrail/Lambda 写入冲突
IAM-Role-Data-Perimeter (RCP)误杀 IAM Identity Center
SNS-Data-Perimeter (RCP)ap-northeast-1 暂不支持

原则:策略在应用中可能产生非预期的副作用。每一条 SCP 或 RCP 上线前,都应在非生产账号充分测试,特别是与托管服务(CloudTrail、Config、Control Tower)相关的策略。


八、落地路线建议

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Phase 1 — 上线前(Critical)
├── 组织边界 SCP(Leave Org / Root 保护)
├── 审计服务防篡改 SCP + CT Guardrails
├── 存储强制加密(S3 / EBS / RDS)
├── 区域限制 + Data Perimeter SCP
└── S3 Block Public Access + Bucket 配置

Phase 2 — 上线初期(High)
├── EC2 / KMS 加固 CT Guardrails
├── 审计桶保护(策略变更 / 保留 / 日志)
├── IAM Access Key 禁用 + Permission Boundary
└── 核心 Config Rules 启用

Phase 3 — 持续迭代(Medium → Low)
├── VPC Flow Logs / RDS 删除保护
├── Security Hub 集成
├── RCP 逐步引入(测试兼容性)
├── 公开端点检测 Config Rules
└── 余项 Config Rules 补齐

附:策略类型速查

类型缩写作用范围典型用途
Service Control PolicySCP整个 OU/账号禁止/限制操作,组织级兜底
Control Tower GuardrailCT Preventive/DetectiveOU 级别CT 托管的安全基线
Resource Control PolicyRCP整个 OU/账号限制资源可被谁访问
AWS Config RuleConfig单账号检测性合规检查
Account Setting单账号账号级配置(加密/版本控制)
Permission BoundaryPB单个 IAM 实体角色/用户的最大权限边界
本文由作者按照 CC BY 4.0 进行授权

AWS Control Tower Guardrail 绕过 — AWSControlTowerExecution 角色实战

-