1. AWS数据安全与访问控制全景

在开始学习任何一项 AWS 安全能力之前,先建立一张“全景地图”至关重要。AWS 的数据安全与访问控制并不是单一服务,而是一组围绕身份、权限、加密、审计与网络边界协同工作的机制。本章的目标是帮助读者理解课程整体结构、掌握几个贯穿全课程的核心概念、明确责任共担模型下“谁负责什么”,并完成实验环境的准备,为后续动手实践打好基础。

课程目标与学习路径

本课程围绕一条主线展开:谁(身份)在什么条件下(策略与上下文)可以对哪些资源(数据)执行什么操作(动作),以及如何验证与审计这些操作。围绕这条主线,课程分为四个阶段:

  • 基础认知阶段:责任共担模型、IAM 核心概念、根用户与账户安全。
  • 权限控制阶段:IAM 用户/组/角色、策略语法与评估逻辑、权限边界、临时凭证与 STS。
  • 数据保护阶段:S3 与 EBS/RDS 的加密、KMS 密钥管理、密钥策略与授权、传输加密。
  • 审计与治理阶段:CloudTrail、Config、Access Analyzer、日志保护与合规检查。

学习路径建议按“先身份、后数据、再审计”的顺序推进。原因是:几乎所有数据访问最终都要经过 IAM 授权判断,如果身份与策略模型不清晰,后续加密与审计的学习会缺乏判断依据。

核心概念速览

在 AWS 中,访问控制的判断由多个要素共同决定,理解它们之间的关系比记住单个服务名称更重要。下面这张图展示了从“请求发起”到“最终允许/拒绝”的核心判断链路,以及各要素在链路中的位置。

AWS 访问请求判断链路 请求方 IAM 用户 / 角色 / 联邦身份 请求上下文 Action / Resource / 条件键 策略评估引擎 身份策略 + 资源策略 + 权限边界 + SCP 决策结果 Allow / Deny 显式 Deny 优先级最高,直接拒绝 受保护资源 S3 存储桶 / KMS 密钥 / RDS 实例 / DynamoDB 表 / EBS 卷 资源策略 Bucket Policy Key Policy 审计与监控 CloudTrail Config / Access Analyzer 默认拒绝:未被任何策略显式允许的请求一律拒绝 显式 Deny > Allow > 默认 Deny 策略评估顺序:SCP → 资源策略 → 身份策略 → 权限边界 → 会话策略

图中体现了几个必须牢记的原则:默认拒绝(没有显式允许即拒绝)、显式 Deny 优先(任何一条 Deny 都会覆盖 Allow)、以及多类策略叠加评估(SCP、资源策略、身份策略、权限边界、会话策略共同作用)。这些原则将在后续章节反复出现。

责任共担模型:谁负责什么

AWS 责任共担模型是理解云安全的起点。简单说:AWS 负责“云的安全”,客户负责“云中的安全”。但这条界线会随服务类型变化,需要具体分析。

层面AWS 负责客户负责
物理设施数据中心、机房、硬件、网络骨干无
基础设施服务(如 EC2、EBS)虚拟化层、宿主机、存储硬件操作系统补丁、安全组、IAM、数据加密、应用安全
托管服务(如 S3、RDS、DynamoDB)服务本身、底层补丁、可用性数据分类、访问策略、加密配置、备份策略
身份与访问IAM 服务本身、STS、策略评估引擎用户/角色设计、策略编写、密钥轮换、最小权限

需要特别注意的是:无论哪种服务,数据内容的分类、加密方式的选择、访问权限的授予,始终是客户的责任。这也是本课程重点所在。

实验环境准备

为了完成后续实验,建议准备一个专用的 AWS 账户或沙箱环境,并完成以下准备:

  1. 启用 MFA 保护根用户:根用户拥有最高权限,必须启用多因素认证,并避免日常使用。
  2. 创建管理员 IAM 用户或角色:不要用根用户做日常操作。建议创建一个具备 AdministratorAccess 的 IAM 用户,并同样启用 MFA。
  3. 开启 CloudTrail:在主要区域创建一条跟踪,记录管理事件,便于后续审计实验。
  4. 准备一个测试 S3 存储桶:用于加密、策略与访问分析实验。
  5. 创建一个 KMS 客户托管密钥:用于加密实验,观察密钥策略与授权。
  6. 安装并配置 AWS CLI:使用 aws configure 配置访问密钥与默认区域。

下面是一段示例配置命令,用于验证 CLI 是否可用:

aws sts get-caller-identity
# 预期输出示例(示例值,非真实账户):
# {
#   "UserId": "AIDAEXAMPLEUSERID",
#   "Account": "123456789012",
#   "Arn": "arn:aws:iam::123456789012:user/admin"
# }
提示:实验环境建议使用独立账户或 AWS Organizations 中的沙箱成员账户,避免影响生产资源。所有示例中的账户 ID、密钥 ID、ARN 均为示意值,请替换为你自己的真实值。
注意:切勿将访问密钥硬编码到代码或提交到版本库。实验结束后及时删除不再使用的 IAM 用户、访问密钥和测试资源。

贯穿全课程的三条主线

最后,用三条主线帮助你在后续章节中保持方向感:

  • 身份主线:从根用户 → IAM 用户/组 → 角色 → 联邦身份,理解凭证如何获得、如何临时化。
  • 权限主线:从策略语法 → 评估逻辑 → 权限边界 → SCP,理解“允许”与“拒绝”如何产生。
  • 数据主线:从静态加密 → 传输加密 → 密钥管理 → 审计日志,理解数据在存储、传输、使用各阶段如何被保护。

掌握这张全景图后,后续每一章都将围绕其中某个节点深入展开。建议在学习过程中不断回到本章的链路图,确认自己当前所处的环节,以及它与上下游的关系。