📦 Aws Cdk Analyzer — AWS CDK Analyzer
v1.0.0分析 AWS CDK 应用的最佳实践、安全性、成本优化与部署安全——涵盖 construct 模式、IAM 策略与 CloudForma...
0· 25·0 当前·0 累计
运行时依赖
无特殊依赖
安装命令
点击复制官方npx clawhub@latest install aws-cdk-analyzer
镜像加速npx clawhub@latest install aws-cdk-analyzer --registry https://cn.longxiaskill.com镜像同步中
技能文档
AWS CDK Analyzer 分析 AWS CDK 应用的最佳实践、安全漏洞、成本优化与部署安全。检查构造模式、IAM 策略、资源配置及合成后的 CloudFormation 输出。 适用于 CDK 代码评审、生产部署准备或存量基础设施审计。
用法 “分析我的 CDK 应用是否存在安全问题” “检查我的 CDK 栈中的 IAM 策略” “查看 CDK 代码的成本优化机会” “审计 CDK 构造是否符合最佳实践” “验证此次 CDK 变更的部署安全性”
工作原理
- 项目发现
- 安全审计
- 检测通配符权限( 操作或资源)
- 查找过度宽松策略(AdministratorAccess、PowerUserAccess)
- 检查敏感操作缺少条件键
- 验证最小权限原则
- 识别无信任边界的跨账户访问
网络安全:
- 安全组在敏感端口开放 0.0.0.0/0
- 应私有资源置于公有子网
- 缺少 AWS 服务的 VPC 端点
- 传输数据未加密(HTTP 监听器、未加密连接)
数据保护:
- S3 桶未加密、未版本化、无访问日志
- RDS 实例未开启存储加密
- DynamoDB 表无时间点恢复
- 未轮换 KMS 密钥
- 密钥硬编码在 CDK 代码而非 Secrets Manager
合规:
- 启用 CloudTrail 日志
- 配置 VPC Flow Logs
- 配置 Config 规则监控合规
- 关键资源具备备份计划
- 成本分析
- 实例过大(可按典型模式缩容)
- 缺少自动扩缩容配置
- 可用 Reserved/Spot 的 On-Demand 实例
- NAT Gateway 费用(可改用 VPC 端点)
- 未使用的弹性 IP
- CloudWatch 日志保留期过长
- 缺少 S3 生命周期策略
- 最佳实践
- 优先使用 L2/L3 而非 L1 (CfnXxx)
- 为有状态资源(RDS、S3、DynamoDB)添加 removalPolicy
- 使用可读的 CloudFormation 逻辑 ID,避免默认构造 ID
- 正确处理栈依赖与跨栈引用
- 使用 aspects 处理横切关注点
代码质量:
- 硬编码值应改为参数或上下文
- 缺少成本分摊的栈标签
- 环境配置未与构造逻辑分离
- 缺少栈描述
- 构造作用域与命名规范
部署安全:
- 更新时会替换资源(存在数据丢失风险)
- 缺少防止误删的栈策略
- 未配置回滚
- CloudFormation 变更集审查不足
- 合成与验证
- 迁移建议
- CDK v1 到 v2 迁移路径
- 特性开关推荐
- 构造库更新
- 破坏性变更检测
输出
AWS CDK 分析 — MyApp(3 栈)
🔴 严重(4)
- IAM 通配符权限 — lib/api-stack.ts:45
PolicyStatement({ actions: ['s3:'], resources: ['*'] })
→ 限定到具体桶 ARN 与所需操作 - RDS 实例公网可访问 — lib/database-stack.ts:23
publiclyAccessible: true
→ 移至私有子网,通过堡垒机或 VPN 访问 - 密钥硬编码 — lib/api-stack.ts:78
password: 'prod_db_pass123'
→ 使用 secretsmanager.Secret.fromSecretNameV2() - S3 桶无删除策略 — lib/storage-stack.ts:15
removalPolicy: RemovalPolicy.RETAIN 🟡 警告(6)
- Lambda 内存过大 — 分配 1024 MB,平均仅 128 MB
- NAT Gateway — 月费 $32,可改用 VPC 端点($7)
- CloudWatch 日志 — 未设保留期(永久保存,$0.50/GB/月)
- 缺少标签 — 3 栈无成本分摊标签
- 使用 L1 构造 — 可用 s3.Bucket 却用 CfnBucket
- 无自动扩缩容 — ECS 服务任务数固定