1.
准备与前置检查
- 登录:使用AWS管理控制台(region选择台湾或最近Region)或配置AWS CLI(aws configure)。
- 权限:确保当前账号有AdministratorAccess或等效的审计权限(可用只读+IAM查看权限)。
2.
列出并审计IAM主体
- 控制台步骤:IAM → 用户 / 角色 / 群组,查看“最后使用”与MFA状态;
- CLI命令:aws iam generate-credential-report && aws iam get-credential-report --output text | base64 -d,检查未使用的AccessKey、密码最后使用时间;
- 操作建议:为长期未用Key禁用或删除,启用MFA,建立最小权限策略,并为自动化使用角色而非长期凭证。
3.
评估并精简权限策略
- 使用IAM Access Analyzer:在控制台启用并查看外部共享的策略;
- CLI查看策略:aws iam list-policies --scope Local,然后 aws iam get-policy-version 获取策略文档;
- 实操:把广泛的“*”权限分解为最小动作集合,使用条件(aws:SourceIp、aws:MultiFactorAuthPresent、aws:RequestedRegion)限制访问。
4.
使用权限边界与组织策略
- 如果使用AWS Organizations:在组织中创建Service Control Policies (SCP) 限制高风险操作(例如禁止DeleteBucket);
- 设置权限边界(Permission Boundary)给开发者角色,防止权限蔓延;
- 控制台操作:Organizations → Policies → Create policy → Attach to OU/Account。
5.
审计日志与可见性
- 启用CloudTrail(多Region)并将日志写入加密的S3:控制台→CloudTrail→创建Trail→选择S3并开启日志加密;
- 启用Config规则(例如 restricted-ssh、s3-bucket-server-side-encryption-enabled);
- CLI示例:aws cloudtrail create-trail --name AuditTrail --s3-bucket-name my-audit-bucket,然后 aws cloudtrail start-logging --name AuditTrail。
6.
磁盘与对象的加密实践(在途与静态)
- EBS:确保AMI和卷启用加密,CLI检查:aws ec2 describe-volumes --filters Name=encrypted,Values=true;对未加密卷通过创建快照并基于加密快照创建新卷来迁移;
- S3:启用桶级默认加密(SSE-S3或SSE-KMS),示例CLI:aws s3api put-bucket-encryption --bucket my-bucket --server-side-encryption-configuration '{"Rules":[{"ApplyServerSideEncryptionByDefault":{"SSEAlgorithm":"aws:kms","KMSMasterKeyID":"arn:aws:kms:...:key/..."} }] }';
- RDS:在创建实例时勾选加密或创建快照并恢复到加密实例。
7.
KMS密钥管理与最佳实践
- 创建并限制CMK:aws kms create-key --description "prod key" 返回KeyId,随后 aws kms enable-key-rotation --key-id
;
- Key Policy:仅允许特定角色使用Decrypt/Encrypt,严格控制Grant,避免把Decrypt权限给太宽的主体;
- 审计:CloudTrail记录KMS使用,检查key使用频率并定期轮换密钥(开启自动轮换并评估外部依赖)。
8.
网络与传输层加密
- 强制TLS:在负载均衡器(ALB/NLB)或应用层使用ACM证书,控制台→Certificate Manager→Request certificate→在LB上配置Listener为HTTPS;
- 内部通信:使用VPC私有子网、Security Group最小开放端口、启用VPC Flow Logs以监控异常流量。
9.
检测与渗透验证(非破坏性)
- 使用IAM Access Advisor、AWS Trusted Advisor安全检查,执行配置基线扫描(如CIS AWS Foundations);
- 试验:用只读账号尝试访问受限资源,验证策略生效;如需第三方渗测,先在组织内申请并签署渗透测试豁免和范围。
10.
问:如何快速检查S3桶是否已被正确加密?
- 答:在控制台S3桶设置→默认加密查看,或用CLI:aws s3api get-bucket-encryption --bucket my-bucket。若返回规则包含SSEAlgorithm(aws:kms或AES256),则已启用;如无规则需执行put-bucket-encryption命令开启。
11.
问:如何确认IAM角色没有超权限?
- 答:使用IAM Access Analyzer与生成的credential report审计角色权限,CLI查看附加策略 aws iam list-attached-role-policies --role-name ROLE;结合模拟策略(aws iam simulate-principal-policy)测试特定操作是否被允许。
12.
问:KMS密钥被滥用怎么办,如何快速响应?
- 答:立即在KMS控制台或CLI停用密钥(aws kms disable-key --key-id ),审查CloudTrail中Decrypt事件来源并撤销对应IAM权限,必要时创建新密钥并重新加密受影响数据,通知合规/安全团队。
来源:安全角度评估亚马逊台湾云服务器 的权限与数据加密能力