# 管理策略
# 策略数据结构
每个策略本质上就是一个 JSON Document,每个策略包含多个语句(Statements):
{
"statements": [
{
"resource": "books:123",
"action": ["books:edit"],
"effect": "ALLOW"
},
{
"resource": "books:123",
"action": ["books:delete"],
"effect": "DENY"
}
]
}
每个 语句(Statement)
由以下几个部分组成:
- 资源(Resource):可以是某个特定资源(如
books:123
)、多个资源(如books:123,books:124
),也可以是一类资源(如books:*
)。 - 操作(Action):可以是某个特定操作(如
books:edit
)、多个操作(如books:read,books:edit
),也可以是一类操作(如books:*
)。 - 效用(Effect):允许(ALLOW)或拒绝(DENY)。
你可以将该策略授权给某个用户或某个角色,授权给角色的策略会被该角色下的所有用户继承,被授予策略的用户会自动获得该策略中定义的权限。如果一个用户被授予了多个策略,他具备的权限是这些策略的并集。
如把上述示例策略授予了用户 A(不论是直接授予还是通过角色继承),他将具备资源 books:123
的 books:edit
权限,而不具备 books:delete
权限。
# 使用 SDK 管理
你也可以使用 SDK 管理策略:
管理策略