IAM策略
通过IAM,您可以在云帐号中创建IAM用户,并使用策略来控制IAM用户对云资源的访问范围。
IAM策略是作用于云资源的,IAM策略定义了允许和拒绝的访问操作,以此实现云资源权限访问控制。
对于OBS,IAM策略的OBS权限是作用于OBS所有的桶和对象的。如果要授予IAM用户操作OBS资源的权限,则需要向用户所属的用户组授予一个或多个OBS权限集。
IAM策略的OBS权限详情请参见权限管理。
IAM策略应用场景
IAM策略主要面向对同帐号下IAM用户授权的场景:
- 使用策略控制帐号下整个云资源的权限时,使用IAM策略授权。
- 使用策略控制帐号下OBS所有的桶和对象的权限时,使用IAM策略授权。
策略结构&语法
策略结构包括:Version(策略版本号)和Statement(策略权限语句),其中Statement可以有多个,表示不同的授权项。
策略语法,示例:
{ "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ "obs:bucket:HeadBucket", "obs:bucket:ListBucket", "obs:bucket:GetBucketLocation" ], "Resource": [ "obs:*:*:bucket:*" ], "Condition": { "StringEndWithIfExsits": { "g:UserName": ["specialCharactor"] }, "Bool": { "g:MFAPresent": ["true"] } } } ] }
参数 |
说明 |
---|---|
Version |
标识策略的版本号:
|
Statement |
策略授权语句,描述策略的详细信息,包含Effect(作用)、Action(授权项)、Resource(资源)和Condition(条件)。其中Condition为可选。
|
IAM策略鉴权
IAM策略遵循Deny优先的原则。在用户访问资源时,权限检查逻辑如下:
每条策略做评估时,Action之间是或(or)的关系。
- 用户访问系统,发起操作请求。
- 系统评估用户被授予的访问策略,鉴权开始。
- 在用户被授予的访问策略中,系统将优先寻找显式拒绝指令。如找到一个适用的显式拒绝,系统将返回Deny决定。
- 如果没有找到显式拒绝指令,系统将寻找适用于请求的任何Allow指令。如果找到一个显式允许指令,系统将返回Allow决定。
- 如果找不到显式允许,最终决定为Deny,鉴权结束。