开发者的 AWS 安全实践
Rahul Singh
Technical Product Manager
改了但没变

至多三层
在您自己的账号中,任一策略允许即可
遇到任一层的拒绝即被拒

基于身份的策略

基于身份的策略
基于资源的策略

两类基于身份的策略

两类基于身份的策略
便捷或精确

账号为何要附加它
权限边界

账号为何要附加它
权限边界
为何 iam:CreateUser 毫无效果

账号为何要附加它
权限边界
为何 iam:CreateUser 毫无效果
会话策略:一次 AssumeRole 会话

条件键
将允许限定到请求上下文
aws:SourceIp:来源网络

条件键
将允许限定到请求上下文
aws:SourceIp:来源网络
aws:PrincipalTag:调用方标签ABAC:基于属性的访问控制

一张共享表

"Condition": {
"ForAllValues:StringEquals": {
"dynamodb:LeadingKeys": ["${aws:PrincipalTag/tenant}"]
}
}
一张共享表
用一个条件来收窄
ForAllValues:提供的每个键都必须匹配"Action": ["dynamodb:Query", "dynamodb:GetItem", "dynamodb:Scan"],
"Condition": {
"ForAllValues:StringEquals": {
"dynamodb:LeadingKeys": ["${aws:PrincipalTag/tenant}"]
}
}
一张共享表
用一个条件来收窄
ForAllValues:提供的每个键都必须匹配dynamodb:Scan 不提供,因此无从校验失败开发者的 AWS 安全实践