安全上线

开发者的 AWS 安全实践

Rahul Singh

Technical Product Manager

清单用途何在

并排的两张卡片,上方是全宽部署栏。左侧卡片标注为 setting,包含三个带绿色对勾的配置值,注释为 one right value。右侧卡片标注为 question,包含三个问号和虚线答案槽,注释为 your answer。两张卡片都有箭头指向下方的部署栏。

  • 发版前的六个问题
  • 不是要开的六个开关
开发者的 AWS 安全实践

六个问题,按请求顺序

按此顺序询问

  1. 谁验证调用方的令牌?
  2. AWS 在检查哪个身份?

租户报表服务被画成自上而下的路径:租户用户、API Gateway、报表函数。编号标记 1 和 2 标在对应问题的位置。

开发者的 AWS 安全实践

六个问题,按请求顺序

按此顺序询问

  1. 谁验证调用方的令牌?
  2. AWS 在检查哪个身份?
  3. 如何阻止一个租户读取另一个租户的行?
  4. 数据库密码存放在哪里?

租户报表服务路径:租户用户、API Gateway、报表函数、DynamoDB,旁接 Secrets Manager。编号标记 1 到 4 标在对应问题的位置。

开发者的 AWS 安全实践

六个问题,按请求顺序

按此顺序询问

  1. 谁验证调用方的令牌?
  2. AWS 在检查哪个身份?
  3. 如何阻止一个租户读取另一个租户的行?
  4. 数据库密码存放在哪里?
  5. 谁持有密钥,谁使用过它?
  6. 明天的下载会留下记录吗?

租户报表服务路径:租户用户、API Gateway、报表函数、DynamoDB、S3 报表,旁接 Secrets Manager 与 KMS 密钥。六个编号标记标在对应问题的位置。虚线边界包围整个服务并连到下方的 CloudTrail 虚线框。

开发者的 AWS 安全实践

打勾不等于安全

本服务中的三个点

  1. 角色而非密钥:可读所有对象

报表服务的三个片段。其一:报表函数打勾,橙色虚线轮廓跨越桶中三个租户前缀。其二:绿色租户过滤在函数内,函数外的请求路径上空置一扇橙色门。其三:桶打勾,审计员到 AWS 托管密钥的橙色虚线路径被挡在外。

开发者的 AWS 安全实践

打勾不等于安全

本服务中的三个点

  1. 角色而非密钥:可读所有对象
  2. 租户列:过滤在您的代码中
  3. 已开启加密:密钥不可共享

报表服务的三个片段。其一:报表函数打勾,橙色虚线轮廓跨越桶中三个租户前缀。其二:绿色租户过滤在函数内,函数外的请求路径上空置一扇橙色门。其三:桶打勾,审计员到 AWS 托管密钥的橙色虚线路径被挡在外。

开发者的 AWS 安全实践

配置看不出的缺口

一个外框标注为 granted,内部有两个不重叠的方框。实心绿色框标注为 used,列出角色调用的三个 IAM 操作。橙色虚线框标注为 never called,列出其未调用的三个 IAM 操作。

  • 写下当日是对的:服务当时调用的所有操作
开发者的 AWS 安全实践

配置看不出的缺口

一个外框标注为 granted,内部有两个不重叠的方框。实心绿色框标注为 used,列出角色调用的三个 IAM 操作。橙色虚线框标注为 never called,列出其未调用的三个 IAM 操作。

  • 写下当日是对的:服务当时调用的所有操作
  • 现在过宽:那一半已不再调用
  • 修正办法:仅授予近 90 天 Trail 显示在用的操作
开发者的 AWS 安全实践

记录原因,而非设置值

一项选择的两面

  • 您的代码设置的值
  • 您为何这样设置

一行配置(在代码库中标注)上方,下面是一个标注为 why 的空虚线框,注释为 not written down。其下箭头指向一张绿色决策卡,含四个栏位:chose、rejected、would change if、date。

开发者的 AWS 安全实践

记录原因,而非设置值

一项选择的两面

  • 您的代码设置的值
  • 您为何这样设置

 

  • 写下并获得认可:一条决策
  • 未文档化:将来成惊喜

一行配置(在代码库中标注)上方,下面是一个标注为 why 的空虚线框,注释为 not written down。其下箭头指向一张绿色决策卡,含四个栏位:chose、rejected、would change if、date。

开发者的 AWS 安全实践

同样的问题,新调用方

两列三行,标题为 actor 与 caller。每行把一个发起者与其触发的调用方配对:人对应浏览器会话(淡显,表示常见情形)、一次提交对应流水线、一个请求对应代理。三者汇聚到一个蓝色闸门,注释为 one gate,带三个编号标记。

  • 工作负载身份:非人的调用方身份
开发者的 AWS 安全实践

同样的问题,新调用方

两列三行,标题为 actor 与 caller。每行把一个发起者与其触发的调用方配对:人对应浏览器会话(淡显,表示常见情形)、一次提交对应流水线、一个请求对应代理。三者汇聚到一个蓝色闸门,注释为 one gate,带三个编号标记。

  • 工作负载身份:非人的调用方身份
  • 同样三问:AWS 可校验的身份、作用域不超出任务、留有行为记录
  • 变化之处:调用方
开发者的 AWS 安全实践

下一步走向何处

上下两条带。上带标注 the account,含四个等宽方框:GuardDuty、Security Hub、AWS Config、Organizations。虚线分隔下方为 your service,放置此前视频用的六个编号标记。

  • 您的服务:六个问题
  • 其上的账户层:GuardDuty、Security Hub、AWS Config、Organizations
开发者的 AWS 安全实践

让我们一起练习吧!

开发者的 AWS 安全实践

Preparing Video For Download...