Cedar 是 AWS 开发的开源策略语言,专门用于定义细粒度授权规则。它不是 AWS 专属服务,而是一个独立的开源项目。
https://github.com/cedar-policy

简单类比:

// 允许文档所有者执行任何操作
permit (
principal,
action,
resource
)
when {
resource.owner == principal
};
没有显式 permit 的请求 → 自动 DENY
有任何 forbid 匹配 → DENY (forbid 优先于 permit)
// 允许规则
permit (
principal in Group::"Editors",
action == Action::"Edit",
resource
);
// 禁止规则 (优先级更高)
forbid (
principal,
action == Action::"Delete",
resource
)
when {
resource.classification == "archived"
};
请求进入
│
▼
┌────────────────┐
│ 是否有 forbid │──── 是 ───▶ DENY
│ 匹配? │
└────────────────┘
│ 否
▼
┌────────────────┐
│ 是否有 permit │──── 是 ───▶ ALLOW
│ 匹配? │
└────────────────┘
│ 否
▼
DENY
(默认拒绝)
如果想完全控制或不想依赖 AWS,可以直接用开源 Cedar。
如果想省事、要与 Cognito 集成、不想运维,就用 Verified Permissions。