前言

官网: https://aws.amazon.com/certification/certified-solutions-architect-professional/?ch=sec&sec=rmg&d=1
题库: https://www.examtopics.com/exams/amazon/aws-certified-solutions-architect-professional-sap-c02/


1. Identity & Federation

IAM

🔐 IAM 身份类型一览
类型描述
Users长期凭证用户(用户名+密码 / access key)
Groups用户集合,用于统一授权
Roles使用 STS 签发的临时凭证(跨账户、服务访问、EC2 等)
EC2 Instance Roles通过 Instance Metadata Service 获取临时凭证(每个 EC2 一次只能有一个角色)
Service Roles用于 AWS 服务访问另一个服务,如 API Gateway、CodeDeploy 等
Cross Account Roles跨账户访问权限,使用 AssumeRole 实现
📝 IAM 策略类型
类型描述
AWS Managed PolicyAWS 预定义的策略,如 AdministratorAccess
Customer Managed你创建和维护的可复用策略
Inline Policy直接嵌入到用户 / 组 / 角色上的策略,作用域限于该实体
Resource-based Policy应用于资源上的策略,如 S3 Bucket、SQS Queue 等
🔍 IAM 工具与可视化
工具名称作用
Access Advisor查看角色或用户的权限实际使用情况(支持最近访问时间)
Access Analyzer检查资源是否被外部实体共享(例如 S3 Bucket 公开、KMS Key 共享)
Policy Simulator模拟策略效果,验证策略是否按预期生效

IAM Policy

  • IAM 策略是一个 JSON 文档,通常包含以下字段
字段说明
"Effect"策略效果,可为 "Allow""Deny"
"Action"允许的操作,例如 "s3:GetObject"
"NotAction"明确排除的操作(通常与 "Effect": "Allow" 搭配使用)
"Resource"作用的资源 ARN,例如 "arn:aws:s3:::my-bucket/*"
"Condition"可选字段,用于添加附加限制条件
  • 显式 Deny 优先于 Allow
  • 最佳实践:始终遵循最小权限原则(Least Privilege)


IAM Policies Variables and Tags

  • ${aws:username}: 代表当前执行请求的 IAM 用户名
  • AWS Specific: aws:CurrentTime, aws:TokenIssueTime, aws:principaltype…
  • Service Specific: s3:prefix, s3:max-keys, s3:x-amz-acl…
  • Tag Based: iam:ResourceTag/key-name, aws:PrincipalTag/key-name…
{
"Effect": "Allow",
"Action": "s3:*",
"Resource": "arn:aws:s3:::mybucket/${aws:username}/*"
}
  • 假设 IAM 用户 alice 发起了请求,那么这个 policy 中的变量就会自动替换成
"Resource": "arn:aws:s3:::mybucket/alice/*"


IAM Roles vs Resource Based Policies

  • IAM 中的访问控制可以通过两种方式实现
    • 使用角色(IAM Role):通过扮演角色进行访问(代理身份)
    • 使用资源策略(Resource-based Policy):直接将权限附加在资源上

  • IAM Role 示例:A 账户中的 Lambda 要访问 B 账户中的 DynamoDB,A 账户的 Lambda 必须 Assume B 账户中的角色
  • Resource-based Policy 示例:B 账户的 S3 Bucket Policy 直接允许 A 账户的某个角色或服务访问该 Bucket

🆚 IAM Role vs Resource-based Policy 对比总结
维度IAM Role(角色)Resource-based Policy(资源策略)
附加位置附加在身份(User、Service、Account)上附加在资源上(如 S3 Bucket、SQS、KMS 等)
使用方式访问方先 AssumeRole,临时获取权限资源接收外部请求时,根据策略判断是否允许访问
适用场景用户 / 服务访问其他账户资源资源授权给外部账户、服务或匿名用户
支持跨账户访问✅ 是,通过 AssumeRole 实现✅ 是,直接在资源上允许其他账户 / 服务访问
例子EC2 实例角色、Lambda 执行角色、跨账户访问角色S3 Bucket Policy、SQS Queue Policy、KMS Key Policy
授权主体控制权在哪一方?访问者(主动扮演角色)资源拥有者(决定谁可访问资源)

IAM Permission Boundaries

  • Permission Boundary 是一种高级 IAM 控制机制,用于为 User 或 Role 设置权限上限。⚠️ 不支持用于 Group
    • 假设用户 A 被授予了 AdministratorAccess(几乎所有权限)
    • 但他的 Permission Boundary 限定为只允许:s3:, ec2:, cloudwatch:*
    • 结果, 用户 A 无法执行 iam:CreateUser,即使他的策略中写了也无效

  • 委托权限给非管理员: 比如让开发者自行管理权限(但不能升权)
  • 允许自助权限管理: 用户可以 attach policy,但受 boundary 限制
  • 精细限制特定用户或角色: 针对关键岗位做严格边界控制


IAM Access Analyzer

  • Access Analyzer 是 IAM 的可视化工具,用于帮助你识别资源是否被意外共享,并提供策略分析与建议功能。

  • IAM Access Analyzer Policy Validation
    • Validates your policy against IAM policy grammar and best practices
    • 自动检查 IAM Policy 是否符合语法 + 安全最佳实践
  • IAM Access Analyzer Policy Generation
    • Generates IAM policy based on access activity
    • 根据实际访问行为自动生成最小权限策略(least privilege)


STS (Security Token Service)

  • 使用 AWS Security Token Service (STS),你可以让一个用户、服务或应用 临时扮演另一个 IAM Role,获取一组短期凭证

  • 定义 IAM Role(本账户或跨账户)

    • 信任策略(Trust Policy):定义谁可以 assume 这个角色(哪些 Principal)
    • 权限策略(Permissions Policy):定义这个角色 assume 后能做什么操作
  • 示例 Trust Policy(允许 IAM 用户 assume 该角色)

{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::123456789012:user/developer"
},
"Action": "sts:AssumeRole"
}
  • 使用 AWS STS 获取临时凭证:调用 AssumeRole API,获得临时凭证
aws sts assume-role \
--role-arn "arn:aws:iam::123456789012:role/MyRole" \
--role-session-name "example-session"
  • 临时凭证有效期:可配置范围:15 分钟 ~ 12 小时

场景描述
🔄 跨账户访问让账户 A 的用户访问账户 B 的资源(你拥有两个账户)
🤝 第三方访问授权授权第三方(如供应商)账户的 IAM 用户访问你账户中的资源
☁️ AWS 服务间访问EC2、Lambda 等 AWS 服务通过 role 访问其他资源(S3、DynamoDB 等)
🌐 身份联合(Federation)外部身份源(如 AD、Google、SAML)用户通过联合登录后 assume 角色
⛔ 会话吊销机制使用 aws:TokenIssueTime + 条件策略吊销旧会话(AWSRevokeOlderSessions
  • 你可以让某个账户中的 IAM 用户切换身份,访问另一个账户(或同账户)中的 IAM Role

  • 如何安全地授权第三方 AWS 账户访问你资源中的 IAM Role
    • Zone of Trust:你自己拥有的账户或 AWS Organization
    • Outside Zone of Trust:第三方拥有的 AWS 账户(如供应商、合作伙伴)
  • 访问授权流程(给第三方账户)
    • 第三方的 AWS Account ID
    • 一个 External ID(共享的 secret 字符串,由第三方提供)
    • 在你账户中创建 IAM Role
      • 指定允许 AssumeRole 的 AWS 账户 ID
      • 添加 Condition 限制 External ID,确保只授权给特定第三方
    • 第三方 assume 该角色
      • 在调用 AssumeRole 时必须提供正确的 External ID,否则拒绝访问

  • External ID 的重要性
功能说明
🧿 防止“confused deputy” 攻击防止别人冒用第三方身份去 assume 你暴露的角色
🔒 安全通道External ID 是你与第三方之间的秘密,AWS 作为验证者
🤝 明确授权对象你可以根据不同第三方使用不同 External ID,实现绑定
  • Session Tags in STS
    • 当你通过 STS AssumeRole / AssumeRoleWithSAML / AssumeRoleWithWebIdentity 获取临时凭证时,可以附带自定义 Tag,这些 Tag 会作为“身份元信息”跟随该会话
功能描述
🏷️ 权限控制可用于通过 IAM Policy 中的 aws:PrincipalTag 条件限制资源访问
🔍 审计追踪Session tags 会显示在 CloudTrail 中,便于审计
🧑‍💼 用户信息传递可以传递比如 Department=FinanceProject=Alpha 这样的上下文信息
🔐 安全增强限制只有具有特定 tag 的用户才能传递某些 tag(防止伪造)

API 名称描述
AssumeRole获取临时凭证以访问本账户或跨账户的 IAM Role,最常用的 STS 接口。
AssumeRoleWithSAML为通过 SAML 登录的用户返回临时凭证,常用于企业 SSO(如 AD FS)。
AssumeRoleWithWebIdentity为通过 Web Identity Provider(如 Cognito、Facebook、Google、OIDC)登录的用户提供临时凭证。AWS 推荐使用 Cognito。
GetSessionToken获取当前 IAM 用户或 Root 用户的临时凭证,常与 MFA 一起使用。
GetFederationToken为联合用户(不在 IAM 中注册的用户)获取临时凭证,常用于代理程序或内部网络中的应用。

Identity Federation in AWS

  • Give users outside of AWS permissions to access AWS resources in your account
  • 允许 AWS 账户外部的用户 获取对 AWS 资源的访问权限,无需创建 IAM 用户
    • SAML 2.0, Custom Identity Broker, WebIdentityFederationWith(out)AmazonCognito, IAM Identity Center

+----------+     Authenticate    +-----------------+
| User | -----------------> | External IdP |
+----------+ +-----------------+
|
v
[Get Token / Assertion from IdP]
|
v
+-----------------------------+
| STS (AssumeRoleXxx) |
+-----------------------------+
|
v
[Get Temporary Credentials]
|
v
Access AWS Resources

AWS Directroy Service (AD)

  • Active Directory(AD) 是微软在 Windows Server 中提供的目录服务,用于集中管理网络中的用户、计算机、资源和权限

功能说明
🎯 用户管理创建/修改用户账号,设置密码策略、登录权限等
🖥️ 资源管理统一管理计算机、打印机、文件共享等资源
🔐 权限分配使用组(Security Groups)来简化访问控制
🗂️ 集中认证(SSO)用户只需登录一次,便可访问多个网络资源(Kerberos 协议)
Forest
└── Tree (example.com)
├── Domain: example.com
│ ├── OU: HR
│ │ └── User: Alice
│ ├── OU: IT
│ │ └── Computer: IT-PC-01
└── Domain: sub.example.com
  • AWS Directory Services
服务名称描述是否与本地 AD 集成支持 MFA用户存储位置
AWS Managed Microsoft ADAWS 托管的 Microsoft AD,完全兼容,支持 AD 信任关系✅(支持信任)存在 AWS 托管 AD 中
AD Connector目录代理,充当 AWS 和本地 AD 的桥梁(不存储用户数据)✅(直连)用户存储在本地 AD
Simple ADAWS 提供的简化版、兼容 AD 协议的托管目录,适合轻量应用❌(无法信任)存储在 AWS Simple AD

  • AWS Managed Microsoft AD(托管 Microsoft AD)
    • 完全托管的 Active Directory,运行在你的 AWS VPC 内,适合需要微软 AD 功能的企业工作负载
+----------------------+        +----------------------+
| Availability Zone 1| | Availability Zone 2|
| | | |
| +----------------+ | | +----------------+ |
| | AD DC | | | | AD DC | |
| +----------------+ | | +----------------+ |
| ^ ^ | | ^ ^ |
| / \ | | / \ |
| EC2 / Apps \ | | EC2 / Apps \ |
+----------------------+ +----------------------+

↕ Auto replication
↔ Cross-VPC / Multi-Account Join
  • Connect to on-premises AD
    • 在 AWS 中部署 AWS Managed Microsoft AD 后,可以通过 VPN 或 Direct Connect 与你现有的 本地 AD(on-premises AD) 建立 信任关系(Trust)

连接方式

类型描述
🛰️ VPN使用 AWS Site-to-Site VPN 建立加密连接
⚡ Direct Connect使用 AWS DX 提供更稳定的私网连接

支持的信任类型(Forest Trust)

类型说明
🔁 双向信任 (Two-way)AWS 和本地 AD 相互信任,可双向身份验证
👉 单向信任:AWS ➝ 本地 ADAWS 用户可以访问本地资源
👉 单向信任:本地 ➝ AWS本地用户可以访问 AWS 中的资源

  • Solution Architecture: Active Directory Replication
    • 为了降低延迟并提高可用性,可在 AWS 中部署本地 AD 的副本,以便在 VPN 或 Direct Connect 连接中断时仍可正常认证和访问资源

  • AWS Directory Services AD Connector
    • AD Connector 是一种目录网关(Directory Gateway),用于将 AWS 内的身份验证请求转发至你的 本地 Microsoft Active Directory
    • 适合纯身份验证代理,不支持 SQL Server

  • AWS Directory Services Simple AD
    • Simple AD 是一种低成本、轻量级的目录服务,兼容 Microsoft Active Directory,适用于小规模身份认证需求

目录服务类型是否支持 Trust支持 SSO支持 MFA用户管理位置最大用户数
Simple AD❌ 不支持❌ 不支持❌ 不支持托管在 AWS500 / 5000
AD Connector❌ 不支持✅ 支持✅ 支持本地 AD取决于本地 AD
Managed Microsoft AD✅ 支持✅ 支持✅ 支持托管在 AWS可扩展

AWS Organizations

  • AWS Organizations 允许你在一个统一的管理框架下,集中管理多个 AWS 账户。可通过组织单元(Organizational Units,OUs)分组,并应用策略统一控制
    • Root: 整个组织的顶层节点,包含所有 OUs 和账号
    • Management Account: 用于创建组织、邀请账号、应用 SCP 策略
    • Organizational Unit (OU): 类似目录结构中的文件夹,用于逻辑分组账户(如 Dev、Prod、HR)
    • Member Accounts: 加入组织的子账户,可继承 OU 的策略限制,但不具备组织控制权

  • AWS Organizations - OrganizationAccountAccessRole
    • 这是一个 IAM 角色,用于允许 管理账户(Management Account) 对 成员账户(Member Accounts) 执行管理员操作

  • AWS Multi-Account Strategies
    • 在企业级架构中,采用多个 AWS 账户(Multi-Account)可以带来更高的安全性、资源隔离性和可扩展性

  • AWS Organizations – Feature Modes
    • AWS Organizations 提供两种功能模式(Feature Sets),控制组织可用的功能范

Consolidated Billing Features(账单整合模式)

特性说明
💳 统一账单管理所有成员账户共享一个支付方式,由管理账户付款
💰 使用量聚合优惠像 EC2、S3 这类资源使用量可跨账户聚合,享受更高折扣
🚫 无 SCP(Service Control Policies)支持无法进行权限统一限制管理

All Features(全功能模式)✅ 默认选项

特性说明
✅ 包含 Consolidated Billing 所有功能继承账单整合模式的所有优点
✅ 启用 Service Control Policies(SCP) 管理成员账户权限可统一管理成员账户的服务访问权限
✅ 可将账户从组织中“锁定”通过 SCP 防止成员账户擅自离开组织
🔐 更细粒度控制适用于多账户安全与合规性架构
⚠️ 一旦启用,无法回退 到仅账单模式启用后无法降级回 Consolidated Billing 模式
  • AWS Organizations – Moving Accounts(迁移账户)
    • 从原 Organization 中移除成员账户
    • 从目标 Organization 发送邀请
    • 成员账户接受邀请


Service Control Policies (SCP)

  • SCP 是 AWS Organizations 的一种权限控制机制,用于对组织中的账户进行统一的服务访问控制
  • 作用范围为 OU 或账户层级, 不作用于管理账户(Management Account)
  • 作用于账号中的所有用户和角色, 包括 Root User,但不包括 Service-linked Roles
  • 策略继承机制: SCP 的生效路径必须从 Root OU 到目标账号 每一层都有 Allow,默认不允许任何操作
对象作用域控制行为
IAM Policy用户 / 角色定义用户可做什么
SCP账号 / OU定义账号最多能做什么(权限上限)

用例场景示例
🚫 禁止使用某些服务禁止某个 OU 下使用 EMR、CloudShell 等高风险服务
✅ 限制资源创建区域限制只能在 us-east-1 区域中使用服务
📋 强制合规策略确保某些服务(如 RDS)开启加密,或关闭不合规服务以满足 PCI、HIPAA 要求
🔐 限制 root 权限虽然 root 无法被删除,但可通过 SCP 禁止其访问敏感服务
  • Service Control Policies (SCP) 会沿着 Organizational Unit (OU) 层级向下继承,形成最终每个账户的权限上限
Root OU (applies: FullAWSAccess)

├── Management Account → ✅ 不受 SCP 限制(Can do anything)

├── OU: Workloads (applies: FullAWSAccess)
│ ├── OU: Test (applies: Deny EC2)
│ │ └── Account D → ❌ EC2 被禁止,其余允许
│ │
│ └── OU: Prod (applies: FullAWSAccess)
│ ├── Account E → ✅ 全部允许
│ └── Account F → ✅ 全部允许

└── OU: Sandbox (applies: Deny S3)
├── Account A → ❌ S3 被禁止(来自 Sandbox OU)
├── Account B → ❌ S3 被禁止(Sandbox)
└── Account C → ❌ S3 被禁止(Sandbox)

  • 左边: 除了 DynamoDB 被禁用,其他服务(S3、EC2、Lambda 等)都可以用
  • 右边: 除了 ec2:* 和 cloudwatch:* 以外的服务(如 S3、RDS、IAM)全部不允许访问

  • IAM Policy Evaluation Logic(权限评估逻辑)
      1. Deny Evaluation(最先评估): 是否有明确 Deny? 如果存在显式 Deny(例如 IAM Policy、SCP、Resource Policy 中),立即终止评估,决策为 Deny(优先级最高)
      1. Organizations SCPs(组织级服务控制策略): 如果账户有 SCP,则必须在 SCP 中允许相应操作
      1. Resource-based Policies(资源级策略): 比如 S3 Bucket Policy、Lambda Resource Policy、KMS Key Policy 等, 若不允许,继续下一个阶段
      1. Identity-based Policies(身份策略): 评估 IAM User/Role/Group 的策略是否存在有效的 Allow? 若无,则隐式拒绝(Implicit Deny)
      1. IAM Permissions Boundaries(权限边界): 权限边界也会限制一个用户/角色的最大权限范围, 必须同时满足 Identity Policy 和 Boundary 才能通过
      1. Session Policies(会话策略): 如果是通过临时凭证(例如 AssumeRole)访问,会话中可能附带 policy


IAM Identity Center

  • Formerly known as AWS Single Sign-On (SSO)
功能描述
🔐 统一登录(Single Sign-On)实现一次登录,访问多个 AWS 账户及业务应用
🔄 集中式身份访问管理统一管理用户权限,跨账户/跨区域生效
🧑‍💼 支持多种身份源内置用户目录 + 第三方 IdP(如 AD、Okta)

  • AWS IAM Identity Center(前 AWS SSO) 的架构整合与工作流程
1. 用户通过浏览器登录 Identity Center
2. 后端通过内置目录或 AD 确认身份
3. 根据用户绑定的 Permission Set 分配访问权限
4. 自动 SSO 到:
- AWS 控制台(多个账户)
- SaaS 应用
- 支持 SAML2.0 的自定义系统

  • IAM Identity Center 与 AWS Organizations 的集成结构
    • 如何通过权限集(Permission Set)为用户跨账户赋权
Bob 和 Alice 属于 Developers 组 →
Developers 组被赋予:
- ReadOnlyAccess → Dev Account A
- FullAccess → Prod Account A

➡️ 用户登录后会看到对应 AWS 账户及其可选的 Role

  • AWS IAM Identity Center – Fine-grained Permissions and Assignments(细粒度权限与授权)

Multi-Account Permissions(跨账户权限)

功能描述
✅ 跨账户权限管理管理整个 AWS Organization 中多个账户的访问权限
📦 Permission Set一组 IAM Policy 的集合,用于赋予用户/组 AWS 账户访问权限
➕ 权限赋予机制将 Permission Set 分配给用户/组 + 指定账户,即可跨账户访问

Application Assignments(SAML 应用授权)

功能描述
✅ SSO 访问企业 SaaS 应用支持 Salesforce、Box、Microsoft 365 等 SAML 2.0 应用
🔐 提供所需的连接信息包括 SAML URL、证书、Metadata 供应用配置使用

Attribute-Based Access Control (ABAC)

功能描述
🏷️ 基于用户属性的权限控制可根据用户属性自动应用权限,降低手动维护成本
示例属性costcenter, title, locale
用例定义一次权限,后续通过修改属性控制访问范围,无需修改策略

AWS Control Tower

  • AWS Control Tower 是一种自动化搭建、管理安全合规多账户环境的服务,基于 AWS 最佳实践
  • Control Tower 依赖 AWS Organizations 管理多账户结构

  • AWS Control Tower – Account Factory
    • Account Factory 是 AWS Control Tower 提供的一个自动化工具,用来标准化和批量创建新的 AWS 账户

  • AWS Control Tower – Detect and Remediate Policy Violations
    • Control Tower 通过 Guardrails(护栏规则) 来持续监控和管理账户环境中的合规性

  • AWS Control Tower – Guardrails Levels
    • Guardrails(护栏规则)按重要性和强制性被分为三种不同级别
等级描述示例
🛡️ Mandatory (强制)自动启用,AWS Control Tower 必须强制执行禁止 Log Archive 账户对外公开读权限
💬 Strongly Recommended (强烈推荐)根据 AWS 最佳实践推荐,启用可提升安全性,但可选建议为 EC2 挂载的 EBS 卷启用加密
📝 Elective (自选)企业常用的附加控制措施,可根据需要选择性启用禁止无 MFA 的 S3 删除操作

AWS Resource Access Manager (RAM)

  • AWS RAM 允许你将 AWS 资源跨账户共享,避免资源重复创建,提高资源利用率和成本效益
  • 利用 RAM 共享 VPC 子网,多个账户的资源可以部署在同一个 VPC 中,同时保持账户级资源隔离

支持共享的资源示例

资源类型说明
🌐 VPC 子网(Subnets)允许多个账户的资源部署到同一个子网内(但必须同属一个 AWS Organization)
🚫 限制不支持共享 Security Groups 和 Default VPC
🚍 Transit Gateway多账户共用同一个 Transit Gateway 实现网络互通
🌎 Route 53可以共享 Resolver 规则、DNS Firewall 规则组等
🛡️ License Manager 配置跨账户统一管理许可证分配


2. Security

CloudTrail

  • CloudTrail 是 AWS 的日志审计服务,用于记录账号中的所有 API 调用历史,便于审计、合规与安全调查(资源删除了?先查 CloudTrail!)
  • 默认启用: 每个 AWS 账户自动启用基本事件记录(90 天内)
  • 记录所有 API 调用: 包括通过控制台、SDK、CLI、AWS 服务内部调用等
  • 跨区域支持: 可选择记录单个 Region,或跨 Region(默认 All Regions)

CloudTrail 事件类型对比

事件类型默认启用是否高频是否区分读写示例
Management Events✅ 是中频✅ 可区分IAM, EC2, CloudTrail
Data Events❌ 否高频✅ 可区分S3 对象, Lambda 调用
CloudTrail Insights❌ 否智能检测无需区分检测突增/异常行为

  • CloudTrail Events Retention
    • 默认保留期限: 90 天(CloudTrail 控制台中默认可查询的事件时间范围)
    • 长期保存: 若需保存超过 90 天,需将日志写入 S3 存储桶
    • 查询分析: 可配合 Amazon Athena 查询存储在 S3 中的历史日志,实现结构化分析

  • EventBridge + CloudTrail
    • 通过 Amazon EventBridge + CloudTrail 拦截 AWS API 调用,用于实时安全响应与告警
用户发起 DeleteTable API 操作 ➝ 被 CloudTrail 记录 ➝ 事件被 EventBridge 捕捉 ➝ 发出 SNS 告警


KMS (Key Management Service)

  • KMS 是 AWS 提供的托管密钥服务,用于管理加密、解密和密钥授权,几乎涉及所有数据加密的场景
  • 数据加密引擎: AWS 中所有“加密”相关功能几乎都依赖 KMS
  • 密钥托管与控制: AWS 管理密钥的生命周期(创建、轮换、禁用等)
  • 与 IAM 集成授权: 使用 IAM 权限控制谁能访问或使用密钥
  • KMS 支持两种类型的密钥:对称密钥(Symmetric) 和 非对称密钥(Asymmetric)

KMS 密钥类型对比

特性Customer Managed KeyAWS Managed KeyAWS Owned Key
用户控制✅ 完全控制❌ 受限❌ 无法控制
自动轮换✅ 可启用✅ 自动启用✅ AWS 自管
支持 CloudTrail 审计✅ 支持✅ 支持❌ 不支持
可用作 Envelope 加密✅ 是✅ 是❌ 否
常见使用场景高敏感数据服务默认加密AWS 内部使用
  • KMS Key Material Origin(密钥材料来源)
    • AWS_KMS: 由 AWS 自动生成, KMS 在其受控的密钥存储中创建并管理密钥材料
    • EXTERNAL: 用户自行导入密钥材料, 使用 ImportKeyMaterial API 将密钥注入到 KMS 中
    • AWS_CLOUDHSM: 使用 AWS CloudHSM 创建密钥材料, CloudHSM 是基于硬件的密钥模块(HSM)服务

  • KMS Key Source – Custom Key Store (CloudHSM)
    • 将 KMS 与 CloudHSM 集群集成,使 KMS 密钥材料托管在你自有的 HSM 中,进一步增强安全边界与合规能力

  • KMS Key Source – External(Bring Your Own Key, BYOK)
    • 将你自己的密钥材料(Key Material)导入到 AWS KMS 中,使你能在 AWS 内部使用外部生成的密钥来进行加密操作
    • AWS 提供使用接口,但不再负责密钥生命周期的管理与安全

  • AWS KMS Multi-Region Keys
    • 在多个 Region 中创建一组 功能上等效的 KMS 密钥,支持跨区域加密/解密,无需重新加密或跨区域 API 调用


SSM Parameter Store

  • Parameter Store 是 AWS 提供的 配置与密钥值存储服务,适用于环境变量、凭证、密钥等的安全管理

SSM Parameter Store – 常见用途

用途示例
🧪 环境配置注入Dev / Staging / Prod 使用不同参数
🔐 密钥存储存储数据库密码、API 密钥、令牌等
🔁 CI/CD 集成Pipeline 中动态读取版本化配置
🧩 服务间解耦配置多个 Lambda / ECS 服务共享相同配置但不硬编码

  • SSM Parameter Store – 分层结构(Hierarchy)
    • Parameter Store 支持以“路径”方式组织参数,非常适合大型项目的多环境配置管理
/my-department/
├── my-app/
│ ├── dev/
│ │ ├── db-url
│ │ └── db-password
│ └── prod/
│ ├── db-url
│ └── db-password
├── other-app/
/other-department/
  • SSM Parameter Store – Standard 与 Advanced 参数层级对比
特性StandardAdvanced
参数总数量上限(每账户每区域)10,000100,000
单个参数最大值大小4 KB8 KB
是否支持参数策略(过期等)❌ 不支持✅ 支持
成本✅ 免费💲 每个参数 $0.05/月
典型用途一般配置、小规模系统大型企业系统、合规要求、多版本配置等
  • SSM Parameter Store – Parameter Policies(参数策略,仅限 Advanced 参数)
    • Parameter Policies 是为高级参数(Advanced Tier)提供的附加功能,用于控制参数的生命周期、安全性与合规性


AWS Secrets Manager

  • Secrets Manager 是 AWS 专门用于存储和自动轮换敏感凭证(如密码、API 密钥等)的服务,比 Parameter Store 更安全、更自动化

Secrets Manager vs SSM Parameter Store 对比简表

项目Secrets ManagerSSM Parameter Store (SecureString)
自动轮换✅ 支持❌ 不支持(需手动)
成本💲 $0.40 每密钥 / 月标准免费,高级 $0.05 / 月
支持 Lambda 集成✅ 原生支持❌ 无
原生服务集成✅ 强(RDS、Redshift)✅ 一般

  • AWS Secrets Manager – 跨账户共享(Sharing Across Accounts)
    • 要让其他 AWS 账户访问某个 Secrets Manager 中的密钥,需 同时配置 KMS 策略与 Resource-based Policy

SSM Parameter Store vs. Secrets Manager – Rotation

特性Secrets ManagerSSM Parameter Store
轮换方式✅ 内建自动轮换❌ 需自建 EventBridge + Lambda
RDS 支持✅ 原生集成✅ 需自行实现连接与更新逻辑
Lambda 模板支持✅ AWS 提供模板❌ 无模板
成本💲 $0.40 / 月 / 密钥💲 免费(标准)或 $0.05 / 月(高级)
使用建议高敏感数据,数据库密码管理简单配置轮换或成本敏感场景

SSL/TLS - Basics

  • SSL/TLS 是用于网络连接加密的协议,常用于保护浏览器与服务器之间的数据传输安全
项目描述
🔐 SSL(Secure Sockets Layer)最初用于实现安全通信的协议,现已被淘汰
🔐 TLS(Transport Layer Security)SSL 的升级版,当前主流安全传输协议(如 TLS 1.2, TLS 1.3)
🗣️ 通俗叫法尽管使用的是 TLS,大家仍习惯说 “SSL 证书”
  • SSL – Man-in-the-Middle (MITM) Attack
    • MITM(中间人攻击)是指攻击者在用户与服务器之间悄悄插入,拦截、读取甚至篡改传输的数据,常见于公共 Wi-Fi 或 DNS 欺骗场景

MITM 攻击防护措施分类

等级描述示例或建议
🛡️ Mandatory (强制)基本防护措施,必须启用所有公网流量使用 HTTPS,部署有效 SSL/TLS 证书
💬 Strongly Recommended (强烈推荐)AWS 推荐的增强防护手段,可显著提升安全性启用 DNSSEC 来防止 DNS 被劫持
📝 Elective (自选)企业常用的附加手段,可视情况启用使用自定义 DNS 服务器提升控制力(如 Bind、dnsmasq)

AWS Certificate Manager (ACM)

  • ACM(AWS Certificate Manager)是 AWS 提供的 SSL/TLS 证书管理服务,支持申请、托管、分发、续期等功能,极大简化了证书在云中的部署流程

ACM 支持集成的服务

集成服务描述
⚖️ Load Balancer支持 ALB / NLB,包括由 Elastic Beanstalk 创建的负载均衡器
🌎 CloudFront可为分发的内容启用 HTTPS 支持
📡 API Gateway为 API 网关的自定义域名配置 SSL 证书

建议使用场景总结

场景建议
✅ 外部网站或 API使用 ACM 公有证书(自动续期 + 免费)
🔐 内部微服务通信(非公网)创建 Private CA + 私有证书,并配置系统信任链
🌍 多区域应用部署在每个 AWS Region 内单独签发证书,不支持跨区域复制或复用

CloudHSM

  • CloudHSM 是 AWS 提供的 专属硬件加密模块服务(HSM = Hardware Security Module),适用于对密钥有高度控制要求的场景

  • CloudHSM 特性概览

    • 💡 专属硬件实例(HSM):每个用户拥有独立的物理设备
    • 🔑 密钥全权管理:只有你拥有密钥控制权,AWS 无法访问
    • 📜 合规优势:通过 FIPS 140-2 Level 3 安全认证
    • 🔁 支持加解密算法:对称(AES)、非对称(RSA、ECC)、TLS 证书管理等
    • 🧩 集成支持:如 Redshift 可使用 CloudHSM 进行数据库加密和密钥管理(SSE-C 场景推荐)

KMS vs. CloudHSM 选择建议

场景建议选择
✅ 一般加密需求,使用 AWS 服务集成AWS KMS(托管式 + 易用)
🔐 高合规场景(如政府、金融、医疗)AWS CloudHSM(专属硬件 + 用户控密钥)

S3 Security

  • S3 提供多种对象加密方式,确保数据静态加密(encryption at rest),适用于不同的密钥管理需求
  • S3 提供 HTTP 与 HTTPS 两种访问方式,建议始终使用 加密传输(HTTPS) 来保护数据在网络传输过程中的安全
加密方式描述
🟣 SSE-S3- 使用 AWS 自主管理的密钥(AES-256)
- 完全托管、零配置
🟡 SSE-KMS- 使用 AWS KMS 管理密钥
- 支持访问控制与 CloudTrail 审计日志
🔒 SSE-C- 自定义客户提供密钥(Client-Provided Keys)
- S3 不保存密钥,仅临时使用
💻 Client-Side- 加密在客户端完成后再上传到 S3
- 客户端负责密钥生成、加密与解密逻辑

  • Events in S3 Buckets
    • S3 支持多种事件与日志机制,用于追踪对象访问、变更与安全状态
目的建议使用机制
获取完整访问日志S3 Access Logs
实时触发函数/消息S3 Event Notifications
对接跨服务事件处理CloudTrail + EventBridge
检查桶权限是否合规Trusted Advisor
  • S3 Security 安全控制方式
    • S3 提供两种主要的访问控制机制:基于用户 与 基于资源,可灵活搭配使用以实现精细权限控制

👤 User-based(基于用户)

控制方式描述
🔐 IAM Policy在 IAM 控制台中配置,定义特定用户可执行哪些 S3 API 操作(如 GetObject、PutObject)

📦 Resource-based(基于资源)

控制方式描述
📜 Bucket Policy在 S3 控制台中为 Bucket 设置的策略,支持跨账户访问控制
🧾 Object ACL物件级权限控制,粒度更细(可控制单个对象的读/写权限)
📦 Bucket ACL针对整个桶的访问控制,不常用,功能已被 Bucket Policy 替代为主
  • S3 Bucket Policies
    • S3 Bucket Policy 是一种 资源级别的访问控制机制,用于集中定义整桶对象的权限策略
    • 授予公共访问权限(用于静态网站托管或公开资源)
    • 强制上传对象时加密(通过条件限制加密方式)
    • 跨账户授权访问(授予其他 AWS 账户访问权限)

  • S3 Pre-signed URLs
    • 预签名 URL 允许临时授权用户访问 S3 中的对象,常用于 临时下载 或 受控上传 场景

使用场景示例

场景描述示例效果
🎬 仅登录用户可下载付费视频生成 GET 类型的预签名 URL,供登录用户使用
📥 动态授权用户下载文件根据用户身份动态生成 GET URL,实现灵活文件访问控制
📤 临时上传文件至指定位置(如头像、PDF)为某路径生成 PUT 类型的预签名 URL,仅临时开放上传权限
  • S3 Object Lock & Glacier Vault Lock
    • 这两种锁定机制都采用 WORM(Write Once Read Many)模型,主要用于 合规存储 与 防篡改数据保护
场景推荐机制
普通对象防删(含版本控制)S3 Object Lock
归档数据长期不可更改(如交易记录)Glacier Vault Lock
合规要求 + 防篡改 + 永久保存需求可结合 S3 Object Lock + Glacier Vault Lock 双层保护


S3 – Access Points

  • S3 Access Points 提供一种更灵活、安全的方式来管理不同用户或应用程序对同一 Bucket 的访问权限,按角色或业务线划分权限,简化 Bucket Policy 管理复杂度
用户角色访问前缀Access Point 名称策略说明
Users (Finance)/finance/*FinanceAccessPoint允许读写 /finance 区域
Users (Sales)/sales/*SalesAccessPoint允许读写 /sales 区域
Users (Analytics)所有路径(只读)AnalyticsAccessPoint对整个 Bucket 只读

  • S3 – Access Points(VPC Origin)
    • S3 Access Points 可配置为 仅允许来自特定 VPC 内部的访问,提高安全性与隔离性,适合私有网络内的企业应用

  • S3 – Multi-Region Access Points(MRAP)
    • Multi-Region Access Points(MRAP)提供一个 全球统一的访问入口,自动将请求路由到多个 AWS 区域中的 S3 存储桶,实现跨区域高可用、低延迟访问


S3 Object Lambda

  • S3 Object Lambda 允许在对象被读取前,通过 AWS Lambda 实时处理对象内容,无需修改原始 S3 对象
使用场景描述示例说明
🔒 屏蔽敏感信息(如 PII)在分析或测试环境中自动脱敏数据(如隐藏邮箱、手机号)
🔄 转换数据格式将对象从 XML 转换为 JSON,提升兼容性
🖼️ 实时处理图片根据调用用户信息动态缩放图片或添加水印


DDoS Protection on AWS

  • DDoS Protection on AWS
    • AWS 提供多层次的防护方案,结合网络架构与服务配置,可有效缓解分布式拒绝服务(DDoS)攻击带来的影响
服务/机制描述
🛡️ AWS Shield Standard默认启用,免费为所有 AWS 用户提供基础 DDoS 防护(L3/L4 攻击)
🛡️ AWS Shield Advanced付费服务,提供 24/7 SOC 支持、攻击检测、流量分析、费用保护等高级功能
🌐 AWS WAF应用层防护(L7),可自定义规则过滤恶意请求(如 IP 黑名单、SQL 注入等)
🚀 CloudFront & Route 53借助 AWS 全球边缘网络进行流量分发,结合 AWS Shield 可实现边缘层 DDoS 缓解

选择建议总结

需求场景推荐机制
基本防护(无需额外配置)AWS Shield Standard
面对业务关键系统/高风险目标AWS Shield Advanced + WAF + CDN
Web 应用层级访问控制AWS WAF(结合 CloudFront 效果更佳)

AWS Shield

  • AWS Shield 是 AWS 提供的 分布式拒绝服务(DDoS)防护服务,分为 Standard 与 Advanced 两个等级,覆盖 L3/L4 层的攻击防护

🛡️ Shield Standard vs Advanced 简要对比

特性Shield StandardShield Advanced
费用免费$3,000/月
攻击类型支持基础网络攻击(L3/L4)复杂攻击(如应用层滥用、状态耗尽等)
保护服务范围所有 AWS 公网服务限定服务(EC2、ELB、CloudFront 等)
DDoS 响应团队支持❌ 无✅ 提供 24/7 专家支持
费用豁免保障❌ 无✅ 提供(需符合 AWS 条件)


AWS WAF

  • AWS WAF 是一款 应用层防火墙(Layer 7),用于保护 Web 应用免受常见攻击如 SQL 注入、XSS、恶意请求等
  • 注意:WAF 并非 DDoS 防护工具,但可配合 Shield 使用以提升整体防护能力
部署目标描述
⚖️ Application Load Balancer在 ALB 上部署区域性规则,用于 EC2、ECS、Lambda 后端
🌐 CloudFront在全球边缘节点上拦截攻击(全球生效)
📡 API Gateway在 REST 或 HTTP API 前部署规则(区域级或边缘)
🧠 AppSync保护 GraphQL 接口,防止恶意查询
🧱 支持自定义源站如 Classic Load Balancer、EC2、S3 网站托管、自建应用等

  • Web ACL(Web Access Control List)
    • Web ACL 是 WAF 的核心配置单元,由一组规则组成,控制哪些请求被允许、阻止或进一步挑战
规则内容类型说明
🔢 IP 地址过滤包括黑名单 / 白名单
📄 HTTP 内容匹配可基于 Header、Body、URI 进行模式匹配
🔍 SQL Injection / XSS 检测AWS 提供内建规则集可直接启用防护
🌍 地理位置(Geo Match)按国家 / 区域限制访问
🔁 速率限制(Rate-based)限制同一 IP 的请求频率,防止爬虫/爆破
📏 请求大小限制(Size Constraint)限制 URI、Header、Body 的最大长度
  • AWS WAF – Managed Rules(托管规则集)
  • AWS WAF 提供超过 190 条 托管规则(Managed Rules),由 AWS 与 AWS Marketplace 合作伙伴维护,开箱即用,简化防护配置

  • AWS WAF – Web ACL Logging(日志记录)
    • WAF 支持将 Web ACL 的匹配记录导出至多种日志系统,用于 安全审计、可视化分析和合规留档
    • CloudWatch Logs → 用于实时分析与可视化告警(搭配 Metric Filter)
    • S3 → 便于合规审计、存储与 Athena 分析
    • Firehose → 实时流处理、集成第三方 SIEM/可观测平台


AWS Firewall Manager

  • AWS Firewall Manager 是一个集中式安全策略管理服务,适用于多账户环境(如 AWS Organizations),可统一下发并自动应用网络安全规则
需求场景建议操作
统一管理所有账户的 WAF / Shield 策略启用 Firewall Manager 并创建 WAF Policy
实现自动化合规保障结合 SCP + Firewall Manager + Config
集中控制 EC2/ALB 安全组配置启用 Security Group Policy 管理

  • WAF vs. Firewall Manager vs. Shield
服务作用范围
AWS WAF定义 Web ACL 规则,提供资源级别的应用层(Layer 7)攻击防护
AWS Firewall Manager用于跨账户集中管理 WAF、Shield、Security Group、Network Firewall 策略
AWS Shield防御 DDoS 攻击,包含免费版(Standard)和高级版(Advanced)

AWS Inspecctor

  • Amazon Inspector 是一项自动化安全评估服务,用于检测 AWS 上资源(如 EC2、ECR、Lambda)中存在的漏洞与配置风险,并集成报告和告警流程
场景描述建议配置
需要定期评估 EC2 主机系统与网络风险启用 Amazon Inspector + 安装/激活 SSM Agent
容器镜像安全治理启用 ECR 推送镜像扫描,配合 Inspector 自动检测依赖漏洞
保障 Serverless 函数运行时安全启用对 Lambda 函数的 Inspector 扫描
多工具集成与统一监控将 Inspector Findings 发送到 Security Hub / EventBridge


AWS Config

  • AWS Config 是一项资源审计与合规性检查服务,能持续记录和追踪 AWS 资源的配置变更,帮助满足审计、合规与运营分析需求
场景建议操作
持续合规审计与资源追踪启用 AWS Config + 关键规则集
多账户环境统一合规视图使用 Config Aggregator 聚合所有账户合规状态
定制企业规则配置自定义 Lambda 规则,与 AWS Config 集成
结合响应机制配置 SNS + EventBridge 实现实时响应或自动修复流程

  • AWS Config Rules
    • AWS Config Rules 用于自动检查资源是否符合期望配置,并可与 EventBridge + Lambda / SSM 配合实现自动修复
用例描述规则示例
确保所有 EBS 卷类型为 gp2自定义规则:检查 EBS 类型是否为 gp2
检查所有 EC2 实例是否为 t2.micro自定义规则:实例类型为 t2.micro 才合规
检查安全组是否开放 0.0.0.0/0 的 SSH 端口使用托管规则 restricted-ssh
S3 Bucket 是否关闭公有访问使用托管规则 s3-bucket-public-read-prohibited


AWS Managed Logs

  • AWS 提供多种服务的 托管日志记录功能,可将关键操作、流量或访问行为记录到 S3、CloudWatch Logs 或 Kinesis 中,供后续审计、监控与分析使用
目标场景建议配置
审计账户 API 操作启用 CloudTrail,写入 S3 + CloudWatch Logs
分析网络流量与安全行为启用 VPC Flow Logs,结合 CloudWatch Logs 或 Athena 使用
回溯存储访问行为启用 S3 或 CloudFront Access Logs
合规监管 / 配置变更溯源启用 AWS Config 并将日志导出至 S3


AWS GuardDuty

  • Amazon GuardDuty 是一项基于机器学习的智能威胁检测服务,可识别 AWS 环境中的异常行为、恶意活动与潜在攻击,无需安装代理或修改资源配置
场景推荐操作
快速启用账户级安全监控启用 GuardDuty,默认开启 CloudTrail、VPC、DNS 分析
自动化安全响应配置 EventBridge + Lambda 处理 GuardDuty Findings
多账户统一检测配置 GuardDuty 管理账户(Master-Detector 架构)
高风险资源(如 S3、Lambda)监控启用可选数据源如 S3 Data Events、Lambda 运行监控等

⚠️ 检测示例(Findings)

威胁类型示例描述
💰 加密货币挖矿攻击检测 EC2 实例疑似被劫持用于挖矿(有专用 Finding 类型)
🔓 被盗凭证操作使用已泄露的 API 密钥进行非常规操作
🔄 反常流量模式某实例短时间内访问大量外部 IP 或发送异常 DNS 查询

📥 输入日志源

来源类型说明
📋 CloudTrail Events检测异常 API 调用、未授权操作(如 createTrail、createVpc、updateSecurityGroup)
🪣 CloudTrail S3 Data Events检测异常访问行为(如 getObject、listObjects、deleteObject)
🌐 VPC Flow Logs分析流量模式(如端口扫描、可疑内网通信、通信异常 IP)
🌍 DNS 查询日志检测域名滥用,如 EC2 通过 DNS 隐蔽传输数据(数据渗漏)
🧪 可选数据源包括 EKS 审计日志、RDS、Aurora、EBS 卷行为、Lambda、S3 数据事件等
  • GuardDuty – Delegated Administrator(委派管理员)
    • 在多账户架构下,可通过 委派管理员(Delegated Administrator) 集中管理 Amazon GuardDuty,适用于 AWS Organizations


IAM Conditions

  • IAM 支持通过条件(Condition)限制策略作用范围,提升权限控制的灵活性与精细度

✅ 常见 IAM 条件键(Condition Keys)

条件键功能说明
aws:SourceIp限制 API 请求只能从指定 IP 范围发起
aws:RequestedRegion限制 API 请求只能针对特定 AWS 区域
aws:MultiFactorAuthPresent强制要求请求者启用并使用 MFA(多重身份验证)
ec2:ResourceTag限制操作仅适用于包含指定标签的 EC2 资源(例如强制打标签)
  • aws:PrincipalOrgID 是一个可用于 资源策略(Resource Policies) 的条件,用于限制访问者必须属于某个 AWS Organization,实现跨账户但受组织边界控制的安全授权


IAM for S3

  • 针对 S3,权限粒度划分为 Bucket 级别 与 Object 级别

🪣 S3 操作权限与 ARN 示例

操作权限ARN 示例权限说明
s3:ListBucketarn:aws:s3:::my-bucket✅ Bucket 级权限
s3:GetObject
s3:PutObject
s3:DeleteObject
arn:aws:s3:::my-bucket/*✅ Object 级权限

AWS Security Hub

  • AWS Security Hub 是一个集中化的安全与合规状态可视化平台,自动聚合来自多个 AWS 服务与第三方工具的安全发现(Findings),并支持跨账户集中管理

🧰 核心功能

功能描述
📊 统一仪表盘提供多账户、多服务的安全状态总览,支持快速发现问题并响应
🔎 安全发现聚合自动整合来自 AWS 服务与合作厂商的 Findings(支持 AWS Security Finding Format)
✅ 安全检查自动化内建对照如 CIS Benchmarks、PCI DSS 的合规性检查规则集
🔔 集成通知与响应可结合 EventBridge + Lambda/SNS 触发自动修复或提醒流程

📥 支持的 AWS 服务(Findings 来源)

来源服务检测内容示例
🧾 AWS Config合规规则触发、不合规配置变更
🛡️ GuardDuty异常行为、恶意流量、账号滥用等
🔍 Inspector主机、容器、Lambda 漏洞扫描
🔐 MacieS3 中的敏感数据检测(如 PII、信用卡号)
👁️ IAM Access Analyzer资源暴露、外部可访问路径发现
⚙️ Systems Manager异常补丁状态、实例合规性评估
🔥 Firewall Manager防火墙规则不一致、策略未应用
🏥 AWS HealthAWS 服务层事件影响和通知


Amazon Detective

  • Amazon Detective 是一款专为深入分析和调查 AWS 安全事件根因而设计的服务,结合图数据库和机器学习技术,从大量日志中构建清晰的可视化上下文
场景建议操作
分析 GuardDuty/Macie Findings 背后的根因启用 Detective 并结合图形分析视图使用
需要追溯用户 / 资源行为全链路使用 Detective 的行为图谱与时间线
多账户环境集中调查安全事件在管理账户中启用 Amazon Detective 并连接所有子账户


3. Compute & Load Balancing

EC2

  • EC2 Instance Types – 常见类别速览
    • Amazon EC2 提供多种实例类型,针对不同计算、内存、存储和图形加速需求进行优化

常见主流实例族对照表

实例类型用途场景描述特点关键词
R高内存场景,如 Redis、Memcached内存优化型(RAM 优先)
C高计算需求,如批量处理、数据库计算优化型(CPU 性能优先)
M通用业务,如 Web 应用、开发环境均衡型(“M” = Medium)
I高本地 I/O,如 NoSQL、日志聚合数据库存储优化型(本地 SSD)
GGPU 加速需求,如深度学习、图像处理图形/GPU 优化型
T2 / T3突发型场景,轻量 Web、测试环境突发性能型(CPU credit 模型)
T2/T3 - unlimited支持持续突发,无性能限制超出 baseline 不限时
  • EC2 – Placement Groups
    • Placement Groups 可用于控制 EC2 实例在 AWS 数据中心中的物理部署方式,优化网络延迟、容错能力或分布策略
    • Cluster: 低延迟网络、高带宽通信
    • Spread: 高可用性 / 避免单点故障硬件依赖
    • Partition: 大规模分布式系统架构部署

🧩 三种 Placement Group 策略类型

策略类型描述场景示例
Cluster实例部署在同一个可用区(AZ)的近距离硬件上,实现超低网络延迟与高吞吐量HPC、高频交易、分布式缓存
Spread实例分布在多个底层硬件(每个 AZ 最多 7 个实例),以提升容错性关键系统(如数据库主备、前端节点)
Partition实例分布在多个“分区”内,每个分区基于不同的机架组,可扩展到数百台实例大规模分布式系统(如 Hadoop、Kafka、Cassandra)
  • Placement Groups – Cluster 策略
    • 极高的网络性能,实例间带宽可达 10 Gbps(需启用 Enhanced Networking)
    • 非常适合需要低延迟、高吞吐量的内部通信场景
    • 所有实例集中在同一机架组,若该机架故障,则所有实例同时宕机

  • Placement Groups – Spread 策略
    • 可跨多个可用区(AZ)部署
    • 实例部署在不同的物理硬件上,大大降低同时故障的风险
    • 合关键业务场景下的实例隔离
    • 每个 AZ 限制最多 7 个实例(每个 Placement Group 中)

  • Placement Groups – Partition 策略
    • 每个 可用区(AZ)最多支持 7 个分区
    • 单个分区可包含 数百个 EC2 实例
    • 同一分区内的实例共享机架,不同分区的实例物理隔离
    • 分区级故障 只影响单个分区,不会波及其它分区
    • 实例可以通过 实例元数据(Metadata)获取所属分区信息

  • EC2 Instance Launch Types(启动类型)
    • EC2 提供多种实例启动方式,适用于不同业务场景和成本策略

🚀 启动类型对照表

启动类型适用场景特点 / 优势
On-Demand Instances短期、灵活性需求✅ 按小时/秒计费,可靠、无承诺
Spot Instances可中断型短期任务💰 价格低至按需的 90% 折扣,⚠️ 可能随时被回收
Reserved Instances长期稳定工作负载(≥1 年)💰 提前承诺换折扣(最多 75%),支持区域或实例预定
Convertible Reserved Instances长期工作负载 + 实例类型灵活✅ 允许在期限内更换实例规格,适合不确定未来实例类型的情况
Dedicated Instances需隔离硬件、提升安全性🛡️ 仅该客户使用物理服务器的部分资源,适合合规性需求
Dedicated Hosts控制实例部署 + 软件许可需求🧩 拥有整个物理服务器资源

  • EC2 Graviton 处理器
    • AWS Graviton 是基于 Arm 架构 的自研处理器系列,提供卓越的性价比与能效优势,适用于多种计算场景

🧠 处理器版本对比

版本性能提升特点摘要
Graviton2比第 5 代 x86 实例高出约 40%最早广泛部署的高性价比 Arm 实例
Graviton3比 Graviton2 快 最高 3 倍提升浮点计算、加密、ML 推理性能,功耗更低
  • EC2 默认监控指标(CloudWatch Metrics)
    • EC2 实例在不额外配置的情况下,会自动收集以下基础指标,适用于性能监控与状态排查
    • 内存(RAM)使用情况不是默认指标

📊 内建指标分类(EC2 默认 CloudWatch Metrics)

维度监控项名称说明
🧠 CPUCPUUtilizationCPU 使用率(%)
CPUCreditUsage / CPUCreditBalance仅适用于 T 系列突发型实例
🌐 网络NetworkIn / NetworkOut网络流量(字节)
✅ 状态检查InstanceStatusCheck检查 EC2 虚拟机级别问题
SystemStatusCheck检查宿主机硬件和网络是否正常
💽 磁盘(临时存储)DiskReadOps / WriteOps
DiskReadBytes / WriteBytes
仅适用于 Instance Store,不包含 EBS
  • EC2 Instance Recovery(实例恢复)
    • 当 EC2 实例发生系统级故障时,AWS 支持通过 自动恢复机制(Instance Recovery)将实例迁移至健康硬件上,保留原有配置不变
    • 只有 System Status Check 失败(StatusCheckFailed_System) 时才可触发 EC2 Recovery

✅ 状态检查(Status Check)

检查类型说明
Instance Status检查 EC2 实例内操作系统、网络配置等
System Status检查底层硬件(如宿主物理服务器故障)

High Performance Computing (HPC)

  • 云计算平台(特别是 AWS)非常适合进行 高性能计算(HPC),可动态扩展、快速部署并降低成本

📦 Data Management & Transfer for HPC

服务用途场景
AWS Direct Connect提供高带宽、低延迟、专线连接 AWS,适合传输 GB/s 数据
AWS Snowball物理设备,适合批量传输 PB 级数据 到 AWS
AWS DataSync快速将大量数据 从本地同步到 S3、EFS、FSx

⚙️ Compute and Networking for HPC

选项用途说明
EC2 实例提供基础的计算资源,可选择 CPU 优化型、GPU 优化型 实例
Spot 实例 / Spot Fleet适用于弹性、短时批处理任务,极大降低成本,可结合 Auto Scaling 使用
Auto Scaling根据计算需求自动扩缩 EC2 数量,适应动态负载变化

🚀 EC2 Enhanced Networking(基于 SR-IOV)

网络类型特性说明适用带宽
Elastic Network Adapter (ENA)默认推荐,支持多种实例类型,最高 100 Gbps✅ 高速(现代标准)
Intel 82599 VF (Legacy)较旧的选项,适用于部分早期实例⛔ 最多 10 Gbps
Elastic Fabric Adapter (EFA)基于 ENA 增强,适用于 HPC,支持 MPI,绕过内核,提供超低延迟通信✅ 高速 + 极低延迟

📌 实例附加存储(与 EC2 紧耦合)

类型特点使用建议
Amazon EBS可持久化、可独立挂载,支持快照、加密、IOPS 调优✅ 通用存储,如数据库磁盘、容器卷
- io2 Block Express提供高达 256,000 IOPS,适合高性能场景高性能数据库、日志系统
Instance Store与 EC2 实例生命周期绑定,超低延迟,可达百万级 IOPS临时数据缓存、HPC 临时结果

📦 网络存储(通过网络访问)

服务特点适用场景
Amazon S3对象存储服务,支持无限扩展,不是真正的文件系统✅ 静态文件、模型数据、备份归档等
Amazon EFS分布式共享文件系统,自动扩展,按容量计费,支持 provisioned IOPS多实例共享挂载、容器、Web 文件存储
Amazon FSx for Lustre面向 HPC 优化的高并行文件系统,支持百万级 IOPS,可挂载到 S3Genomics、渲染、AI 模型训练等 HPC 场景

🤖 自动化与编排工具(Automation & Orchestration for HPC)

工具特点适用场景
AWS Batch支持多节点并行作业(Multi-node Parallel Jobs),自动调度和扩缩 EC2 实例✅ 动态批处理任务调度、分布式训练、仿真、渲染等
AWS ParallelCluster开源集群管理工具,基于文本配置,自动创建 VPC、子网、实例类型与作业调度器✅ 构建完整 HPC 集群(支持 Lustre、EFA、Slurm 等)

Auto Scaling

  • Auto Scaling Groups – Dynamic Scaling Policies(动态扩缩容策略)
    • 动态扩缩容策略可以根据实时指标或已知使用模式自动调整 EC2 实例数量,确保系统既具备弹性又避免资源浪费
策略类型描述示例
🎯 Target Tracking Scaling✅ 最简单易用,自动将实例数维持在某个目标指标附近希望平均 CPU 利用率维持在 40%
📈 Simple / Step Scaling基于 CloudWatch 警报进行扩缩容,支持多个阈值与动作,适合精细控制CPU > 70% ➝ 扩容 2 台
CPU < 30% ➝ 缩容 1 台
⏰ Scheduled Actions预设时间点触发扩缩计划,适用于流量规律明显的场景每周五 17:00 ➝ 设置最小容量为 10,应对周末高峰

  • Auto Scaling Groups – Predictive Scaling(预测型扩缩策略
    • 预测型扩缩容通过 机器学习算法分析历史负载趋势,提前预测即将到来的负载变化,并提前预热实例,从而避免响应延迟或冷启动问题

📈 推荐用于扩缩容的指标

指标名称描述
CPUUtilization实例的平均 CPU 使用率,最常用的通用扩缩容指标
RequestCountPerTarget每个目标实例的请求量(适用于带有负载均衡器的 Web 应用)
Average Network In/Out平均网络流入 / 流出字节数,适合网络密集型应用(如视频流、数据传输)
自定义指标(Custom Metric)可使用 CloudWatch 自行推送任意业务相关指标(如队列长度、响应时间等)
  • Auto Scaling – Instance Refresh
    • 在不完全重建 Auto Scaling Group 的前提下,自动滚动更新 EC2 实例以使用新的启动模板(Launch Template)或配置
    • 由用户主动调用 StartInstanceRefresh, 按照指定比例逐步替换现有实例,确保服务不中断

  • Auto Scaling – Health Checks(健康检查机制)
    • Auto Scaling Group(ASG)会根据健康检查结果自动识别失效实例,并执行终止 + 替换操作,确保服务高可用
类型描述
EC2 Status Checks默认启用,检查实例自身状态(如 CPU 卡死、内核崩溃)
包括系统级(System)和实例级(Instance)状态检查
ELB Health Checks适用于 ASG 关联了 Load Balancer(ALB / NLB / CLB)
使用 HTTP/TCP 定期探测实例健康,贴近业务层
自定义健康检查(Custom)使用 AWS CLI / SDK 主动上报实例健康状态
命令示例:set-instance-health(将实例标记为 Unhealthy)

EC2 Spot Instances

  • EC2 Spot 实例是一种高性价比的计算资源获取方式,可以为弹性工作负载显著节省成本。适用于对中断容忍度高的场景,例如批处理、数据分析等
特性描述
成本极低相较 On-Demand 实例最高可省 90%
自定义最大竞价用户设定最大可接受价格,当前市场价格低于该值时获取实例
实时价格浮动价格依据区域容量供需情况每小时调整
可配置中断行为价格上涨超出设定时可选择 Stop / Terminate,提前 2 分钟通知


EC2 Spot Fleets

  • Spot Fleet 是 AWS 提供的一种方式,用于自动管理多个 Spot 实例 + 可选的 On-Demand 实例组合,以满足你设定的计算容量目标
  • 大规模数据处理(如 Spark、EMR), 训练机器学习模型, 非关键但高算力密集型任务

🧩 Spot Fleet 启动池(Launch Pools)示例

  • 你可以定义多个候选配置池,Spot Fleet 会从这些池中自动选择最优组合以满足策略
属性示例
实例类型m5.large, c5.xlarge
操作系统Amazon Linux 2, Ubuntu
可用区us-east-1a, us-east-1b


AWS ECS (Elastic Container Service)

  • 要在 AWS 上管理 Docker 容器,你可以选择以下平台
服务名称描述
Amazon ECSAWS 自研容器编排平台,支持 Docker,易于集成 AWS 生态
Amazon EKS托管版 Kubernetes(开源),适合已有 K8s 经验的团队
AWS Fargate无服务器容器运行平台(Serverless),可搭配 ECS 或 EKS 使用

  • Amazon ECS – Use Cases
    • Amazon ECS 是 AWS 自研的容器编排服务,适用于从微服务架构到批处理作业的多种场景
场景类型示例与说明
微服务架构部署多个容器,支持模块化服务与独立扩展
自动扩缩容支持任务和服务的动态扩缩容,匹配流量需求
与负载均衡集成原生集成 ALB / NLB,自动注册目标容器
批处理与定时任务使用 ECS 运行定期任务,兼容 Spot / On-Demand 等实例类型
应用上云迁移将本地 Docker 化应用无缝迁移至 ECS 平台

  • Amazon ECS – 核心概念
    • Amazon ECS 采用任务驱动模型,结合服务定义与 IAM 控制,适合高可用容器化部署
概念描述
ECS ClusterEC2 实例的逻辑分组,容器任务在此集群中运行(Fargate 模式下可为空)
ECS Service定义运行多少个任务,如何部署与维持任务副本数
Task Definition任务定义文件(JSON),描述容器镜像、CPU、内存、端口等配置
ECS Task某个 Task Definition 的运行实例,即一个或多个实际运行的容器
  • 🔐 ECS IAM 角色
IAM 角色类型用途说明
EC2 Instance Profile附加在 ECS 所属 EC2 上,用于访问 ECS API、CloudWatch 等服务
Task IAM Role附加在具体任务上,用于访问 S3、DynamoDB 等 AWS 服务,实现任务级权限隔离

  • Amazon ECS – ALB Integration(动态端口映射)
    • Amazon ECS 可通过 ALB(Application Load Balancer) 实现容器的智能路由,支持 动态端口映射(Dynamic Port Mapping)
Users

Application Load Balancer
├──→ EC2 Instance: Task A (port 36789)
└──→ EC2 Instance: Task B (port 39586)

  • Amazon ECS – 安全与网络配置
    • ECS 提供强大的配置注入与灵活的网络选项,支持不同任务隔离级别与安全需求
    • 可将 参数和密钥 作为环境变量注入容器
    • 支持集成以下服务: SSM Parameter Store, Secrets Manager
网络模式描述
none无网络连接,无法与外部通信,通常用于完全离线的计算任务
bridgeDocker 默认桥接网络模式,容器间通过虚拟网桥通信,支持端口映射
host容器直接使用主机网络接口,端口冲突风险高,但性能更好
awsvpc每个任务获得独立 ENI + 私有 IP,支持 Security Groups、VPC Flow Logs 等
➤ Fargate 的默认网络模式,也是最推荐的生产部署模式

  • Amazon ECS – Service Auto Scaling
    • ECS 支持在 服务层级自动扩缩容任务(Tasks),无需人工干预
策略类型描述示例
🎯 Target Tracking设置目标值,自动追踪(最常用,推荐)维持 CPU 利用率在 50%
📉 Step Scaling绑定 CloudWatch Alarm,设置触发阈值 + 调整步进CPU > 70% ➝ 扩容 2 个任务
⏰ Scheduled Scaling预设某个时间自动扩缩容,适合预测性变化每天 9:00 设置最小任务为 5

  • Amazon ECS – Spot Instances 支持
    • ECS 支持使用 Spot 实例来降低成本,具体取决于 启动方式(EC2 vs Fargate)
特性🖥️ ECS(EC2 Launch Type)⚙️ Fargate(含 FARGATE_SPOT)
Spot 控制方式通过 Auto Scaling Group 管理 Spot 实例每个任务可指定运行在 FARGATE 或 FARGATE_SPOT
中断机制实例回收前进入 Draining Mode,任务自动迁移或终止Spot 任务可随时被 AWS 回收(无预警),需容错设计
成本与稳定性平衡成本低但中断影响较大,需搭配 ASG 和多 AZ 策略应对支持混合部署,On-Demand 保底 + Spot 弹性
配置与运维复杂度需要配置 EC2、ASG、Capacity Provider 等更加简单,Serverless,任务级别指定运行方式
扩展弹性依赖 EC2 容量,扩容受限于底层资源可用性弹性强,无需 EC2,直接根据负载水平扩缩任务


AWS Fargate

  • AWS Fargate 是一种 无服务器(Serverless)容器运行平台,可搭配 ECS 或 EKS 使用,无需管理底层 EC2 实例
特性描述
无需管理 EC2无需预配 / 管理任何虚拟机,真正 Serverless
按需分配资源你只需定义任务所需的 CPU / 内存,Fargate 自动调度运行
简化扩展只需增加任务数量即可实现扩容,无需考虑实例容量或 Auto Scaling
与 ECS / EKS 集成可作为两者的运行模式,适配不同容器编排系统


AWS ECR (Elastic Container Registry)

  • Amazon ECR 是 AWS 提供的托管式 Docker 镜像仓库,可安全存储、管理和部署容器镜像
    • ECR ≠ DockerHub:默认私有,更适合生产部署,权限可控
    • 若使用 CodePipeline、ECS、Fargate,建议统一使用 ECR 管理镜像
    • 推送镜像前需执行 aws ecr get-login-password 登录命令

  • Amazon ECR – Cross Region Replication
    • Amazon ECR 支持跨区域(Cross-Region)与跨账户(Cross-Account)镜像复制,用于提升多区域可用性与部署效率

  • Amazon ECR 镜像扫描(Image Scanning)
    • ECR 支持两种镜像扫描方式,用于发现潜在的安全漏洞
    • 手动扫描(Manual Scan):用户在控制台或 CLI 中手动触发扫描
    • 推送即扫(Scan on Push):镜像推送到 ECR 时自动触发扫描
    • 扫描类型: 基础扫描(Basic Scanning),增强扫描(Enhanced Scanning, 结合 Amazon Inspector)


AWS EKS (Elastic Kubernetes Service)

  • Amazon EKS:全托管的 Kubernetes 服务,在 AWS 上运行容器化应用
  • Kubernetes:开源系统,用于 自动部署、扩展和管理容器化应用(如 Docker 应用)
  • EKS 是 ECS 的替代方案:目标类似(运行容器),但 API 和生态不同(ECS 是 AWS 专有,EKS 是开源标准)
  • 支持两种运行环境: EC2, Fargate

  • Amazon EKS – Node Types(节点类型)
    • 在 EKS 中,你可以选择三种方式来运行 Kubernetes Pod:托管节点、自托管节点、或 Fargate 模式
类型描述
托管节点组(Managed Node Groups)由 EKS 自动创建和管理的 EC2 实例,自动加入集群;属于 ASG,支持 On-Demand / Spot
自托管节点(Self-Managed Nodes)你自己创建和管理的 EC2 实例,手动注册至集群;更灵活但需自行维护
AWS Fargate完全 Serverless;无需管理任何节点,适合按需、自动化的容器部署

  • Amazon EKS – Data Volumes(数据卷)
    • 在 EKS 中,持久化数据需要通过存储插件(CSI 驱动)并配合 Kubernetes 的 StorageClass 来定义卷的生命周期和类型
    • 使用 Fargate 时,仅支持 EFS(当前不支持 EBS)
存储类型说明
Amazon EBS块存储,适用于 EC2 节点;不能跨 AZ
Amazon EFS网络文件系统;支持多个 Pod 并发访问;支持 Fargate
Amazon FSx for Lustre高性能文件系统,适合机器学习、大数据分析等高吞吐量场景
Amazon FSx for NetApp ONTAP支持企业级文件系统功能,如快照、复制、数据压缩


AWS App Runner

  • AWS App Runner 是一种全托管服务,用于轻松部署 Web 应用和 API,无需管理底层基础设施
特性描述
无需基础设施经验完全托管,无需管理服务器、扩展或负载均衡
源码 / 镜像部署支持从 GitHub 或 ECR 容器镜像直接部署
自动扩缩容根据流量自动调整资源,无需手动配置 Auto Scaling
高可用 & 加密默认提供负载均衡与 TLS 加密
VPC 支持可访问 RDS、ElastiCache 等 VPC 内部资源
URL 直接访问部署后自动分配公开访问地址
1️⃣ Source Code / Container Image (ECR)

2️⃣ 配置:vCPU、RAM、Auto Scaling、Health Check

3️⃣ 创建并部署(Create & Deploy)

4️⃣ 获得访问 URL,立即可用


ECS Anywhere & EKS Anywhere

  • Amazon ECS Anywhere
    • 让你能在本地数据中心、虚拟机或其他自管基础设施上运行原生 ECS 任务,结合云端控制面板与本地执行能力
    • 满足 合规性 / 数据本地化 / 低延迟 要求, 运行在 无 AWS 区域覆盖的地方
    • 本地机器学习、视频处理、大数据分析 等边缘计算需求

  • Amazon EKS Anywhere
    • EKS Anywhere 允许你在 本地或其他云环境中创建并运行 Kubernetes 集群
    • 想保留 本地运行环境,但又想用上 EKS 管理体验


AWS Lambda

  • AWS Lambda 是一种 无服务器计算服务,让你只需写代码,不用管服务器。你上传函数,设置触发条件,AWS 自动运行它
  • AWS Lambda 可无服务器执行函数,常被以下服务触发或与之集成
服务名称触发 / 集成方式说明
API Gateway通过 HTTP 请求触发 Lambda,常用于构建无服务器 API
Amazon S3对象创建 / 删除触发(如上传图片自动处理)
Amazon DynamoDB表更新事件触发(使用 DynamoDB Streams)
Amazon Kinesis流式数据处理,如日志分析、实时计算
Amazon EventBridge基于事件总线实现复杂事件驱动架构 (CRON JOB)
Amazon SQS从消息队列中拉取消息处理
AWS IoT Core设备消息触发 Lambda
AWS Cognito用户注册、登录等事件触发 Lambda(如验证逻辑)
CloudWatch Logs可配合日志处理 / 告警
AWS SNS订阅 SNS 主题,处理发布消息
  • AWS Lambda 限制
    • 内存(RAM):最小 128MB,最大 10GB
    • CPU:不能手动设置,跟内存挂钩
    • 最长运行时间:15 分钟
    • 部署包限制:ZIP 格式最大 50MB,解压后 + Layer 总共不能超过 250MB
    • 并发执行数:默认 1000(可以申请提高)
    • 容器镜像大小:最大 10GB

  • Lambda 并发与限流(Concurrency & Throttling)
    • 默认并发限制是 1000 个,也就是最多同时跑 1000 个函数实例
    • 可以给某个函数设置 Reserved Concurrency,意思是给它专门留几个名额
    • 一旦请求超出这个并发限制,就会触发 Throttle(被限流),导致调用失败或延迟
    • 如果不够用,可以去 Service Quotas 页面申请提高并发上限

  • Lambda 并发问题(Concurrency Issue)
    • 如果你不设置 Reserved Concurrency,就默认大家一起抢那 1000 个并发名额
    • 用户多的时候,像 API Gateway、ALB(负载均衡器) 都可能因为没抢到资源而 被限流(Throttle)

  • Lambda & CodeDeploy 简介
    • AWS CodeDeploy 可以帮你自动管理 Lambda 的流量切换,实现平滑部署(渐进式发布),防止直接上线出问题